Ho un set di dati di grandi dimensioni e voglio dividerlo in allenamento (50%) e set di test (50%).Come suddividere i dati in un convoglio e testarli casualmente?
Suppongo di avere 100 esempi memorizzati nel file di input, ogni riga contiene un esempio. Devo scegliere 50 linee come set di allenamento e set di test di 50 linee.
La mia idea è prima di generare un elenco casuale con lunghezza 100 (i valori vanno da 1 a 100), quindi utilizzare i primi 50 elementi come numero di riga per i 50 esempi di allenamento. Lo stesso con il set di test.
Questo potrebbe essere facilmente raggiunto in Matlab
fid=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
Ma come ho potuto realizzare questa funzione in Python? Sono nuovo di Python e non so se posso leggere l'intero file in un array e scegliere determinate righe.
bella soluzione. Ma cosa succede se non conosco la quantità di dati nel mio file che forse i nostri dati potrebbero contenere qualche milione di osservazioni e ho bisogno di campionare i dati in set di dati dell'85% e del 15%? –
@ desmond.carros diano un'occhiata al 'da sklearn.cross_validation importazione train_test_split' Quindi fare in questo modo:' X_fit, X_eval, y_fit, y_eval = train_test_split ( treno, destinazione, test_size = 0,15, random_state = 1 ) ' – Rocketq
Per me, mostra" TipoErrore: tipo non smontabile "... – munmunbb