Machine Learning Techniques 笔记:2-9 Decision Tree

g(x) 即为最终的选择

容易理解,但缺乏强有力的数学理论保障

1.首先学如何做分支

2.根据分支,分成c块,

3. 各分支学习一个各自的小树

4. 各分支整合起来,生成大树。

但只有这4个步骤,可能不行,因为没有停止的条件。

1.每次一刀切两段,只建造二元树

2. 回传一个最好的常数(二元分类,回传最多的y;回归问题,回传y的平均)

1.利用decision stump切分二元树。decision stump:在data中只看一个feature,决定完看那个feature后,就往两边切割,一边为+1,一边为-1。

CART:不断切割,到leaf时返回常数。

2.purifying:切开后,看起来比较纯的左边的dataset与右边的dataset,用最纯的切割方式作为现在的切割方法。

通过Ein 最小,来体现分类的纯度

Ein=0,可能会导致模型过复杂,容易overfit

选择一个Ein不那么大,但不会overfit的树

摘掉一片叶子的树出发,逐步增加叶子,生成不同的树,选择Ein与复杂度加权后最优的树。用validation set选择一个适合的lambada


如果体重信息缺失,可以利用其它feature,如身高做切割,切出类似的效果。一般,身高越高,体重越重

第一刀,左边非常纯净,两边各做一个子树,组成一颗大树

第二刀,对右边的子树切割,同样,左边最纯

第三刀,类似第二刀,将右边的子树的子树切割

同理,继续

切刀都很纯净

回传常数

CART:每次针对不同的决策边界做切割,可以做比较细致的切割。

看起来比Adaboost,一定要切割完全的水平/垂直刀更有效率

CART如果不做pruning,会得到low Ein,但可能会导致overfit,high Eout






猜你喜欢

转载自blog.csdn.net/f2157120/article/details/80515623