算法图解第10章笔记

标签: 笔记 python 简单算法


K最邻算法(KNN算法)

  • 前言

我第一次见到此算法(k-nearest neighbour),是在《机器学习实战》中,也是用python实现的。那时看的比较匆忙,应该不怎么理解,这次再深入理解吧!算法图解这本书已经接近尾声了,过一阵子我会好好写《机器学习实战》的笔记。(难度很大,会参考其他大神的笔记,更新会慢很多)。
KNN算法只要应用在分类。

  • 原理简述和举例
    首先,明确分类的依据是事物的特征。而特征可分为能用数字表示和不能用数字表示两类。例如,年龄,长度和体重可以用数字表示,但像形状,气味等感官特征就难以用数字表示,这时我们可以人为规定数字给相应的特征。
    然后将这些表示在坐标系中表示出来(人类的思维)。如下图,就是两个特征坐标系。
    举例说明:
    你有三个水果,想判断它们分别是柚子还是橙子。这时,你会想到从两个特征来分类,一是个头大小,二是红的程度。(书本假定,柚子比橙子更红更大),然后用欧式距离公式计算该点与其他点的距离。这个例子中,K选择为1,即选择最近点来衡量该点是柚子还是橙子。

注意:这里有两个特征所以为平面坐标系,当超过三个特征就难以用图形(人类难以理解)表示出来,不过距离公式还是相同。

补充

算法图解只是简单介绍KNN算法,关于此算法的优缺点,K的选择等会在我写《机器学习实战》笔记更详细介绍。总的来说,这算法还是挺有趣的,而且很实用。

第10章的练习都值得思考(参考答案)。