Video: Neuronale Netze in Python: PyTorch Tutorial #0 - Tensorflow und Keras vs PyTorch 2024
Bevor Sie den SVM-Klassifizierer mit den Daten, die für die vorausschauende Analyse geladen wurden, speisen können, müssen Sie den gesamten Datensatz in einen Trainingssatz aufteilen und Testsatz.
Zum Glück hat scikit-learn eine Funktion implementiert, mit der Sie den gesamten Datensatz einfach teilen können. Die Funktion train_test_split verwendet als Eingabe einen einzelnen Datensatz und einen Prozentwert. Der Prozentwert wird verwendet, um die Größe des Testsatzes zu bestimmen. Die Funktion gibt zwei Datensätze zurück: das Test-Dataset (mit seiner angegebenen Größe) und das Trainings-Dataset (das die verbleibenden Daten verwendet).
In der Regel kann man etwa 70-80 Prozent der Daten als Trainingseinheit verwenden und die verbleibenden Daten als Testset verwenden. Das Iris-Dataset ist jedoch sehr klein (nur 150 Instanzen). Sie können also 90 Prozent davon verwenden, um das Modell zu trainieren, und die anderen 10 Prozent als Testdaten verwenden, um zu sehen, wie Ihr Vorhersagemodell funktioniert.
Geben Sie den folgenden Code ein, um Ihren Datensatz zu teilen: >>>> from sklearn import cross_validation >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris. data, iris. target, test_size = 0, 10, random_state = 111)
Die erste Zeile importiert die Kreuzvalidierungsbibliothek in Ihre Sitzung. Die zweite Zeile erstellt den Testsatz aus 10 Prozent der Probe.
y_train enthält 135 Bezeichnungen in der gleichen Reihenfolge wie die 135 Beobachtungen.
x_test enthält 15 (oder 10 Prozent) Beobachtungen und seine Eigenschaften.
y_test enthält 15 Markierungen in der gleichen Reihenfolge wie die 15 Beobachtungen.
Der folgende Code überprüft, ob die Aufteilung Ihren Erwartungen entspricht:
Viele Anfänger auf dem Gebiet der Vorhersageanalytik vergessen, die Datensätze zu teilen - was einen gravierenden Designfehler in das Projekt einführt. Wenn die gesamten 150 Instanzen als Trainingsdaten in die Maschine geladen wurden, würden keine unsichtbaren Daten zum Testen des Modells übrig bleiben. Dann müssen Sie einige der Trainingsinstanzen wiederverwenden, um das Vorhersagemodell zu testen.
Sie werden sehen, dass das Modell in einer solchen Situation immer die richtige Klasse vorhersagt - weil Sie dieselben exakten Daten verwenden, mit denen Sie das Modell trainiert haben.Das Modell hat dieses Muster bereits zuvor gesehen. es wird kein Problem haben, nur zu wiederholen, was es gesehen hat. Ein funktionierendes Vorhersagemodell muss Vorhersagen für Daten machen, die es noch nicht gesehen hat.
Wenn Sie eine Instanz eines SVM-Klassifikators, ein Trainingsdataset und ein Testdataset haben, können Sie das Modell mit den Trainingsdaten trainieren. Wenn Sie den folgenden Code in den Interpreter eingeben, geschieht genau dies: >>>> svmClassifier. fit (X_train, y_train)
Diese Codezeile erzeugt ein Arbeitsmodell, aus dem Vorhersagen gemacht werden können. Insbesondere ein Vorhersagemodell, das vorhersagen wird, zu welcher Klasse von Iris ein neues unbenanntes Dataset gehört. Die svmClassifier-Instanz verfügt über mehrere Methoden, mit denen Sie verschiedene Aufgaben ausführen können.
Zum Beispiel ist nach dem Aufruf der Anpassungsmethode die Methode, mit der die Methode aufgerufen werden kann, die nützlichste Methode. Das ist die Methode, mit der Sie neue Daten eingeben. Im Gegenzug prognostiziert es das Ergebnis.