交叉验证中cv=? 与 cv=KFold(n |
您所在的位置:网站首页 › cross_val_score函数cv › 交叉验证中cv=? 与 cv=KFold(n |
这几天复习交叉验证的时候发现一个问题,学习资料中有些地方用的函数中cv=?,有些地方则用的cv=KFold(n_splits=?) 这个函数,就比如我用KNN模型做十折交叉验证: model = sk_neighbors.KNeighborsClassifier(n_neighbors=5,n_jobs=1) #KNN分类 import sklearn.model_selection as sk_model_selection accs=sk_model_selection.cross_val_score(model, iris_X, y=iris_y, scoring=None,cv=10, n_jobs=1) print('交叉验证结果:',accs)这里面第三行用的cv=10。然后在我的Titanic实战中: kf = KFold(titanic.shape[0], n_splits=10, random_state=1, shuffle=False)这里用kfold函数中的n_splits代表分十份。为什么呢??? 我在StackExchange这个网站发现老外说的这些话: When an integer is passed to the cv parameter of cross_val_score(): StratifiedKFold is used if the estimator is a classifier and y is either binary or multiclass.In all other cases, KFold is used.啥意思呢? 如果估计器是一个分类器,并且y是二进制或多类,则使用StratifiedKFold,如果是其他情况,就用KFold 这里的StratifiedKFold是啥?cv=StratifiedKFold(n_splits=10)其实就等价于cv=10 同样也有cv=KFold(n_splits=10))) 遵从这个标准,可以让结果变得更好! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |