Ich habe einen großen Datensatz und möchte ihn in Training (50%) und Testset (50%) aufteilen.Wie werden Daten zufällig in Trainset und Testset aufgeteilt?
Angenommen, ich habe 100 Beispiele gespeichert die Eingabedatei, jede Zeile enthält ein Beispiel. Ich muss 50 Linien als Trainingssatz und 50 Linien Testset wählen.
Meine Idee ist zuerst eine zufällige Liste mit der Länge 100 (Werte reichen von 1 bis 100), dann verwenden Sie die ersten 50 Elemente als die Zeilennummer für die 50 Trainingsbeispiele. Das gleiche gilt für das Testset.
leicht in Matlab werden Dies könnte
erreichtfid=fopen(datafile);
C = textscan(fid, '%s','delimiter', '\n');
plist=randperm(100);
for i=1:50
trainstring = C{plist(i)};
fprintf(train_file,trainstring);
end
for i=51:100
teststring = C{plist(i)};
fprintf(test_file,teststring);
end
Aber wie konnte ich diese Funktion in Python erreichen? Ich bin neu in Python und weiß nicht, ob ich die ganze Datei in ein Array lesen und bestimmte Zeilen auswählen könnte.
nette Lösung. Was aber, wenn ich nicht weiß, wie viele Daten in meiner Datei enthalten sind, dass unsere Daten möglicherweise einige Millionen Beobachtungen enthalten und ich die Daten in 85% - und 15% -Datensätzen abfragen muss? –
@ desmond.carros einen Blick auf 'von sklearn.cross_validation Import train_test_split' es auf diese Weise also tun: ' X_fit, X_eval, y_fit, y_eval = train_test_split ( Zug, Ziel, test_size = 0,15, random_state = 1 ) ' – Rocketq
Für mich zeigt es" TypeError: unhashable type "... – munmunbb