基于图论的决策树模型

————DDL:2017/11/15——不定期记录以便写实验报告

信息论(需补充知识)
结果的不确定性
熵值H(X)=-plog2(p)-(1-p)log2(1-p)
条件熵
联合熵
方差

协方差与相关系数

P(X=1)=p
P(X=0)=1-p

误分类率 1-max(p,1-p)
条件熵取最小
互信息取最大

H(Y)-H(Y|X)
原始数据集的熵 减去 (引入某条件)条件熵
I(X;Y)差值越大,表示X对Y的预测更重要

基于信息增益的ID3模型

缺点:当某个属性分类过多时,比如说userID,更偏向与互信息更高的节点,会被分到较高的根节点,但是没有任何意义

改进:C4.5 引入信息增益率,即每次选取最大增益率的属性进行划分

信息增益率的分子,把属性自己的熵作为分母,信息增益率越大越好

基于Gini指数的CART模型

处理离散型变量
如何处理连续型变量

实验课笔记:
决策树剪枝
1、预剪枝
a 规定树的层次
b 根据数据叶子节点个个数 做一个阈值(假如该节点下只有一个label,有可能是噪声,也许有可能是对模型决策没有什么帮助的节点),假如该叶子节点的数量小于一个阈值,那么把这个叶子节点归并到父节点中,不再继续向下分支
c 从训练集中,用交叉验证,构建验证集
使用验证集,在生成新的节点,判断分出新节点的决策是否效果更好

2、后剪枝
a 基于错误率的剪枝
b 基于模型复杂度的剪枝 惩罚系数(协同错误率和模型复杂度的关系)
(理论课知识补充)

别的优化方法:
a 随机森林(决策树泛化能力太差),对某一个训练集生成一颗完整的树,正确率很高,这样子在测试集上容易出现过拟合

begging 抽取数据集放回去,抽出放回如100次

然后进行10次

有了10个训练集,然后再分别生产决策树,这种方法用于泛化模型

第二个随机
重新选取 特征维度(10选7)

原来的一个节点 加入51个+,49个-,那如果挑选51个的+样例作为决策目标,那么也许没什么代表性,可以利用KNN算法对节点重新建模(原来的模型为众数)

归一化:不等于让和等于1
为什么归一化?
消除量纲
使属性对结果的影响平均一些,不让某些数字差别极大的属性,直接决定整个模型的决策
对什么归一化:
对属性归一化

你可能感兴趣的:(基于图论的决策树模型)