1.1 决策树算法原理

1. 什么是决策树/判定树(decision tree)?

       判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。

 

 

2.  机器学习中分类方法中的一个重要算法

 

 

3.  构造决策树的基本算法    

 下图是常见的一个决策树图,根据是年龄是否为youth , 身份是否为 student等,最后来预测是否购买电脑,

图主要由根节点,分支,节点,树叶来组成.

构成决策树的原始数据

 

3.1 熵(entropy)概念

         信息和抽象,如何度量?

          1948年,香农提出了 ”信息熵(entropy)“的概念

          一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者          

          是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少          

          例子:猜世界杯冠军,假如一无所知,猜多少次?

          每个队夺冠的几率不是相等的

          比特(bit)来衡量信息的多少

变量的不确定性越大,熵也就越大

 

3.2 决策树归纳算法 (ID3

     1970-1980, J.Ross. Quinlan, ID3算法

     选择属性判断结点

     信息获取量(Information Gain):Gain(A) = Info(D) - Infor_A(D)

      通过A来作为节点分类获取了多少信息

     以这份数据为例:

以age为例,14行数据中, 有9行是购买电脑,5行是不购买电脑,那么

age的信息熵为 Info(D)

而年龄分为 youth, middle,senior,根据年龄类型划分后信息熵为info_age(D)

那么年龄的信息获取量为Gain(age)

 

类似,Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048

此时Gain(age)值最大,所以选择age作为第一个根节点

此时决策树图形为

以此类推,得到一个完整的决策树

 

4. 决策树的优点:

     直观,便于理解,小规模数据集有效     

 

5. 决策树的缺点:

     处理连续变量不好

     类别较多时,错误增加的比较快

     可规模性一般

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会依次回答你的问题。 1. 决策树算法原理和框架 决策树是一种基于树结构的机器学习算法,可以用于分类和回归问题。其核心思想是通过对样本数据的分析,选择最优的特征进行分类,从而构建一棵树形的分类模型。 决策树算法的框架包括以下几个步骤: 1.1 准备样本数据 首先需要准备带有标签的样本数据,即每个样本都有一个标签,用于区分不同类别。可以从公共数据集中下载或者自己构造样本数据。 1.2 特征选择 在构建决策树时,需要选择最优的特征来进行分类。常用的特征选择方法包括信息增益、信息增益比、基尼指数等。 1.3 树的生成 通过递归的方式,将样本数据划分为不同的节点,生成一棵树形结构。在每个节点上,选择最优的特征进行分类,将样本数据划分为不同的子集,并生成新的节点。 1.4 树的剪枝 为了避免过拟合,需要对生成的决策树进行剪枝。常用的剪枝方法包括预剪枝和后剪枝。 1.5 预测样本类别 使用测试集中的样本来测试模型的性能,得到预测的类别。 2. 决策树学习算法的特征选择、树的生成和树的剪枝 特征选择、树的生成和树的剪枝是决策树学习算法的关键步骤。 2.1 特征选择 特征选择的目的是选择最优的特征来进行分类。常用的特征选择方法包括信息增益、信息增益比、基尼指数等。 2.2 树的生成 树的生成是通过递归的方式,将样本数据划分为不同的节点,生成一棵树形结构。在每个节点上,选择最优的特征进行分类,将样本数据划分为不同的子集,并生成新的节点。 常用的树的生成算法包括ID3、C4.5、CART等。 2.3 树的剪枝 树的剪枝是为了避免过拟合,需要对生成的决策树进行剪枝。常用的剪枝方法包括预剪枝和后剪枝。 3. 根据不同的数据类型,选择不同的决策树算法 根据不同的数据类型,可以选择不同的决策树算法。如果数据是离散型的,可以使用ID3或C4.5算法;如果数据是连续型的,可以使用CART算法。 4. 针对特定应用场景及数据,能应用决策树算法解决实际问题 决策树算法可以应用于分类和回归问题。在实际应用中,需要根据具体的问题选择合适的决策树算法,并对数据进行预处理和特征选择,以提高模型的准确率和泛化能力。 5. 实现决策树分类的可视化 在Python中,可以使用graphviz库来实现决策树分类的可视化。具体的代码如下: ```python from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris from sklearn import tree import graphviz # 加载iris数据集 iris = load_iris() X = iris.data y = iris.target # 构建决策树模型 clf = DecisionTreeClassifier() clf.fit(X, y) # 可视化决策树 dot_data = tree.export_graphviz(clf, out_file=None, feature_names=iris.feature_names, class_names=iris.target_names, filled=True, rounded=True, special_characters=True) graph = graphviz.Source(dot_data) graph.view() ``` 其中,X表示样本的特征向量,y表示样本的标签,clf表示训练好的决策树分类器。使用tree.export_graphviz()函数将决策树导出为DOT格式,然后使用graphviz.Source()函数将其可视化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值