k近邻
- 有监督学习
- 分类问题
什么是k近邻法?
k − n e a r e s t n e i g h b o r , k − N N k-nearest\space neighbor,k-NN k−nearest neighbor,k−NN
这里我们讨论分类问题中的 k n n knn knn算法
相信大家都听过:“近朱者赤,近墨者黑”
k近邻算法的原理类似,直观,通俗的来讲,给定一个训练数据集,对于新输入的数据,在训练集合中找到与之最近的 k k k个数据样本,统计 k k k个数据样本的类型,通过多数表决法则 ( m a j o r o t y v o t i n g r u l e ) (majoroty\space voting\space rule) (majoroty voting rule),获得选票最多的类别即把该输入的数据分到这个类
上面这张图体现了 k n n knn knn算法的问题所在之处
灰色的点到底是归于红色还是绿色呢?
这取决于 k k k的取值
而 k k k值的选择会对 k n n knn knn算法的结果产生重大影响
knn的工作流程
1.模型
我们在运用knn算法之前需要确定以下4个部分:
-
训练集
-
距离度量
-
k k k值
-
分类决策规则
一旦以上4个准则确定后,对于每个新输入训练实例 x i x_{i} xi,它所属的类别唯一地确定
2.距离度量
特征空间中两个实例点的距离是两个实例点相似程度的反映!
我们定义 L p L_{p} Lp距离:
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_{p}(x_{i},x_{j})=(\sum_{l=1}^{n}{|x_{i}^{(l)}-x_{j}^{(l)}|^{p}})^{\frac{1}{p}} Lp(xi,xj)=(l=1∑n∣xi(l)−xj(l)∣