美文网首页机器学习算法笔记
【机器学习算法系列】交叉验证

【机器学习算法系列】交叉验证

作者: 朱小敏的小书屋 | 来源:发表于2020-04-25 22:19 被阅读0次

一、交叉验证

1.1 原理简述

交叉验证是一种常用的模型选择方法。如果给定的样本数据充足,进行模型选择的一种简单的方法是随机地将数据集切分成三部分,分别为训练集(training set)、验证集(validation set)和测试集(test set)。训练集用于训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。由于验证集有足够多的数据,用它对模型进行选择也是有效的。

但实际运用中经常会出现数据不足的情况,为了选择更好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集合为训练集和测试集,在此基础上反复地进行训练、测试以及模型选择。

根据不同的切分方法,交叉验证分为以下三种:

1.1.1 简单交叉验证

首先随机的将样本数据分为两部分,一部分作为训练集,另一部分作为测试集(比如: 70%的训练集,30%的测试集);然后用训练集在各种条件下来训练模型,在测试集上评价各模型的测试误差。选择出测试误差最小的模型。

1.1.2 S折交叉验证

S折交叉验证是运用最多的方法,首先把样本数据随机的分成S份,每次随机的选择S-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择S-1份来训练数据。若干轮(小于S)之后,选择损失函数评估最优的模型和参数。

1.1.3 留一交叉验证

它是第二种情况的特例,此时S=样本数N(N为给定数据集的容量),这样对于N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。此方法主要用于样本量非常少的情况。

1.2 sklearn代码实现

在sklearn中的数据集,使用交叉验证对KNN模型进行试验。

#导入所需的包
import numpy as np
import sklearn.datasets as dataset
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score #封装在sklearn中的交叉验证包

# 加载数据
data = dataset.load_digits()
X = data.datay = data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4,random_state=666)# 通过交叉验证进行调参knn_clf=KNeighborsClassifier()
scores=cross_val_score(knn_clf,X_train,y_train)
print(scores)

运行结果:

[0.98895028 0.97777778 0.96629213]

由上述结果可见,数据被分为三份,通过交叉验证的方式得到的每个组合的准确度为0.98895028、0.97777778和0.96629213。3是默认的分割分数,可以通过cv参数调整数据被分割的份数。

相关文章

  • 【机器学习算法系列】交叉验证

    一、交叉验证 1.1 原理简述 交叉验证是一种常用的模型选择方法。如果给定的样本数据充足,进行模型选择的一种简单...

  • 算法工程师面试

    1、编程语言 2、基本算法 3、传统的机器学习算法 4、常见机器学习问题 过拟合问题、交叉验证问题、模型融合、...

  • 饭店流量预测

    lightgbm 模型 修改参数 交叉验证 【机器学习】Cross-Validation(交叉验证)详解. 在机器...

  • 机器学习算法之交叉验证

    我们一般解决机器学习问题的步骤如下:1.拿到数据集,对数据集进行清洗。数据集清洗一般包括以下几个方面:重复值处理,...

  • 机器学习笔记(一)——交叉验证

    交叉验证问题 什么是交叉验证     交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,...

  • 机器学习模型交叉验证脚本

    机器学习模型交叉验证脚本 本文以阿里云机器学习平台上的 ps_smart (GBDT)算法为例,提供一个搜索最佳超...

  • 机器学习—交叉验证

    1、经验误差与过拟合 通常我们把分类错误的样本数占样本总数的比例称为"错误率”,学习器在训练集上的误差称为“经...

  • 如何进行变量筛选和特征选择(三)?交叉验证

    01 模型简介 交叉验证是机器学习中常用的一种验证和选择模型的方法,常用的交叉验证方法是K折交叉验证。将原始数据...

  • 机器学习交叉验证的数据分割算法

    交叉验证(cross validation) 是验证分类器性能的一种统计分析方法,基本的思路是在某种意义下将原...

  • R 交叉验证①

    什么是交叉验证?在机器学习中,交叉验证是一种重新采样的方法,用于模型评估,以避免在同一数据集上测试模型。交叉验证的...

网友评论

    本文标题:【机器学习算法系列】交叉验证

    本文链接:https://www.haomeiwen.com/subject/jbblwhtx.html