K近邻法(K-NN,k-NearestNeighbor)
前言
什么是KNN
K-NN是一种简单且最常用的分类算法,可以应用于回归计算。K-NN是无参数学习,这意味它不会对底层数据的分布做出任何假设,它是基于实例并在一个有监督的学习环境中使用。我们的算法没有显示的模型,它选择的是记忆训练实例。
K-NN算法工作原理
KNN用于分类时的输出结果是一个类别,这种方法有三个关键元素:
· 一组标记的对象
· 对象之间的距离
·k的值-最近邻的数量
要对未标记的对象进行分类,则会计算出该对象对标记的对象之间的距离(最常用的是欧氏距离),确定其k近邻点,然后使用周边最多的最近邻点的类标签来确定该对象的类标签。
其他常见的距离度量方法包括:
· Hamming Distance(汉明距离)
· Manhattan Distance (曼哈顿距离)
· Minkowski Distance (闵氏距离)
K的取值
求K的值并不容易。K值较小意味着噪声会对结果产生较大影响,而K值较大会使得计算成本变高。有些情况下最好是遍历每个可能的K值,然后根据自己的实际来选择K值。