这周来个简单的算法好啦。我记得当时学的最简单的一个算法就是K近邻算法,它简单到什么程度呢?可以说它是我学过的算法中最简单的一个。但是呀,它的作用很不小嘞。
初识KNN
近邻分类被称为“懒惰学习”算法。原理很简单,就是把未标记的案例归类为与他们最为相似的带有标记的案例所在的类,尽管这一想法很简单,但是紧邻分类及其强大(具体多强大我也体会不出来,反正就是既简单又强大),应用呢,离我们最近的就是预测一个人是否喜欢推荐给他们的电影。
特点
简单而且有效,训练阶段很快,对数据的分布没有要求。但是不产生模型,在发现特征之间关系上的能力有限(这点可能跟他的简单有关系),分类阶段很慢且需要大量的内存,特征和缺失数据需要额外处理。
原理
KNN算法将特征处理为一个多维特征空间内的坐标,假如给定一个未知因变量数值的一组特征,KNN会利用每个特征的数值在多维空间中描出不同的点,然后计算这个未知因变量的点与它的K(操作的时候可以自己定义的)个离的最近的点,然后看这几个点,哪种类别的点最多,那给的这个点就属于哪