机器学习 Day 6 | K Nearest Neighbours

机器学习第六天 K近邻法(K-NN)

什么是K-NN?
K近邻算法是一种简单但也是最常用的分类算法,它特可以应用于回归计算。
K-NN是无参数学习(这意味着它不会对底层数据的分布作出任何假设),它是基于实例(意味着我们的算法没有显式地学习模型。相反,它选择的是记忆训练实例)并在一个有监督的学习环境中使用。

K-NN也被称为惰性算法,因为它是基于实例的。

K-NN算法是怎么工作的?
K-NN用于分类时输出是一个类别(对于离散分类,返回k个点出现频率最多的类别作为预测分类)
这种方法有三个关键元素:一组标记的对象,例如:一组已存储的记录、对象之间的距离以及k的值-最邻近的数量。

作出预测
若要对未标记的对象进行分类,则会计算出该对象对标记的对象之间的距离,确定其k近邻点,然后使用周边数量最多的最近邻点的类标签来确定该对象的类标签。对于实际中输入的变量,最常用的距离度量是欧式距离。

机器学习 Day 6 | K Nearest Neighbours_第1张图片
机器学习 Day 6 | K Nearest Neighbours_第2张图片

距离度量
欧式距离被计算为一个新点和一个现有点在所有输入属性上的差的平方之和的平方根。
其他常见的距离度量方法包括:
Hamming Distance 汉明距离
Manhattan Distance 曼哈顿距离
Minkowski Distance 闵氏距离

机器学习 Day 6 | K Nearest Neighbours_第3张图片

K的取值
求k的值并不容易。k值小意味着噪声会对结果产生较大的影响,而k值大则会使计算成本变高。这很大程度上取决于实际情况,有些情况下最好是遍历每个可能的k值,然后自己根据实际来选择k值

感谢原作者 Avik-Jain 以及 zhyongquan的汉化

你可能感兴趣的:(机器学习 Day 6 | K Nearest Neighbours)