当前位置:   article > 正文

评估方法与CrossValidation交叉验证_cross_validate 返回值分析

cross_validate 返回值分析

评估方法

关键:怎么获得“测试集”(test set) ?

测试集应该与训练集“互斥”

常见方法:

  • 留出法 (hold-out)
  • 交叉验证法 (cross validation)
  • 自助法 (bootstrap)

留出法

这里写图片描述

这里写图片描述

注意:

保持数据分布一致性 (例如: 分层采样)

多次重复划分 (例如: 100次随机划分)

测试集不能太大、不能太小 (例如:1/5~1/3)


k-折交叉验证法

这里写图片描述


自助法

这里写图片描述
这里写图片描述


sklearn.cross_validation模块

cross validation大概的意思是:对于原始数据我们要将其一部分分为traindata,一部分分为test data。train data用于训练,test data用于测试准确率。在test data上测试的结果叫做validation error。将一个算法作用于一个原始数据,我们不可能只做出随机的划分一次train和testdata,然后得到一个validation error,就作为衡量这个算法好坏的标准。因为这样存在偶然性。我们必须多次的随机的划分train data和test data,分别在其上面算出各自的validation error。这样就有一组validationerror,根据这一组validationerror,就可以较好的准确的衡量算法的好坏。crossvalidation是在数据量有限的情况下的非常好的一个evaluate performance的方法。而对原始数据划分出train data和testdata的方法有很多种,这也就造成了cross validation的方法有很多种。

kFold

classsklearn.model_selection.KFold(n_splits=3,shuffle=False, random_state=None)

参数:

n_splits : 默认3,最小为2;K折验证的K值

shuffle : 默认False;shuffle会对数据产生随机搅动(洗牌)

random_state :默认None,随机种子

方法:

get_n_splits([X, y, groups])        Returnsthe number of splitting iterations in the cross-validator

split(X[, y, groups])        Generateindices to split data into training and test set.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
>>> import numpy as np
>>>
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/293250
推荐阅读
相关标签
  

闽ICP备14008679号