机器学习代码实战——K折交叉验证(K Fold Cross Validation)

1.实验目的

使用sklearn库中的鸢尾花数据集,并针对以下模型使用cross_val_score来衡量每个模型的性能。 最后找出性能最佳的模型。
(1)逻辑回归
(2)支持向量机
(3)决策树
(4)随机森林

2.导入数据和必要模块

from sklearn.datasets import load_iris  #加载load_iris数据集
from sklearn.model_selection import cross_val_score  #交叉验证模块
from sklearn.linear_model import LogisticRegression  #逻辑回归
from sklearn.tree import DecisionTreeClassifier  #决策树
from sklearn.svm import SVC   #支持向量机
from sklearn.ensemble import RandomForestClassifier  #随机森林
import numpy as np   #数值运算模块

3.比较不同模型预测准确率

3.1.逻辑回归

采用十折交叉验证,将会返回10次准确率得分,然后用np.average求平均。

iris = load_iris()

lr_scores = cross_val_score(LogisticRegression(),iris.data,iris.target,cv=10)
lr_scores
np.average(lr_scores)

在这里插入图片描述

3.2.决策树

d_scores = cross_val_score(DecisionTreeClassifier(),iris.data,iris.target,cv=10)
d_scores
np.average(d_scores)

在这里插入图片描述

3.3.支持向量机

s_scores = cross_val_score(SVC(),iris.data,iris.target,cv=10)
s_scores
np.average(s_scores)

在这里插入图片描述

3.4.随机森林

rf_scores = cross_val_score(RandomForestClassifier(n_estimators=40),iris.data,iris.target,cv=10)
rf_scores
np.average(rf_scores)

在这里插入图片描述
小结:通过对比四个模型的10折交叉验证结果,可见支持向量机效果最好,达到98%。

发布了205 篇原创文章 · 获赞 592 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/105393467