1) Model = Representation + evaluation + optimization
Representation : 一个分类器需要被表示成computer 能理解的语言. 也就是说,选择一个分类器的表示 等同于 在能用来学习的分类器的集合中选择。 这个集合就称为假设空间。 如果一个分类器不在这个空间中。
Evaluation : 评估函数被用来选出好的分类器。
Optimization : 在分类器集合中 选择得分最高的分类器。 优化技术对于 leanrer的有效性最关键。初学者先选择现成的优化函数,循序渐进,自己设计优化函数。
2) 泛化能力很重要
由于两个一模一样的sample出现的概率极低, 所以一定要重视模型的泛化能力,一定要空出一部分test data来测试分类器。在整个数据集上跑你的数据应该放在最后。
用test data来污染你的分类器会不经意的发生,比如: 用test data 对你的模型做了很多tuning。当然,把一部分数据当作test data。会减少training 数据的数量。这可以通过cross validation弥补:在验证集上作test,并把结果averaging 来看某个特定的parameter设置的怎样。
**在机器学习早期,把训练集和测试集分开没有完全受到青睐。部分原因是,如果一个learner 的表示很局限(如 hyperplanes). test error 和 training error 不会太大。但对于灵活的分类器,甚至对于有很多特征的线性分类器,严格分开test data 和 training data 是必须遵守的。
3)data alone is not enough: 不管你有多少数据都是不够的, 假如从 a million examples 中学习一个有100个变量的boolean function。 有2^100 - 10^6 个example你不知道。每个leanrer必须包含除了data以外的知识和假设。因此,我们经常会采用平滑,相似的example有相似的class。 条件独立,条件复杂度。Like 演绎法(detuction),推论(induction)的方法,就像是一个 知识的杠杆,输入小部分知识而得到了大量的知识输出。induction 比 detuction 更powerful。
4) overfitting 有许多面
Bias: 是leanrer持续学习wrong thing 的倾向。 Variance:是随意学习random things而不顾真实的信号的倾向。 一个linear learner has high bias, 是因为当两个类之间没有超平面时,learner无法感知到。 Decision Trees没有这个问题因为他们能表征任何Boolean Function,但他们会产生高Variance: 不同的训练集,在decision tree上会得到不同的结果。相同的推论也适用于 优化方法的选择。beam search 比 greedy sesarch的bias低,但高 variance.
1
jell OP 注:读 Machine Learning Cheat Sheet的笔记
|
2
jell OP 第四点 4)Decision Tree没有这个因为他们能表征任何Boolean Function。 这句话没看明白,V友的理解是?
|
3
czheo 2015-07-13 19:28:59 +08:00 via iPhone
decision tree只要够深,bias就能够小。
|
4
lcqtdwj 2015-07-13 20:01:14 +08:00
decision tree可以近似任何布尔函数,所以容易过拟合
|
5
moxiaotiao 2015-07-14 08:04:55 +08:00 via Android
C4.5决策树
|