分类问题-决策树模型

分类问题-决策树模型决策树分类模型决策树是一种简单高效并且具有强解释性的模型 广泛应用于数据分析领域 其本质是一颗自上而下的由多个判断节点组成的树决策树示例预测小明今天是否会出门打球决策树与 if then 规则决策树可以看作一个 if then 规则的集合由决策树的根节点到叶节点的每一条路径 构建一条规则 路径上内部节点的特征对应着规则的条件 condition 叶节点对应规则的结论决策树的 if then 规则集合有一个重要性质 互斥并且完备 这就是说 每个实例都被一条规则 一条路径 所覆盖 并且

决策树分类模型

决策树示例

决策树与 if-then 规则

  • 决策树可以看作一个 if-then 规则的集合
  • 由决策树的根节点到叶节点的每一条路径,构建一条规则:路径上内部节点的特征对应着规则的条件(condition),叶节点对应规则的结论
  • 决策树的 if-then 规则集合有一个重要性质:互斥并且完备。这就是说,每个实例都被一条规则(一条路径)所覆盖,并且只被这一条规则覆盖
    在这里插入图片描述

决策树的目标

  • 决策树学习的本质,是从训练数据集中归纳出一组 if-then 分类规则
  • 与训练集不相矛盾的决策树,可能有很多个,也可能一个也没有;所以我们需要选择一个与训练数据集矛盾较小的决策树
  • 另一角度,我们可以把决策树看成一个条件概率模型,我们的目标是将实例分配到条件概率更大的那一类中去
  • 所有可能的情况中选择最优决策树,是一个NP完全问题,所以我们通常采用启发式算法求解决策树,得到一个次最优解
  • 采用的算法通常是递归地进行以下过程:选择最优特征,并根据该特征对训练数据进行分割,使得各个子数据集都有一个最好的分类
  • 我们使用决策树模型的最终目的是利用决策树模型进行分类预测,预测我们给出的一组数据最终属于哪一种类别,这是一个由不确定到确定的过程
  • 最终理想的分类是,每一组数据,都能确定性地按照决策树分支找到对应的类别
  • 所以我们就选择使数据信息熵下降最快的特征作为分类节点,使得决策树尽快地趋于确定

1)特征选择

2)随机变量

  • 随机变量(random variable)的本质是一个函数,是从样本空间的子集到实数的映射,将事件转换成一个数值

在这里插入图片描述

  • 根据样本空间中的元素不同(即不同的实验结果),随机变量的值也将随机产生。可以说,随机变量是“数值化”的实验结果
  • 在现实生活中,实验结果是描述性的词汇,比如 “硬币的正面”、“反面”。在数学家眼里,这些文字化的叙述太过繁琐,所以拿数字来代表它们

3)熵

  • 熵(entropy)用来衡量随机变量的不确定性
  • 变量的不确定性越大,熵也就越大
  • 设X是一个取有限个值的离散随机变量,其概率分布为:
    在这里插入图片描述

  • 则随机变量X的熵定义为:

在这里插入图片描述

  • 通常,上式中的对数以2为底或者以e为底(自然对数),这时熵的单位分别称为比特(bit)或纳特(nat)。
  • 当随机变量只取两个值,例如 1,0 时,则 X 的分布为:
    在这里插入图片描述
    熵为:




在这里插入图片描述

  • 这时,熵H§随概率p变化的曲线如下图所示(单位为比特):

在这里插入图片描述

4)条件熵(conditional entropy)

  • 条件熵 H( Y|X ) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性:
    在这里插入图片描述在这里插入图片描述

  • 熵 H(D) 表示对数据集 D 进行分类的不确定性。
  • 条件熵 H(D|A) 指在给定特征 A 的条件下数据集分类的不确定性
  • 当熵和条件熵的概率由数据估计得到时,所对应的熵与条件熵分别称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)

5)信息增益

  • 特征A对训练数据集D的信息增益 g(D, A),定义为集合D的经验熵H(D)与特征A给定条件下D的条件熵 H(D|A)之差,即
    在这里插入图片描述

  • 决策树学习应用信息增益准则选择特征
  • 经验熵H(D)表示对数据集D进行分类的不确定性。而经验条件熵H(D|A)表示在特征A给定的条件下对数据集D进行分类的不确定性。那么它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少的程度
  • 对于数据集D而言,信息增益依赖于特征,不同的特征往往具有不同的信息增益
  • 信息增益大的特征具有更强的分类能力

决策树的生成算法

  • ID3
    决策树(ID3)的训练过程就是找到信息增益最大的特征,然后按照此特征进行分类,然后再找到各类型子集中信息增益最大的特征,然后按照此特征进行分类,最终得到符合要求的模型。

  • C4.5
    C4.5算法在ID3基础上做了改进,用信息增益比来选择特征

  • 分类与回归树(CART)
    由特征选择、树的生成和剪枝三部分组成,既可以用于分类也可以用于回归

