惰性学习法与kNN分类

惰性学习法

我们接触比较多的分类方法,例如决策树,关联规则挖掘,支持向量机,贝叶斯分类,后向传播等等,都可以被称为“急切学习法”,他们接受训练集的信息,在对新的元组(测试集中)进行检验之前,就已经构造好了泛化模型(即分类器),然后根据分类器,直接对新元组分类。所以“急切学习法”的名字很形象:赶紧学(训练之后立即得到分类器),学完之后,直接用(对新元组分类)。

现在我要说一种新的分类方法,最近邻(kNN)分类,和这些“急切学习法”不同,kNN分类并不着急学习,他对于接受的训练元组初始时不做任何处理,只是简单存储,直到接收到测试集中新元组的那一刻,再利用训练集中的元组进行泛化,给出分类结果。这种模式也被称为“惰性学习法”。那kNN分类来说,当接收到新元组需要做检验时,程序计算出与这个新元组(测试元组)最近的k个最近的训练元组,根据多数投票的原则,确定测试元组的类别。具体的算法和注意事项我会在下面详细说明。

和“急切学习法”相比,“惰性学习法”有优势,也有缺点:

先说优点:

  • 天生支持增量学习。了解上面我说的那几种“急切学习法”的话,你会明白当训练元组增加时,那些方法即使可以做增量拓展,也很复杂且低效。
  • 能对超多变形的复杂决策空间建模。而这可能不太容易被“急切学习法”描述。
  • 在数据量不多但数据代表性较强时,kNN分类效果较好。

再说缺点:

  • 计算开销大,了解kNN查询的话,你就知道这种计算执行起来很慢。
  • 正因为计算开销大,所以需要有效的存储技术和并行硬件的支持。

不过无论如何,“惰性学习法”(尤其是kNN分类)为我们提供了一种和大多分类方法不同的思路,还是有用武之地的,所以我觉得有必要在此总结。

kNN分类

基本步骤

  1. 依次读取训练元组: { x1,x2,,xn} { x 1 , x 2 , … , x n } ,其中 xi x i m m 个属性 { A 1 , A 2 , , A m } 组成。即 xi={ xi,1,xi,2,,xi,m} x i = { x i , 1 , x i , 2 , … , x i , m } ,其中 <

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值