Python sklearn中的交叉验证



我正在使用python sklearn库进行数据分类。以下是我实现的代码。我只想问,这是正确的分类方式吗?我的意思是遵循代码可以潜在地消除所有偏见吗?而且,是 10-k 折叠交叉验证吗?

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()

谢谢!!

如果你想使用 ShuffleSplit 进行 10 倍的交叉验证,你应该输入 n_iter=10。但是,如文档所示:与其他交叉验证策略相反,随机拆分并不能保证所有折叠都不同,尽管对于大型数据集来说,这仍然很有可能。如果要使用不同折叠进行 10 倍交叉验证,另一个选项是使用 n_folds=10 的函数 KFold。

模块中的参数cv cross_validation.cross_val_score()表示要运行的迭代时间。它的默认值为 3这意味着默认情况下它将运行 3 次交叉验证。如果要运行 10 倍交叉验证,此参数cv应等于 10 。我希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新