An dem Punkt, an dem Sie ein Modell aufnehmen und vorbereiten müssen, haben Sie eindeutig einen Datensatz. Wie dem auch sei, im Anschluss an die Vorbereitung müssen wir das Modell an einem Testdatensatz testen. Dazu benötigen Sie einen Datensatz, der nicht mit dem Vorbereitungssatz übereinstimmt, den Sie zuvor verwendet haben. Wie dem auch sei, es ist vielleicht nicht generell denkbar, während der Verbesserungsphase über eine so große Menge an Informationen zu verfügen.

In solchen Fällen besteht die klare Anordnung darin, den Ihnen vorliegenden Datensatz in zwei Sätze aufzuteilen, einen zur Vorbereitung und einen zum Testen; und zwar bevor Sie mit der Vorbereitung Ihres Modells beginnen.

In jedem Fall lautet die Frage, wie würden Sie die Informationen aufteilen? Sie können den Datensatz in keiner Weise, Form oder Gestalt physisch in zwei Teile teilen. Darüber hinaus müssen Sie zusätzlich sicherstellen, dass Sie die Informationen auf unregelmäßige Weise teilen. Um uns bei diesem Unterfangen zu unterstützen, stellt die SciKit-Bibliothek einen Apparat zur Verfügung, die sogenannte Model Choice-Bibliothek. In der Bibliothek gibt es eine Klasse, die passenderweise ‘train_test_split’ genannt wird. Mit ihrer Hilfe können wir den Datensatz ohne großen Aufwand in die Vorbereitungs- und die Testdatensätze in unterschiedlichem Umfang aufteilen.

Es gibt eine Reihe von Parametern, die wir verstehen müssen, bevor wir die Klasse nutzen können:

test_size – Dieser Parameter wählt die Größe der Informationen, die Teil des Testdatensatzes sein müssen. Diese wird als Teil angegeben. Wenn Sie z.B. 0,5 als Wert übergeben, ist der Datensatz Teil der Hälfte des Testdatensatzes. Für den Fall, dass Sie diesen Parameter angeben, können Sie den folgenden Parameter außer Acht lassen.

train_size – Sie müssen diesen Parameter nur für den Fall bestimmen, dass Sie nicht die test_size angeben. Dies ist gleichbedeutend mit test_size, nur dass Sie der Klasse mitteilen, wie viel Prozent des Datensatzes Sie als Vorbereitungssatz teilen müssen.

random_state – Hier übergeben Sie eine ganze Zahl, die während der Teilung als Keim für den Zufallszahlengenerator dient. Oder andererseits können Sie ebenfalls einen Fall der Klasse RandomState übergeben, der am Ende der Zahlengenerator sein wird. Für den Fall, dass Sie nichts übergeben, wird das von np.random verwendete Randomstate-Vorkommen verwendet.

Betrachten wir als Beispiel denselben Datensatz, den wir in unseren vorherigen Beispielen betrachtet haben

Wir haben dies in zwei unterschiedliche Datensätze aufgeteilt, einen für die freien Hervorhebungen – x und einen für die abhängige Variable – y (das ist der letzte Abschnitt). Derzeit teilen wir den Datensatz x in zwei separate Sätze – xTrain und xTest. Im Wesentlichen werden wir auch den Datensatz y in zwei Sätze teilen – yTrain und yTest. Dies geschieht unter Verwendung der Sklearn-Bibliothek. Wir sollten einen Blick auf den Code werfen:

aus sklearn.model_selection importieren train_test_split
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size = 0.2, random_state = 0)

Wie aus dem Code ersichtlich sein sollte, haben wir den Datensatz in einem Verhältnis von 80-20 aufgeteilt, was eine typische Praxis in der Informationswissenschaft ist. Zur Abwechslung werde ich hier nicht die Ausbeute angeben. Versuchen Sie es selbst und machen Sie sich ein Bild davon, wie die neuen Datensätze sind.