【机器学习】机器学习入门02 - 数据拆分与测试&算法评价与调整
0. 前情回顾 上一周的文章中,我们通过kNN算法了解了机器学习的一些基本概念。我们自己实现了简单的kNN算法,体会了其过程。这一周,让我们继续机器学习的探索。 1. 数据集的拆分 上次的kNN算法介绍中,我们只是简单地实现了这样一个算法,并用一组测试数据进行了测试。 然而,在真正的工程应用中,我们设计出的机器学习算法,并不一定非常准确,甚至可能非常不准确。因此我们需要进行测试,如同我们设计好了一个数据结构后,需要使用尽可能涵盖各种情况的参数调用各个操作,并通过一定的方式观察是否符合我们对这种数据结构的预期。机器学习也是一样。 不过,如何对机器学习算法进行高效的测试呢? 这里,我们的方案是:将原始数据集拆分成两部分:训练数据 ( train ) 和测试数据 ( test )。顾名思义,训练数据就是真正提供给机器来进行学习的材料,而测试数据则用来检验算法在训练数据的作用下能否正确给出相应的预测。具体来说,我们将测试数据的指标部分 ( X_test ) 作为输入传给算法,得到的输出 ( y_predict ) 与测试数据的原本的分类标签 ( y_test ) 进行比较,通过其重合的程度来评估算法的好坏。 于是,我们需要一个算法,负责原始数据集的拆分。 1.1 准备工作 在这之前,我们先引入一个sklearn中的模块datasets,并通过以下代码创建一个原始数据集。 1 from