划分训练、测试集和数据观察
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了划分训练、测试集和数据观察相关的知识,希望对你有一定的参考价值。
参考技术A 一般在进行模型的测试时,我们会将数据分为训练集和测试集。在给定的样本空间中,拿出大部分样本作为训练集来训练模型,剩余的小部分样本使用刚建立的模型进行预测。train_test_split 函数利用伪随机数生成器将数据集打乱。默认情况下0.75为训练集,0.25测试集。
在构建机器学习模型之前,通常最好检查一下数据,看看如果不用机器学习能不能轻松完成任务,或者需要的信息有没有包含在数据中。
此外,检查数据也是发现异常值和特殊值的好方法。举个例子,可能有些鸢尾花的测量单位是英寸而不是厘米。在现实世界中,经常会遇到不一致的数据和意料之外的测量数据。检查数据的最佳方法之一就是将其可视化。一种可视化方法是绘制散点图(scatter plot)。数据散点图将一个特征作为 x 轴,另一个特征作为 y 轴,将每一个数据点绘制为图上的一个点。不幸的是,计算机屏幕只有两个维度,所以我们一次只能绘制两个特征(也可能是3 个)。用这种方法难以对多于 3 个特征的数据集作图。解决这个问题的一种方法是绘制散点图矩阵(pair plot),从而可以两两查看所有的特征。如果特征数不多的话,比如我们这里有 4 个,这种方法是很合理的。但是你应该记住,散点图矩阵无法同时显示所有特征之间的关系,所以这种可视化方法可能无法展示数据的某些有趣内容。
数据点的颜色与鸢尾花的品种相对应。为了绘制这张图,我们首先将 NumPy 数组转换成 pandas DataFrame。pandas 有一个绘制散点图矩阵的函数,叫作 scatter_matrix。矩阵的对角线是每个特征的直方图
从图中可以看出,利用花瓣和花萼的测量数据基本可以将三个类别区分开。这说明机器学习模型很可能可以学会区分它们。
参考资料:
Python机器学习基础教程
Pandas官方文档
为啥要划分训练集、验证集和测试集
参考技术A一般来说机器学习的数据集都会被划分成三个个子集 训练集,验证集 和 测试集 。
我们拿到的数据集通常都是由人工或者半自动化的方式收集来的,每个输入数据都有对应的输出,机器学习要做的是学习这些已经收集好的数据中所包含的信息,并且在新的输入数据出现时成功预测到输出。
在实现机器学习的过程中, 训练集 是用来训练模型的,给模型输入和对应的输出,让模型学习它们之间的关系。
验证集 是用来估计模型的训练水平,比如分类器的分类精确度,预测的误差等,我们可以根据验证集的表现来选择最好的模型。
测试集 是输入数据在最终得到的模型得到的结果,是训练好的模型在模拟的“新”输入数据上得到的输出。测试集只能在最后用于测试模型的性能,不能拿来训练。
最后,应用阶段,训练好的模型可以被应用在实际获得的数据并且得到结果,但是这个阶段是没办法评价的,模型的质量只能从验证集和测试集上看出来。
大概就是:机器学习(背答案)——>做题(默写答案)——>模考(看答案背的怎么样)——>高考(生死由命)
比较常见的划分数据集的方式是:50%用于训练,25%用于验证,25%用于测试。这个比例也可以根据数据集的大小和数据信噪比来改变。
数据集划分可以用sklearn的train_test_split函数:
以上是关于划分训练、测试集和数据观察的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用caret包中的createDataPartition函数进行机器学习数据集划分划分训练集和测试集并指定训练测试比例
R语言使用caret包中的createDataPartition函数进行机器学习数据集划分划分训练集和测试集并指定训练测试比例