如何在scikit-learn中爲交叉驗證生成隨機摺疊?假設我們有一個類的20個樣本,另一個80個,我們需要生成N個訓練集和測試集,每個訓練集的大小爲30,在每個訓練集的約束下,我們有第一級的50%和第二級的50%。scikit-learn交叉驗證不平衡數據欠採樣
我發現這個討論(https://github.com/scikit-learn/scikit-learn/issues/1362),但我不明白如何得到摺疊。理想情況下,我認爲我需要這樣的功能:
cfolds = np.cross_validation.imaginaryfunction(
[list(itertools.repeat(1,20)), list(itertools.repeat(2,80))],
n_iter=100, test_size=0.70)
我錯過了什麼?
爲什麼不使用'random.sample()'? – Skyler
出於同樣的原因,我們擁有所有其他的cross_validation功能! – adrin
您可以定義自己的交叉驗證生成器:它應該是一個帶有返回N的'__len__'和產生'N'對列表'(train_indices,test_indices)'的'__iter__'的對象。 –