上一篇我们介绍了knn,了解了它是一种lazy learning的算法,那么什么是eager learning呢?
积极学习(Eager Learning)
在进行某种判断(例如,确定一个点的分类或者回归中确定某个点对应的函数值)之前,先利用训练数据进行训练得到一个目标函数,待需要时就只利用训练好的函数进行决策,显然这是一种一劳永逸的方法。
典型的算法:
SVM、Find-S算法、候选消除算法、决策树、人工神经网络、贝叶斯方法;
消极学习(Lazy Learning)
这种学习方式指不是根据样本建立一般化的目标函数并确定其参数,而是简单地把训练样本存储起来,直到需要分类新的实例时才分析其与所存储样例的关系,据此确定新实例的目标函数值。也就是说这种学习方式只有到了需要决策时才会利用已有数据进行决策,而在这之前不会经历 Eager Learning所拥有的训练过程。
典型的算法:
KNN、局部加权回归、基于案例的推理
比较:
Lazy Learning是一个局部的近似,然而虽然不需要训练,它的复杂度还是需要 O(n),而且要的存储空间比较大 、决策过程比较慢。
Eager Learning考虑到了所有训练样本,说明它是一个全局的近似,虽然它需要耗费训练时间,但它的决策时间基本为0.
总之,不管是哪种学习方法,我的电脑都是跑不动的。:fu: