决策树算法-实战篇

本节来介绍如何用决策树解决实际问题。

决策树是常用的机器学习算法之一,决策树模型的决策过程非常类似人类做判断的过程,比较好理解。

决策树可用于很多场景,比如金融风险评估,房屋价格评估,医疗辅助诊断等。

要使用决策树算法,我们先来介绍一下 scikit-learn 。

1,scikit-learn

scikit-learn 是基于Python 的一个机器学习库,简称为sklearn,其中实现了很多机器学习算法。我们可以通过sklearn 官方手册 来学习如何使用它。

sklearn 自带数据集

要进行数据挖掘,首先得有数据。sklearn 库的datasets 模块中自带了一些数据集,可以方便我们使用。

sklearn 自带数据集:

  1. 鸢尾花数据集:load_iris()
  2. 乳腺癌数据集:load_breast_cancer()
  3. 手写数字数据集:load_digits()
  4. 糖尿病数据集:load_diabetes()
  5. 波士顿房价数据集:load_boston()
  6. 体能训练数据集:load_linnerud()
  7. 葡萄酒产地数据集:load_wine()

冒号后边是每个数据集对应的函数,可以使用相应的函数来导入数据。

比如我们用如下代码导入鸢尾花数据集

from sklearn.datasets import load_iris
iris = load_iris()

使用dir(iris) 查看iris 中包含哪些属性:

>>> dir(iris)
['DESCR', 'data', 'feature_names', 'filename', 'frame', 'target', 'target_names']

2,sklearn 中的决策树

sklearn 库的tree 模块实现了两种决策树:

  • sklearn.tree.DecisionTreeClassifier 类:分类树的实现。
  • sklearn.tree.DecisionTreeRegressor 类:回归树的实现。

分类树用于预测离散型数值,回归树用于预测连续性数值。

sklearn 只实现了预剪枝,没有实现后剪枝

DecisionTreeClassifier 类的构造函数

def __init__(self, *,
       criterion="gini",
       splitter="best",
       max_depth=None,
       min_samples_split=2,
       min_samples_leaf=1,
       min_weight_fraction_leaf=0.,
       max_features=None,
       random_state=None,
       max_leaf_nodes=None,
       min_impurity_decrease=0.,
       min_impurity_split=None,
       class_weight=None,
       ccp_alpha=0.0):

DecisionTreeClassifier 类的构造函数中的criterion 参数有2 个取值:

  • entropy:表示使用 ID3 算法(信息增益)构造决策树。
  • gini:表示使用CART 算法(基尼系数)构造决策树,为默认值。

其它参数可使用默认值。

sklearn 库中的决策分类树只实现了ID3 算法和CART 算法。

DecisionTreeRegressor 类的构造函数

def __init__(self, *,
      criterion="mse",
      splitter="best",
      max_depth=None,
      min_samples_split=2,
      min_samples_leaf=1,
      min_weight_fraction_leaf=0.,
      max_features=None,
      random_state=None,
      max_leaf_nodes=None,
      min_impurity_decrease=0.,
      min_impurity_split&#
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树算法是机器学习中常用的一种算法,它通过构建一棵树形结构来进行分类或回归任务。决策树算法有多种不同的变体,其中包括ID3算法、C4.5算法和基本决策树算法。 ID3算法是最早提出的一种决策树算法,它的核心思想是通过计算信息增益来选择最佳的特征进行节点的划分。具体步骤是:从根节点开始,计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征,然后根据该特征的不同取值建立子节点,再对子节点递归地应用以上步骤,直到所有的特征信息增益很小或没有特征可选为止。 C4.5算法是对ID3算法的改进,它引入了信息增益率(比)来选择特征,解决了ID3算法对于取值较多的特征有偏好的问题。与ID3算法相似,C4.5算法也使用递归的方式构建决策树,但在选择划分特征时,使用信息增益率作为选择的依据。 基本决策树算法决策树算法的一种简化版,它没有引入信息增益或信息增益率,而是通过计算基尼指数来选择最佳的划分特征。基尼指数衡量了一个特征的不纯度,选择基尼指数最小的特征进行划分。基本决策树算法相对于ID3算法和C4.5算法更简单直观,但在某些情况下可能会有一定的性能损失。 总的来说,决策树算法通过构建一棵树形结构来进行分类或回归任务,其中ID3算法、C4.5算法和基本决策树算法是其中的三种常见变体。每种算法都有其特点和优缺点,选择适合具体问题的算法可以提高算法的性能和准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习算法(3)之决策树算法](https://blog.csdn.net/qq_20412595/article/details/82048795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值