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:
- 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!