Ich folge Jeff Heaton Deep Learning Kurs Course linksklearn KFold() - speichern Sie alle Falten in die CSV-Datei
und auch mit den Übungen gowing. In der ersten Programmieraufgabe, Frage 5, fragt er in der letzten Aufgabe, die Ausgabe der KFold(5)
kreuzweise validierten Eingabedaten in eine CSV-Datei zu schreiben. Grundsätzlich werden wir nach dem KFold (5) 5 Datensätze haben (Train/Test). Ich muss sie zusammenkleben und in einer Datei speichern. Ich habe versucht, es zu tun, aber meine Daten überschreiben und ich bekomme nur die letzten Falzdaten in meiner Ausgabe. Ich beginne mit Python und ich denke, ich kann nicht sehen, wie man die Schleife macht, um Pandas richtig anzufügen. Link zu den Übungen: Exercise 5
Teil meines Codes: df_car
ist ein Original Pandas df. df_cars1
ist eine Kopie von df_cars
, aber ich mache es, um leer zu später Daten anhängen
kf = KFold(5)
# df_cars.insert(0,'set', 'str')
df_cars.insert(1,'iteration', 0)
df_cars1 = pd.DataFrame(data=None, columns=df_cars.columns,index=df_cars.index)
df_cars1.dropna()
fold = 1
for train_index, validate_index in kf.split(df_cars):
trainDF = pd.DataFrame(df_cars.ix[train_index])
validateDF = pd.DataFrame(df_cars.ix[validate_index])
trainDF[['set', 'iteration']] = 'T', fold
validateDF[['set', 'iteration']] = 'V', fold
print("Fold #{}, Training Size: {}, Validation Size: {}".format(fold,len(trainDF),len(validateDF)))
fold+=1
df_cars1 = pd.concat([validateDF,trainDF])
df_cars1.to_csv("./data/auto-mpg-kfold5.csv")
print(df_cars1)
Probe meiner Ausgabe ist:
mpg iteration set cylinders displacement horsepower weight acceleration year origin name
319 0.997344 5 V 4 -0.705077 -0.767632 -0.506545 0.701436 80 3 mazda 626
320 1.727537 5 V 4 -0.714680 -0.322309 -0.634239 -0.206262 80 3 datsun 510 hatchback
321 1.112638 5 V 4 -0.820308 -0.767632 -0.834055 -0.133646 80 3 toyota corolla
322 2.957335 5 V 4 -1.031565 -1.029586 -1.017318 0.846667 80 3 mazda glc
Wie Sie sehen, sind alle Werte in der Spalte iteration
sind Werte von 5
, was bedeutet, dass nur der letzte, der fünfte KFold an df_cars1
angehängt wird und ich dort alle fünf Falten brauche. Jede mögliche Hilfe
Sie müssen die Zeile einrücken df_cars1 = pd.concat ([validateDF, trainDF]) ' – gnub
@fnub, mein Fehler, falscher Code kopieren/einfügen, aber das Ergebnis ist immer noch das gleiche. – kuatroka