• Cross Validation(交叉验证)


    交叉验证(Cross Validation)方法思想

    Cross Validation一下简称CV。CV是用来验证分类器性能的一种统计方法。

    思想:将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先用训练集对分类器进行训练,然后利用验证集来测试训练得到的模型(model),以此来作为评价分类器的性能指标。

    常用CV方法:

    1. Hold-Out Method

    将原始数据随机分为两组,一组作为训练集,一组作为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为Hold-OutMethod下分类器的性能指标。

    由于是随机的将原始数据分组,所以最后验证分类准确率的高低与原始数据的分组有很大关系,这种方法 得到的结果不具有说服性。

    2. K-fold Cross Validation(记为K-CV)

    k折交叉验证:将原始数据分为K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型的验证集的分类准确率的平均数作为K-CV分类器的性能指标。

    3. Leave-One-Out Cross Validation(记为LOO-CV)

    留一验证(LOOCV)意指只使用原本样本中的一项来当做验证集, 而剩余的则留下来当做训练集。 这个步骤一直持续到每个样本都被当做一次验证集。

    LOO-CV有两个明显的优点:

    • 每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠。
    • 实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。

    LOO-CV的缺点:

    计算成本高,因为需要建立的模型数量与原始数据样本数量相同。

    主要函数:

    函数:

    sklearn.cross_validation.cross_val_score

    调用形式:

    sklearn.cross_validation.cross_val_score(estimator, X, y=None, scoring=None, cv=None,n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs')

    返回值就是对于每次不同的划分raw data(未加工的数据)时,在test data上得到的分类的准确率。

    参数解释:

    estimator:不同的分类器,可以是任何分类器。比如支持向量机分类器:estimator = svm.SVC(kernel = 'linear', C = 1)

    (kernel:核心    linear:直线)

    cv:代表不同的cross validation的方法。如果cv是一个int值,并且提供rawtarget参数,那么就代表使用StratifiedKFold分类方式;如果cv是一个int值,并且没有提供rawtarget参数,那么就代表使用KFold分类方式;也可以给它一个cv迭代策略生成器,指定不同的cv方法。

    scoring:默认None,准确率的算法,可以通过score_func参数指定;如果不指定的话,是用estimator默认自带的准确率方法。

  • 相关阅读:
    git代码提交
    bootstrap的用法、bootstrap图标
    HTML 5 Web 存储(客户端存储数据)
    require.js
    WebStrom的使用技巧
    event事件
    $().each 和 $each( )的区别
    js基础字符串
    if return的用法 逻辑运算 switch for break等用法
    date-id自定义属性
  • 原文地址:https://www.cnblogs.com/keye/p/8204241.html
Copyright © 2020-2023  润新知