Python数据分析实战-实现模型K折交叉验证(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。

从本期开始,我将做一个数据分析类实战的系列文章,列举一些在平时数据处理中遇到的一些小问题,提供一个解决方案,让读者慢慢理解python数据分析的原理和方法,每一篇文章从实现功能、实现代码、实现效果三个方面进行展示。

实现功能:

k折交叉验证是将数据分为k份,选取其中的k-1份为训练数据,剩余的一份为测试数据。k份数据循环做测试集进行测试。此原理适用于数据量小的数据。使用KFpld函数,实现模型的交叉验证,选择最佳模型。n_splits = 5,表示进行5折交叉验证,分别计算每一次的准确率,最后求得平均准确率。

实现代码:

from sklearn import datasets
from sklearn.model_selection import KFold
from sklearn.tree import DecisionTreeClassifier

iris = datasets.load_iris()
data, target = iris.data, iris.target
print(data)
print(target)

kf = KFold(n_splits = 5, shuffle=True, random_state=0)
curr_score=0
for train_index, test_index in kf.split(data):
    clt = DecisionTreeClassifier(max_depth=5, random_state=0).fit(data[train_index], target[train_index])
    curr_score = curr_score + clt.score(data[test_index], target[test_index])
    print("准确率为:", clt.score(data[test_index], target[test_index]))

avg_score = curr_score / 5
print("平均准确率为:", avg_score)

实现效果:

Python数据分析实战-实现模型K折交叉验证(附源码和实现效果)_第1张图片

 

        本人读研期间发表5篇SCI数据挖掘相关论文,现在在某研究院从事数据挖掘相关工作,对数据挖掘有一定的认知和理解,会不定期分享一些关于python机器学习、深度学习、数据挖掘基础知识与案例。致力于只做原创,以最简单的方式让你理解和学习它们,关注V数据杂坛与我一起交流成长。
 

你可能感兴趣的:(数据分析,机器学习,python,数据分析,开发语言)