Wie erzeuge ich zufällige Falten für die Kreuzvalidierung in scikit-learn?scikit-learn Unterabtastung von unsymmetrischen Daten für die Kreuzvalidierung
Stellen Sie sich vor, wir haben 20 Proben von einer Klasse, und 80 von der anderen, und wir müssen N Zug und Test-Sets, jeder Zug Satz der Größe 30, unter der Einschränkung, dass in jedem Training, die wir haben 50% der Klasse eins und 50% der Klasse 2.
Ich fand diese Diskussion (https://github.com/scikit-learn/scikit-learn/issues/1362), aber ich verstehe nicht, wie man Falten bekommen. Idealerweise denke ich, ich brauche eine solche Funktion:
cfolds = np.cross_validation.imaginaryfunction(
[list(itertools.repeat(1,20)), list(itertools.repeat(2,80))],
n_iter=100, test_size=0.70)
Was bin ich?
Warum nicht einfach 'random.sample()' verwenden? – Skyler
aus dem gleichen Grund haben wir alle anderen cross_validation Funktion !? – adrin
Sie können einen eigenen Kreuzvalidierungsgenerator definieren: Es sollte ein Objekt mit einem '__len__' sein, das' N' zurückgibt und ein '__iter__', das' N' Listenpaare ergibt (train_indices, test_indices) '. –