zoukankan      html  css  js  c++  java
  • 【机器学习算法应用和学习_2_理论篇】2.1 决策树

    一、原理阐述


    算法类型:监督学习_分类算法

    输入:数值型或标称型

    V1.0


      将测试集挨个按特征的特征值划分,计算划分前与划分后的混乱度之差,将差最大的特征作为第一层节点,得到被该特征的特征值划分出来几块数据。再将这几块数据分别按上面的步骤重复进行(递归过程),直到该块都是同一类或特征值用完为止。

    二、算法选择


    算法 特点&区别
    ID3 信息增益为准则来选择划分属性
    C4.5 不直接使用信息增益,而是使用增益率来选择最优划分属性
    CART 使用基尼指数来选择划分属性

    三、算法过程


    1.这里涉及到信息混乱度,用一个称为“熵”的度量计算。
    2.划分前与划分后混乱度的差越大,说明划分后的数据越不混乱,即达到想要的目的,称为“信息增益”。
    3.如果特征值都用完了某块数据还不是同一类,可以将类别占比较多的作为该块的类别(即少数服从多少)。
    4.特征太多,数据太乱,构建出来的决策树这颗数可能过于“枝繁叶茂”,就存在过拟合问题,泛化能力较差(说人话就是,由于某些少量样本导致了不必要的分支,使得进来的新数据容易被错分,这模型也就不够普适了——所谓的模型越简单越好泛化)。这就需要一个形象地称为“剪枝”的过程,有“先剪枝”和“后剪枝”两种。“先剪枝”就是设定一个阈值,在给树不断加枝干时判断是否小于阈值,小于阈值就不要继续直接按少数服从多少给这一块盖戳结束;“后剪枝”就是决策树构建好之后,再剪掉小于阈值的枝干。

    四、特点


    优点:
    便于理解和解释。

    树的结构可以可视化出来。

    训练需要的数据少,对异常值和缺失值不敏感。能够处理数值型数据和分类数据。
    缺点:
    容易产生一个过于复杂的模型,使模型产生过拟合的问题。

    决策树可能是不稳定的,因为数据中的微小变化可能会导致完全不同的树生成。

    五、代码API


     【机器学习算法应用和学习_3_代码API篇】3.1 决策树

    Without summary,you can't master it.
  • 相关阅读:
    获取最近6个月的年月(yyyyMM,不包括当月)
    checkbox与<c:forEach>在开发中遇到的问题记录
    MyBatis开发-->增删改
    MyBatis开发-->接口方式编程
    MyBatis开发-->入门
    android-async-http框架之与网络进行数据交互
    android-async-http框架之与服务器进行数据交互
    jQuery截取{}里的字符串及获取json里的值
    SSH整合之三:添加Hibernate环境且使之与Spring进行整合
    angular源码剖析之Provider系列--QProvider
  • 原文地址:https://www.cnblogs.com/everda/p/11310341.html
Copyright © 2011-2022 走看看