sklearn Kfold ist nicht für die Schleife, sondern für die Einzelfaltung

8

Nachdem ich cross_validation.KFold (n, n_folds = falten) benutzt habe, möchte ich auf die Indizes für Training und Testen der einzelnen Falte zugreifen, anstatt alle Falten zu durchlaufen.

Nehmen wir den Beispielcode:

%Vor%

Ich würde gerne auf die erste Falte in kf wie folgt zugreifen (anstelle von for loop):

%Vor%

Dies sollte nur die erste Falte zurückgeben, aber stattdessen erhalte ich den Fehler: "TypeError: 'KFold' Objekt unterstützt keine Indizierung"

Was ich als Ausgabe haben möchte:

%Vor%

Link: Ссылка

Frage

Wie erhalte ich die Indizes für Zug und Test für nur eine einzelne Falte, ohne die gesamte for-Schleife durchzugehen?

    
NumesSanguis 09.12.2014, 13:54
quelle

1 Antwort

15

Sie sind auf dem richtigen Weg. Alles, was Sie jetzt tun müssen, ist:

%Vor%

kf ist eigentlich ein Generator, der den Zug-Test-Split erst berechnet, wenn er benötigt wird. Dies verbessert die Speichernutzung, da Sie nicht benötigte Elemente nicht speichern. Wenn Sie eine Liste des Objekts KFold erstellen, werden alle Werte verfügbar gemacht.

Hier sind zwei große Fragen, die erklären, was Generatoren sind: one und two

    
mbatchkarov 09.12.2014, 14:14
quelle