K次交叉验证,将训练集朋分成K个子样本,一个零丁的子样本被保存作为验证模型的数据,其他K-1个样本用来训练。交叉验证重复K次,每个子样本验证一次,平均K次的结果或者使用其它结合体例,最终获得一个单一估测。这个体例的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次。

设置Jupyter notebook展示图片%matplotlib notebook%matplotlib inline

注:如果想展示动态图,选择第一种;如果想展示静态图,用第二种。

导入Numpy, Matplotlib pyplot和KNNimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom sklearn.neighbors import KNeighborsClassifier

加载鸢尾花数据集from sklearn import datasetsiris = datasets.load_iris()

设置训练数据和目标值X = iris.datay = iris.target

朋分训练和测试数据from sklearn.model_selection import train_test_split, cross_val_scoreX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

选择前两个变量以简化数据X = X[:, :2]

设置模型变量max_neighbours = 100accuracy = np.zeros((max_neighbours-1, 3))for number_neighbors in range(1,max_neighbours): knn = KNeighborsClassifier(n_neighbors = number_neighbors) knn.fit(X_train, y_train); # K次交叉验证 scores = cross_val_score(knn, # 模型 X, y, cv=10 # 10次交叉验证 ) # 保存准确率数据 accuracy[number_neighbors-1, 0] = number_neighbors accuracy[number_neighbors-1, 1] = scores.mean() accuracy[number_neighbors-1, 2] = knn.score(X_test, y_test)

可视化模型准确率结果plt.figure()plt.plot(accuracy[:,0], accuracy[:,1]) plt.plot(accuracy[:,0], accuracy[:,2])

用Python进行K次交叉验证,探索鸢尾花数据集(含代码)-1.jpg (30.1 KB, 下载次数: 0)

2018-10-5 04:55 上传

蓝色:K次交叉验证下的准确率;黄线:训练/测试数据朋分训练的准确率

def plot_boundary(knn): # 找到每个特征的最大、最小值 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 # 建立网格矩阵 h=(x_max-x_min)/500 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) xx_yy_grid = np.c_[xx.ravel(), yy.ravel()] # 预测每个网格值得结果 Z = knn.predict(xx_yy_grid) # 重塑预测值结果,便利绘图 Z = Z.reshape(xx.shape) # 绘制决策鸿沟 plt.figure() plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Set3) # 绘制训练点 plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1, edgecolor='k', s=100) plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.show()

N=10情况下,分类可视化:knn = KNeighborsClassifier(n_neighbors = 10)knn.fit(X, y);plot_boundary(knn)

用Python进行K次交叉验证,探索鸢尾花数据集(含代码)-2.jpg (41.03 KB, 下载次数: 0)

2018-10-5 04:55 上传

N = 10

N=70情况下,分类可视化:knn = KNeighborsClassifier(n_neighbors = 70)knn.fit(X, y);plot_boundary(knn);

用Python进行K次交叉验证,探索鸢尾花数据集(含代码)-3.jpg (39.93 KB, 下载次数: 0)

2018-10-5 04:55 上传

N = 70

K次交叉验证训练准确性看起来更高一些。

更多内容回复查看:

游客,如果您要查看本帖隐藏内容请回复

