Machine Learning-L11-KNN

1. 急切学习 v.s. 惰性学习

  • 急切学习法(Eager leaner)
    • 在接收检验元组前就构造泛化模型(分类模型),学习后的模型已就绪,并急于对未见过的元组进行分类。
  • 惰性学习法(Lazy leaner)
    • 简单存储训练元组,并一直等待,直到给定一个检验元组才进行泛化,以便根据与存储的训练元组的相似性对该元组进行分类。

惰性学习也称基于实例的学习(Instance based learner)、基于类比学习、“赢家通吃”学习或者“基于记忆的学习”。

算法模型先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较,通过这种方式来寻找最佳的匹配。即通过将给定的检验元组与和它相似的训练元组进行比较来学习。

具有以下优点:

  • 适合在并行硬件上实现
  • 天生支持增量学习
  • 能对复杂决策空间建模

常见的算法包括:

  • KNN(K-Nearest Neighbor)
  • 学习矢量量化(Learning Vector Quantization, LVQ)
  • 自组织映射算法(Self-Organizing Map, SOM)

2. KNN

KNN所有训练元组都存放在n维模式空间中,当给定一个未知元组时,搜索模式空间,找出最接近未知元组的k个训练元组(k个“最近邻”)。

  • 对于k-近邻分类,返回k个最近邻的多数类
  • KNN也可用于数值预测,返回k个最近邻的数值的平均值

“邻近性”用距离度量,对于 x = ( x 1 , x 2 , . . . , x n ) , y = ( y 1 , y 2 , . . . , y n ) \boldsymbol x = (x_1,x_2,...,x_n),\boldsymbol y = (y_1,y_2,...,y_n)

欧几里得距离: D ( x , y ) = ( x 1 y 1 ) 2 + ( x 2 y 2 ) 2 + . . . + ( x n y n ) 2 = i = 1 n ( x i y i ) 2 D(\boldsymbol x,\boldsymbol y) = \sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + ... + (x_n-y_n)^2} = \sqrt{\sum\limits_{i=1}^{n}(x_i-y_i)^2} 曼哈顿距离:
D ( x , y ) = x 1 y 1 + x 2 y 2 + . . . + x n y n = i = 1 n x i y i D(\boldsymbol x,\boldsymbol y) =|x_1-y_1| + |x_2-y_2| + ... + |x_n-y_n| =\sum\limits_{i=1}^{n}|x_i-y_i| 闵可夫斯基距离: D ( x , y ) = ( x 1 y 1 ) p + ( x 2 y 2 ) p + . . . + ( x n y n ) p p = i = 1 n ( x i y i ) p p D(\boldsymbol x,\boldsymbol y) =\sqrt[p]{(|x_1-y_1|)^p + (|x_2-y_2|)^p + ... + (|x_n-y_n|)^p} =\sqrt[p]{\sum\limits_{i=1}^{n}(|x_i-y_i|)^p}

猜你喜欢

转载自blog.csdn.net/apr15/article/details/105776854