Überblick über: Unit-Tests im maschinellen Lernen | von Pradyumna Karkhane | Juni 2023

0
27


Unit-Exams beim maschinellen Lernen umfassen das Testen einzelner Komponenten oder Codeeinheiten, um sicherzustellen, dass sie ordnungsgemäß funktionieren und die erwarteten Ergebnisse liefern. Im Kontext des maschinellen Lernens konzentriert sich Unit Check auf die Überprüfung der Korrektheit der Datenvorverarbeitung, des Modelltrainings und der Bewertungsfunktionen. Sehen wir uns ein Beispiel für Unit-Exams beim maschinellen Lernen mit Python und dem an unittest Modul:

  1. Datenvorverarbeitungs-Einheitentest: Hier ist ein Beispiel für einen Komponententest für eine Datenvorverarbeitungsfunktion, die Eingabefunktionen skaliert:

Unittest importieren
aus sklearn.preprocessing importieren Sie MinMaxScaler

def scale_features(knowledge):
Scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(knowledge)
Gibt Scaled_Data zurück

Klasse TestDataPreprocessing(unittest.TestCase):
def test_feature_scaling(self):
Daten = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
erwartetes_Ergebnis = [[0, 0, 0], [0.5, 0.5, 0.5], [1, 1, 1]]
self.assertEqual(scale_features(knowledge), erwartetes_result)

if __name__ == ‚__main__‘:
unittest.essential()

In diesem Beispiel definieren wir eine Funktion scale_features das Eingabedaten entgegennimmt und verwendet MinMaxScaler Von Scikit-Be taught bis zur Skalierung der Funktionen. Der TestDataPreprocessing Klasse erbt von unittest.TestCase und enthält die test_feature_scaling Methode. Diese Methode vergleicht die Ausgabe der scale_features Funktion mit dem erwarteten Ergebnis mithilfe der self.assertEqual Behauptung.

2. Modelltrainingseinheitentest: Hier ist ein Beispiel für einen Einheitentest für eine Modelltrainingsfunktion:

Unittest importieren
aus sklearn.datasets import make_classification
aus sklearn.linear_model LogisticRegression importieren

def train_model(X, y):
mannequin = LogisticRegression()
mannequin.match(X, y)
Rückgabemodell

Klasse TestModelTraining(unittest.TestCase):
def test_model_accuracy(self):
X, y = make_classification(n_samples=100, n_features=10, random_state=42)
mannequin = train_model(X, y)
Genauigkeit = mannequin.rating(X, y)
self.assertGreaterEqual(Genauigkeit, 0,9)

if __name__ == ‚__main__‘:
unittest.essential()

In diesem Beispiel definieren wir eine Funktion train_model das nimmt Eingabefunktionen an X und Etiketten y und trainiert ein logistisches Regressionsmodell mit scikit-learn. Der TestModelTraining Klasse enthält die test_model_accuracy Methode, die einen synthetischen Klassifizierungsdatensatz generiert, das Modell trainiert und überprüft, ob die Genauigkeit größer oder gleich 0,9 ist self.assertGreaterEqual Behauptung.

3. Modellbewertungs-Einheitentest: Hier ist ein Beispiel für einen Komponententest für eine Modellbewertungsfunktion:

Unittest importieren
aus sklearn.datasets import make_classification
aus sklearn.linear_model LogisticRegression importieren
aus sklearn.metrics import precision_score, Recall_score

def evaluieren_modell(modell, X, y):
y_pred = mannequin.predict(X)
precision = precision_score(y, y_pred)
Recall = Recall_score(y, y_pred)
Rückgabegenauigkeit, Rückruf

Klasse TestModelEvaluation(unittest.TestCase):
def test_precision_and_recall(self):
X, y = make_classification(n_samples=100, n_features=10, random_state=42)
mannequin = LogisticRegression()
mannequin.match(X, y)
Präzision, Rückruf =value_model(mannequin, X, y)
self.assertGreaterEqual(Genauigkeit, 0,8)
self.assertGreaterEqual(recall, 0,8)

Zusammenfassend ist das Erstellen von Komponententests in ML-Anwendungen ein wesentlicher und wichtiger Bestandteil für eine reibungslose, fehlerfreie ML-Vorhersage. Danke.

Viel Spaß beim Lernen!



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here