代码案例

import numpy as np import pandas as pd import xgboost as xgb from sklearn.model_selection import train_test_split # cross_validation from sklearn.datasets import load_iris if __name__ == "__main__": #引入sklearn里面的数据集,iris鸢尾花 iris = load_iris() df = pd.DataFrame(data = iris.data, columns = iris.feature_names) x1,y1 = np.split(data.values, (4,), axis=1) y1 = pd.Categorical(y).codes #划分训练集和测试集 x_train,x_test,y_train,y_test = train_test_split(x1,y1,random_state=1,test_size=50) data_train = xgb.DMatrix(x_train, label=y_train) data_test = xgb.DMatrix(x_test, label=y_test) watch_list = [(data_test, 'eval'), (data_train, 'train')] param = { 
   'max_depth': 2, 'eta': 0.3, 'silent': 1, 'objective': 'multi:softmax', 'num_class': 3} bst = xgb.train(param, data_train, num_boost_round=6, evals=watch_list) y_hat = bst.predict(data_test) result = y_test.reshape(1, -1) == y_hat print('正确率:\t', float(np.sum(result)) / len(y_hat)) 

决策树总结

  • 决策树是一类具有可解释性、泛化性较好的模型
  • 精度高、无需特征归一化,能够处理缺失值,共线性特征
  • 适用于低维稠密数据,不适合高维稀疏数据
  • 决策树类算法兼具特征选择能力
  • 在金融、推荐、商业化领域用途十分广泛
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177586.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:10
下一篇 2026年3月26日 下午7:10


相关推荐

  • 【CSS】css变量

    【CSS】css变量目录 1 css 变量 2 实例 1 css 变量有的网站都会有自己的主题色 例如饿了么 所以很对元素都会用到这些颜色 例如某些字体颜色 弹框提示颜色等等 如果每次用到的时候 都使用十六进制的颜色表示 那么效率十分低 并且如果万一有一天需要更换主题颜色 那么一个一个更改 是十分繁琐的 为了解决以上问题 css 引入了变量 CSS 变量可以访问 DOM 可以创建具有局部或全局范围的变量 使用 JavaScript 和媒体查询来修改变量 var 函数用于插入 CSS 变量的值 全局变量可以在整个文档进行访问

    2026年3月18日
    1
  • Tomcat 下载、安装、配置图文教程

    Tomcat 下载、安装、配置图文教程ApacheTomcat下载、安装、配置图文教程自我心得1、Tomcat下载(1)Tomcat官网:Tomcat官方网址,可以在此处下载Tomcat。(2)点击左侧Download下的对应版本。注意有zip和exe两种格式的,zip是免安装版的,exe是安装版。同时观察自己的电脑是64位系统还是32位系统。例如进入:Tomcat9版本下载页面,下滑,到core处选择自己需要的版本,如图所示:…

    2022年5月12日
    48
  • HAVING用法

    HAVING用法1语法:groupby字段having条件判断;groupby的用法我已经在上一篇经验中介绍了2还是已员工绩效表为例3我们如果就是查询每个部门成绩大于89的员工数,可以这样写:SELECTdept,COUNT(user_name)FROMec_usesWHEREscore>89GROUPBYdept;对这个查询的过程进行分析,其实是:先查出绩效成绩大于89的员工记录…

    2022年6月18日
    42
  • Web跨域请求及其解决方案

    Web跨域请求及其解决方案目录一 理论概述 1 什么是跨域请求 Cross domainReques 2 浏览器的同源策略 Same originPolicy 3 存在的安全风险 4 CSRF 攻击简介二 跨域方案 1 跨域资源共享 CORS 1 CORS 简单请求 2 CORS 非简单请求 也称预检请求 HTTP 响应首部字段 Access Control Allow Or

    2026年3月19日
    1
  • 智谱清言GLM 4.5大模型深度解析:功能特点+使用教程

    智谱清言GLM 4.5大模型深度解析:功能特点+使用教程

    2026年3月12日
    2
  • 常见电平转换电路设计参考

    常见电平转换电路设计参考一 概述 在硬件设计中有时候经常会遇到 主芯片引脚使用的 1 8V 3 3V 5V 等 连接外部接口芯片使用的 3 3V 5V 等 由于电平不匹配就必须进行电平转换 两个设备如果供电电压不一样 比如一个是 3 3V 另一个是 5V 那么在电平不匹配的情况下工作 会造成信号传输出错 如果二者电压相差较大 严重的可能会损坏芯片 二 设计 1 晶体管构成的电平转换方法

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号