前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。
从本期开始,我将做一个数据分析类实战的系列文章,列举一些在平时数据处理中遇到的一些小问题,提供一个解决方案,让读者慢慢理解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)
实现效果:
本人读研期间发表5篇SCI数据挖掘相关论文,现在在某研究院从事数据挖掘相关工作,对数据挖掘有一定的认知和理解,会不定期分享一些关于python机器学习、深度学习、数据挖掘基础知识与案例。致力于只做原创,以最简单的方式让你理解和学习它们,关注V数据杂坛与我一起交流成长。