是
class sklearn.cross_validation.ShuffleSplit(
n,
n_iterations=10,
test_fraction=0.10000000000000001,
indices=True,
random_state=None
)正确的方式,10*10倍的简历在科学-学习?(将random_state更改为10个不同的数字)
因为我没有在Stratified K-Fold或K-Fold中找到任何Stratified K-Fold参数,而且对于相同的数据,与K-Fold分离的参数总是相同的。
如果ShuffleSplit是正确的,那么需要关注的是它被提到了
注意:与其他交叉验证策略相反,随机分割并不能保证所有折叠都会不同,尽管对于相当大的数据集来说,这仍然是非常可能的。
10*10倍的简历总是这样吗?
发布于 2011-11-26 20:05:39
我不知道你说的10*10交叉验证是什么意思。您给出的ShuffleSplit配置将使您调用估值器的fit方法10次。如果您显式地使用外部循环调用这10次,或者直接调用它100次,并且保留了10%的数据用于单个循环中的测试,如果您使用:
>>> ss = ShuffleSplit(X.shape[0], n_iterations=100, test_fraction=0.1,
... random_state=42)如果您想使用StratifiedKFold执行10次k=10运行,您可以在两次运行之间洗牌数据集(这将导致对fit方法的总共100个调用,每次调用fit的测试分割率为90% / 10% ):
>>> from sklearn.utils import shuffle
>>> from sklearn.cross_validation import StratifiedKFold, cross_val_score
>>> for i in range(10):
... X, y = shuffle(X_orig, y_orig, random_state=i)
... skf = StratifiedKFold(y, 10)
... print cross_val_score(clf, X, y, cv=skf)https://stackoverflow.com/questions/8281034
复制相似问题