python导入鸢尾花数据集_用Python进行K次交叉验证,探索鸢尾花数据集(含代码)...相关推荐

  1. Python:K折交叉验证,将数据集分成训练集与测试集

    注意文件夹格式:父文件夹/类别/图像(同torch读取图像格式保存一致),传入路径为父文件夹路径. """ 对图像进行交叉验证, 用于检验分类效果 对每个类别的n张图像进 ...

  2. python导入模块失败_关于python导入模块失败的问题

    1.下载netsnmp的源码包, net-snmp-5.7.3.zip 2.解压并安装,tar xzvf net-snmp-5.7.3.zip; cd net-snmp-5.7.3; ./config ...

  3. python导入pandas出错_在python中导入Pandas总是会出错

    我正在使用python 3.6,windows 7,pyCharm IDE . 尝试使用 import pandas 导入pandas时,我不断收到此消息 . 文件"C:\ Users \ ...

  4. python导入pyx文件_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...

    报错内容如下: Traceback (most recent call last): File "E:\Python27\setup.py", line 16, in from s ...

  5. k折交叉验证matlab 流程_第51集 python机器学习:分层K折交叉验证及其他方式

    由于出现类似鸢尾花数据集这种分段数据可能简单的交叉验证无法适用,所以这里引用了分层K折交叉验证.在分层交叉验证中,我们划分数据,使得每个折中类别之间的比例整数与数据集中的比例相同,如下图所示: mgl ...

  6. k折交叉验证(原理+python实现)

    交叉验证用于数据集的数据量不充足情况,将数据集分成训练集.验证集.测试集. k折交叉验证,将数据集先分为训练集与测试集,再把训练集分成k份(大小相等).其中,k-1份作为训练集训练模型,剩下的1份作为 ...

  7. Pytorch最简单的图像分类——K折交叉验证处理小型鸟类数据集分类2.0版本ing

    https://blog.csdn.net/hb_learing/article/details/110411532 https://blog.csdn.net/Pl_Sun/article/deta ...

  8. python网格搜索核函数_(转载)Python机器学习笔记GridSearchCV(网格搜索)

    转载声明 介绍 在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就 ...

  9. python线性回归模型预处理_线性回归-2 数据预处理与模型验证评估

    主要内容数据向量化处理 特征放缩 上采样和下采样 重采样和交叉验证 模型验证 python 代码实现 1. 数据向量化处理 对于给定的m个样本,假设最终的拟合函数是 为拟合的权重系数,则有 损失函数改 ...

  10. python检测异常数据_用Python中从头开始的实现完整的异常检测算法

    利用概率的异常检测算法 异常检测可以作为离群分析的统计任务来对待. 但是,如果我们开发一个机器学习模型,它可以自动化,并且像往常一样可以节省大量时间. 有很多异常检测用例. 信用卡欺诈检测,故障机器检 ...

最新文章

  1. 【总结整理】如何做需求分析(转)
  2. 【收藏备用】服务器基本故障及排查方法
  3. python保存数据到本地_Python爬虫入门 | 6 将爬回来的数据存到本地
  4. ios c语言编译环境搭建,iOS开发之runtime(一):runtime调试环境搭建
  5. IntelliJ IDEA for Mac 在MacOS模式下的注释快捷键(Comment Shortcut)
  6. 常用汇编浮点操作指令
  7. 会计丑闻之后 东芝“迎来”第五次延交财报
  8. ETCD for java_etcd-java使用
  9. 插头DP题目泛做(为了对应WYD的课件)
  10. pytorch GPU分布式训练 数据并行
  11. jmeter之badboy
  12. Kali Rolling更换登录界面的背景
  13. k3服务器重装系统,金蝶K3安装教程07:K3 WEB系统配置工具
  14. msvcr71.dll丢失的解决方法,哪种解决方法更好?
  15. 程序员学英语之如何优雅的将单词本导出的txt文本转换为Excel
  16. Windows注册表开机自启,右键菜单,运行的位置介绍
  17. pymysql:Mysql拒绝从远程访问的解决办法
  18. Java全套课程修炼之Java小白入门篇
  19. android模拟触控power键
  20. Android appWidget——每日一句应用开发

热门文章

  1. 2006年度中国纳税百强出炉
  2. Java方式导入多个excel文件,并将有效的数据导出到一个文件中
  3. JAVA初级(二十七)多线程(3)线程安全与线程同步synchronized的基本使用
  4. 三星i9050手机贴膜
  5. uni小程转发朋友圈参数失效问题
  6. IPv6表示方法与配置案例
  7. 人生如逆水行舟,只为红尘梦一方
  8. ssm家电补贴一站式服务平台 计算机毕设源码12305
  9. COD测定仪监控水污染程度,保证安全用水!
  10. 价格战将毁掉大陆手机产业?