Day7:K-NN分类算法

Day 7.jpg

K-NN是什么?

K最近邻算法是一种简单但目前最常用的分类算法,也可用于回归。
KNN没有参数(不对数据潜在分布规律做任何假设),基于实例(不建立明确的模型,而是通过具体的训练实例进行预测),用于监督学习中。

K-NN算法怎么工作?

当用KNN进行分类时,得到的结果是某一类(预测类别——一个离散值)。
这个方法有三个要素:一组有标签的对象,对象间的距离,K值(最近邻的个数)。

进行预测

为了给没有标签的对象进行分类,需要计算这个对象和已有标签的距离,识别出距离它最近的K个最近邻,最近邻所占数量最多的类别即为该对象的类别。对于真实数据的输入变量,最常用的距离算法是欧几里得距离。

原理图示:
图1:我们想要将灰点分类到浅绿、绿色、红色

图1

图2:首先计算灰点到K个最近邻的距离。
图2

图3:假设K=4,找出4个最近邻。
图3

图4:查看最近邻的类别,4个最近邻中2浅绿1绿1红,灰点的类别与最多的一样,所以灰点属于浅绿。
图4

关于K的值

找到合适的K值并不容易。K值太小时噪音会对结果产生很大影响,K值太大时计算花费很大。K值通常由个例具体情况决定,最好尝试运行每个可能的K值再作决定。

关于距离

欧几里得距离的算法:


其他常用的距离算法还有:
Hamming Distance
Manhattan Distance
Minkowski Distance

你可能感兴趣的:(Day7:K-NN分类算法)