机器学习好伙伴之scikit-learn的使用——K折交叉验证

机器学习好伙伴之scikit-learn的使用——K折交叉验证

在进行数学建模的时候就听过k折交叉验证,要是我当时像现在一样强就好了!
在这里插入图片描述

什么是K折交叉验证

K折交叉验证首先要将整个数据集分成K份。
1、取前面K-1份用于训练,最后一份用于测试,并取得测试结果。
2、取前面K-2份和最后一份用于训练,取第K-1份用于测试,并取得测试结果。
3、以此类推,将数据集的每一份均用于测试过一次。
4、取所有测试结果取平均。
其验证结果相比单次实验更加精准。
实现示意图如下:
在这里插入图片描述

sklearn中K折交叉验证的实现

在进行K折交叉验证之前,首先要导入K折交叉验证的模块。

from sklearn.model_selection import cross_val_score 

K折交叉验证的重要函数是:

cross_val_score(
	estimator, 
	X, y=None, 
	scoring=None, 
	cv=None, 
	n_jobs=1, 
	verbose=0, 
	fit_params=None, 
	pre_dispatch=2*n_jobs’
)

其常用参数如下:
1、estimator:用于预测的模型。
2、X:预测的特征数据
3、y:预测结果
4、scoring:调用的方法
可进行的scoring方式具体可以查阅
https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
在这里插入图片描述
5、cv:交叉验证生成器或可迭代的次数
使用方式如下:

scores = cross_val_score(knn, X, y, cv=5, scoring='accuracy')

代表使用knn模型,输入特征为X,输出label为y,进行5折交叉验证,通过精确度的方式计分。

应用示例

代码取自莫烦python教学网站。

from sklearn.datasets import load_iris 
from sklearn.model_selection import train_test_split 
# K折交叉验证模块
from sklearn.model_selection import cross_val_score 
# 导入k聚类算法
from sklearn.neighbors import KNeighborsClassifier 

# 加载iris数据集
iris = load_iris()
X = iris.data
y = iris.target

# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=4)

# 建立Knn模型
knn = KNeighborsClassifier()

# 使用K折交叉验证模块
scores = cross_val_score(knn, X, y, cv=5, scoring='accuracy')

# 将5次的预测准确率打印出
print(scores)

#将5次的预测准确平均率打印出
print(scores.mean())

实验结果为:

[0.96666667 1.         0.93333333 0.96666667 1.        ]
0.9733333333333334
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bubbliiiing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值