我正在使用python sklearn库进行数据分类。以下是我实施的代码。我只是想问一下,这是正确的分类方式吗?我的意思是可以跟随代码可能删除所有的偏见?而且,它是10k倍交叉验证吗?
cv = cross_validation.ShuffleSplit(n_samples, n_iter=3, test_size=0.1, random_state=0)
knn = KNeighborsClassifier()
KNeighborsClassifier(algorithm='auto', leaf_size=1, metric='minkowski',
n_neighbors=2, p=2, weights='uniform')
knn_score = cross_validation.cross_val_score(knn,x_data_arr, target_arr, cv=cv)
print "Accuracy =", knn_score.mean()
谢谢!
答案 0 :(得分:1)
如果你想使用ShuffleSplit进行10倍交叉验证,你应该把n_iter = 10。但是,如documentation所示:与其他交叉验证策略相反,随机分割并不能保证所有折叠都不同,尽管这对于相当大的数据集来说仍然很可能。 如果您想要使用不同折叠的10倍交叉验证,则另一个选项是使用函数KFold和n_folds = 10.
答案 1 :(得分:1)
cv
模块中的参数cross_validation.cross_val_score()
表示您要运行的迭代次数。它的默认值为3
,这意味着它默认会运行3次交叉验证。如果您要运行10倍交叉验证,则此参数cv
应等于10
。我希望这会有所帮助。