美文网首页
集成学习-Chapter1

集成学习-Chapter1

作者: 世界上的一道风 | 来源:发表于2019-08-10 15:58 被阅读0次

summary

  • 决策树的研究三点:特征选择、树的构造、树的剪枝。

  • 从可能的决策树中直接选取最优决策树是NP完全问题。现实中采用启发式方法学习次优的决策树。

  • CART是一颗二叉树,采用二元切割法。

  • ID3的信息增益反映的是给定条件以后不确定性减少的程度,某特征在数据中表现得越多,意味着该特征确定性更高,条件熵越小,信息增益越大。ID3的缺点是每个样本的特征都不同(DNA),分类的泛化能力降低。其次是只能处理离散变量。

  • C4.5与CART能处理连续型变量。C4.5会对数据做排序之后找到类别不同给的分割点作为切分点。

  • 从应用的角度,ID3与C4.5只能用于分类任务,而CART可以应用于回归任务。

特征选择:


1.分类决策树模型是表示基于特征对实例进行分类的树形结构。决策树可以转换成一个if-then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布。

2.决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的决策树。因为

从可能的决策树中直接选取最优决策树是NP完全问题。现实中采用启发式方法学习次优的决策树。

  • 决策树学习算法包括3部分:特征选择树的生成树的剪枝。常用的算法有ID3
    C4.5CART

3.特征选择的目的在于选取对训练数据能够分类的特征。特征选择的关键是其准则
常用的准则如下:

(1)样本集合D对特征A的信息增益(ID3):

g(D, A)=H(D)-H(D|A)

H(D)=-\sum_{k=1}^{K} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|}

H(D | A)=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right)

其中,H(D)是数据集D的熵,H(D_i)是数据集D_i的熵,H(D|A)是数据集D对特征A的条件熵。
D_iD中特征A取第i个值的样本子集,C_kD中属于第k类的样本子集。
n是特征A取 值的个数,K是类的个数。

(2)样本集合D对特征A的信息增益比(C4.5)

g_{R}(D, A)=\frac{g(D, A)}{H(D)}

其中,g(D,A)是信息增益,H(D)是数据集D的熵。

(3)样本集合D的基尼指数(CART)

\operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2}

特征A条件下集合D的基尼指数:

\operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right)

4.决策树的生成。通常使用信息增益最大信息增益比最大基尼指数最小作为特征选择的准则。

决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。

这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。


数据熵:先计算每个标签下的数据数目与总数据数目的比。

def calc_ent(datasets):
    data_length = len(datasets)
    label_count = {}
    for i in range(data_length):
        label = datasets[i][-1]
        if label not in label_count:
            label_count[label] = 0
        label_count[label] += 1
    # log(对数,底数)
    ent = -sum([(p / data_length) * log(p / data_length, 2)
                for p in label_count.values()])
    return ent

特征条件熵:

# 经验条件熵,axis表示的是第axis特征
def cond_ent(datasets, axis=0):
    #数据的总数目
    data_length = len(datasets)
    # axis类特征里存在的特征类别:如【青年、老年】
    feature_sets = {}
    for i in range(data_length):
        feature = datasets[i][axis]
        if feature not in feature_sets:
            feature_sets[feature] = []
        feature_sets[feature].append(datasets[i])
    cond_ent = sum(
        [(len(p) / data_length) * calc_ent(p) for p in feature_sets.values()])
    return cond_ent

相关文章

  • 集成学习-Chapter1

    summary 决策树的研究三点:特征选择、树的构造、树的剪枝。 从可能的决策树中直接选取最优决策树是NP完全问题...

  • 11 集成学习 - XGBoost案例 - 波士顿房价进行预测

    08 集成学习 - XGBoost概述09 集成学习 - XGBoost公式推导10 集成学习 - XGBoost...

  • 2019-03-02

    ML——集成学习 个体与集成 集成学习:构建并结合多个学习器来完成学习任务。 同质:集成中只包含同种类型的个体学习...

  • 3.1.1.8 集成学习

    集成学习 原理 《机器学习》周志华 8.1 个体与集成 集成学习(ensemble learning) 通过构建并...

  • 10.machine_learning_model_ensemb

    机器学习集成学习与boosting模型 机器学习中的集成学习 顾名思义,集成学习(ensemble learnin...

  • 西瓜书学习笔记-集成学习

    集成学习 个体与集成 集成学习通过构造多个学习器来完成学习任务。集成学习的构造是先产生一组个体学习器,然后用某种策...

  • Task5 模型集成

    这次主要学习的知识点是:集成学习方法、深度学习中的集成学习和结果后处理思路。 1、集成学习方法 在机器学习中的集成...

  • AdaBoost模型

    集成学习是目前很流行的一种机器学习方法,kaggle比赛取得好成绩的队伍几乎都是用的集成学习。 一、集成学习 集成...

  • CV-模型集成

    集成学习方法 集成学习能够提高预测精度,常见的集成学习方法有stacking、bagging和boosting,同...

  • 集成学习

    集成学习与个体学习器 集成学习是机器学习中常用的一种方法,常用的集成学习方法有boosting,bagging以及...

网友评论

      本文标题:集成学习-Chapter1

      本文链接:https://www.haomeiwen.com/subject/iuqidctx.html