Datawhale-3

1、信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)

熵:描述一个时间的不确定性
联合熵:A与B同时发生的信息熵
条件熵:在A发生的情况下B发生的信息熵
信息增益:Gain为A为特征对训练数据集D的信息增益,它为集合D的经验熵H(D)与特征A给
定条件下D的经验条件熵H(D|A)之差
基尼不纯度:基尼不纯度,是指将来自集合中的某种结果随机应用在集合中,某一数据项的预期误差率
 

2、决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景

ID3算法:ID3算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。

具体方法是:从根节点(root node)开始,对结点计算所有可能的特征信息增益,选择信息增益最大的特征作为结点特征,由该特征的不同取值建立子结点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息均很小或没有特征可以选择为止。

C4.5算法:C4.5算法与ID3算法相似,C4.5算法对ID3算法进行了改进。C4.5在生成过程中,用信息增益比来选择特征。

CART算法:在给定输入随机变量XX条件下输出随机变量YY的条件概率分布的学习方法。

CART算法由一下两步组成:

    1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;

    2)决策树剪枝:用验证数据集对已生成的树进行剪枝病选择最优子树,这时用损失函数最小作为剪枝的标准。

应用场景:银行贷款申请、房产开发商房子的选址。

 

3、回归树原理

一个回归树对应这输入空间(即特征空间)的一个划分以及在划分单元上的输出值。分类树中,我们采用信息论的方法,通过计算选择最佳划分点。而在回归树中,采用的是启发式的方法。假如我们有n个特征,每个特征有s_i(i\in(1,n))个取值,那我们遍历所有特征,尝试该特征所有取值,对空间进行划分,直到取到特征j的取值s,使得损失函数最小(回归树的损失函数用平方差),这样就得到了一个划分点。

 

4、决策树防止过拟合手段

剪枝是决策树学习算法对付过拟合的主要手段。决策树剪枝的基本策略有“预剪枝”和“后剪枝”。

  • 预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点。
  • 后剪枝是指先从训练集生成一颗完整的决策树,然后自底向上地对非结点进行考察,若讲该结点对应的子树替换成叶节点能带来决策树泛化性能的提升,则将该子树替换成叶节点。

5、模型评估

自助法(bootstrap):训练集是对于原数据集的有放回抽样,如果原始数据集N,可以证明,大小为N的自助样本大约包含原数据63.2%的记录。当N充分大的时候,1-(1-1/N)^(N) 概率逼近 1-e^(-1)=0.632。抽样 b 次,产生 b 个bootstrap样本,则,总准确率为(accs为包含所有样本计算的准确率): 

                                                   acc_{boot}= \frac{1}{b} \sum_{t=1}^{b}\left ( 0.632\times \varepsilon _{i}+0.368\times acc_{s} \right )

准确度的区间估计:

将分类问题看做二项分布,则有: 
令 X 为模型正确分类,p 为准确率,X 服从均值 Np、方差 Np(1-p)的二项分布。acc=X/N为均值 p,方差 p(1-p)/N 的二项分布。acc 的置信区间:

6. sklearn参数详解,Python绘制决策树

  class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

  参数详解:

  criterion=’gini’, string, optional (default=”gini”),衡量分支好坏的标准

  splitter=’best’, string, optional (default=”best”),选择分支的策略

  max_depth=None, int or None, optional (default=None),树的最大深度

  min_samples_split=2, int, float, optional (default=2),分支时最小样本数

  min_samples_leaf=1, int, float, optional (default=1),叶子最少样本

  min_weight_fraction_leaf=0.0, float, optional (default=0.),叶子结点的最小权重

  max_features=None, int, float, string or None, optional (default=None),生成树时考虑的最多特征点数

  random_state=None,  int, RandomState instance or None, optional (default=None),打乱样本时所用的随机种子

  max_leaf_nodes=None,  int or None, optional (default=None),生成树时采用的最大叶子结点

  min_impurity_decrease=0.0, float, optional (default=0.),当产生分支时,增加的纯度

  min_impurity_split=None,  float, (default=1e-7),树停止生长的阈值

  class_weight=None,  dict, list of dicts, “balanced” or None, default=None,分支权重预设定

  presort=False,bool, optional (default=False),提前对数据排序,加快树的生成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值