很早就买了机器学习这本书,由于工作上太忙一直没来得及看,最近时间比较充裕,终于拿出时间来好好研究一下这本书。从第一个算法kNN分类器开始,记录自己的学习经历。
kNN分类器和Python算法实现
假设生活中你突然遇到一个陌生人,你对他很不了解,但是你知道他喜欢看什么样的电影,喜欢穿什么样的衣服。根据以前你的认知,你把你身边的朋友根据喜欢的电影类型,和穿什么样的衣服,简单的分为了两类,有钱的和没钱的。那你该怎么将这个陌生人分类呢?物以类聚,人以群分,你看他喜欢看的电影和穿衣服的衣服和那群人比较接近,然后你就把他归为那类人,这就是kNN算法的思想。
那么怎么评判他和那类人比较接近呢?这就用到了“距离”的概念。首先你要把电影类型、和穿的衣服量化,转化为可以进行计算的数字量。然后计算他的[电影类型、衣服品牌]和你原来分类中其余个体的[电影类型、衣服品牌]之间的距离,从距离[d1,d2,d3....]中选取出K个最近的值,然后看这些距离中最多的分类是哪个。
这,就是kNN分类的思想。
首先,我们先创建一个训练样本,也就是已有的数据大类“A”和“B”,对应的点分别为A - [1.0 0.9] [1.0 1.0] 和B - [0.1 0.2 ] [0