以前看集体智慧编程时觉得决策树模型没什么大不了的,看得不仔细.昨天知道网页正文抽取(full-text extraction)中对boilerplate和content块的判断就是使用该模型,终于有点直观了,复习一下吧.
集体智慧编程中以预测用户是否选择付费,付费是basic还是premium的分类问题为例讲解.
决策树每一步分支都采用贪心策略,熵(entropy)或基尼不纯度(gini impurity)降低最大的那组,作为新的分支条件.最后得到的结果不一定是一个100%的结果,而是可以给出不同结果的概率,这一点非常实在.
实际中的决策树可以让机器帮助专家做出预测,可以方便以图像呈现.但决策树如果过度拟合(overfitted),结果就变得过于针对训练数据了,这是可以指定一个熵的阈值,只要达到这个阈值就不再分支.
对于某列数据缺失的记录,预测最终结果和概率时,应该让它进入不同分支,按概率加权.
不仅使用分类,还可以用于价格预测,只不过评分不是熵和基尼不纯度,而是用方差.例子如zillow,可以预测房子的价格.我很爱玩游戏足球经理,估计球员身价这种,应该很适用决策树模型吧?
决策树广泛用于金融分析,对于有大量数值型输入和输出的问题,还有数值之间互相关联,决策树可能并不适合.
从使用上感觉贝叶斯是对独立特征做计算,决策树的特征可以有依赖.