机器学习入门 4-4 分类精度
- 2019 年 11 月 13 日
- 筆記
本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍kNN算法的分类精度以及在sklearn中的实现。
分类精度

通过上一小节的介绍,我们使用Train_Test_Split方法将这个数据集划分为训练集和测试集,通过训练集训练得到机器学习模型,之后通过测试集评测模型的效果。评测模型的效果是通过计算测试集在模型中得到标签与真实的测试集标签相同的样本数量除以测试集总数,即分类的准确度(accuracy)来近似的。
下面我们使用sklearn封装好的手写数字数据集,自己简单代码得到分类的精确度:





因为计算分类精度的功能非常常用,因此我们将其加入playML包下,在playML包下新建一个名为"metrics"(度量)的Python文件,里面的内容如下:

在jupyter中调用即可:

但是有时候,测试集在模型上的预测结果"y_predict",我们并不感兴趣,因为应用测试集只是为了验证模型的准确度,因此可能不在需要有"y_predict"这个中间结果。
其实就是更进一步的封装,只需要将y_predict封装在计算模型准确度的函数中,此时只能在kNN.py文件中封装,因为y_predict是和具体模型有关的。在kNN.py文件中加入下面代码:

因为此前我们在jupyter中已经导入过kNN.py文件了,因此需要重新执行一遍代码,保证导入新的kNN.py文件。

在jupyter中直接计算分类精度:

sklearn中的分类精度


这里简单总结一下求解分类精度:
