发布网友 发布时间:2022-11-29 18:13
共1个回答
热心网友 时间:2023-10-28 09:07
一般来说机器学习的数据集都会被划分成三个个子集训练集,验证集和测试集。
我们拿到的数据集通常都是由人工或者半自动化的方式收集来的,每个输入数据都有对应的输出,机器学习要做的是学习这些已经收集好的数据中所包含的信息,并且在新的输入数据出现时成功预测到输出。
在实现机器学习的过程中,训练集是用来训练模型的,给模型输入和对应的输出,让模型学习它们之间的关系。
验证集是用来估计模型的训练水平,比如分类器的分类精确度,预测的误差等,我们可以根据验证集的表现来选择最好的模型。
测试集是输入数据在最终得到的模型得到的结果,是训练好的模型在模拟的“新”输入数据上得到的输出。测试集只能在最后用于测试模型的性能,不能拿来训练。
最后,应用阶段,训练好的模型可以被应用在实际获得的数据并且得到结果,但是这个阶段是没办法评价的,模型的质量只能从验证集和测试集上看出来。
大概就是:机器学习(背答案)——>做题(默写答案)——>模考(看答案背的怎么样)——>高考(生死由命)
比较常见的划分数据集的方式是:50%用于训练,25%用于验证,25%用于测试。这个比例也可以根据数据集的大小和数据信噪比来改变。
数据集划分可以用sklearn的train_test_split函数: