机器学习—KNN(K近邻)

40 阅读1分钟

1. 最近邻分类器

1.1 积极学习 VS 消极学习

积极学习(急切学习)(Eager Learner)

  • (1)归纳:由训练数据建立分类模型
  • (2)演绎:把模型应用与测试样例
  • 比如:决策树和基于规则的分类器

消极学习(惰性学习)(lazy learner)

  • 把训练数据建模过程推迟到需要对样本分类时
  • 例子:
    • 死记硬背:记住所有的训练数据,当且仅当记录的属性值与一个训练记录完全匹配才对它分类
    • 最近邻(Nearest neighbor):使用“最近”的k个点进行分类。

k近邻为什么是属于消极学习的呢?可以这样理解:

当有一个输入需要预测时,他不是通过模型得出结果,而是它需要由这个输入完完全全从0开始计算。而不像模型中,已经训练好了一系列的参数。

image.png

k近邻的最简单实现是线性扫描,这时要计算输入实例与每一个训练实例的距离,当训练集很大时,计算非常耗时,这种方法是不可行的。

为了提高K近邻搜索的效率,可以考虑使用特殊的结构存储训练数据,去减少计算距离的次数。具体的方法有很多,比如KD树方法。

1.2 KD树