sklearn决策树分类算法应用

决策树算法应用

在 sklearn 库中与决策树相关的算法都存放在sklearn.tree模块里,该模块提供了 4 个决策树算法,下面对这些算法做简单的介绍:

1) .DecisionTreeClassifier()

这是一个经典的决策树分类算法,它提供了许多有用的参数,比如criterion,该参数有两个参数值,分别是 gini(基尼指数)和 entropy(信息增益),默认情况下使用“基尼指数”,其中“gini”用于创建 CART 分类决策树,而“entropy”用于创建 ID3 分类决策树。

注意:在其余三个决策树算法中都可以使用 criterion 参数。

2) .DecisionTreeRegressor()

它表示用决策树算法解决回归问题。

3) .ExtraTreeClassifier()

该算法属于决策树分类算法,但又不同于.DecisionTreeClassifier()算法,因为.ExtraTreeClassifier()选择“特征维度”作为判别条件时具有随机性,它首先从特征集合中随机抽取 n 个特征维度来构建新的集合,然后再从新的集合中选取“判别条件”。

4) .ExtraTreeRegressor()

该算法同样具有随机性,它与.ExtraTreeClassifier()随机过程类似,它主要解决机器学习中的回归问题。

决策树实现步骤

通过前面内容的学习,我们已经大体掌握了决策树算法的使用流程。决策树分类算法的关键在于选择合适的“判别条件”,该判别条件会使正确的分类的样本“纯度”最高。想要选取合适的特征属性就需要使用“信息熵”与“信息增益”等计算公式。

1) 确定纯度指标

确定纯度指标,用它来衡量不同“特征属性”所得到的纯度,并选取使得纯度取得最大值的“特征属性”作为的“判别条件”。

2) 切分数据集

通过特征属性做为“判别条件”对数据集集合进行切分。注意,使用过的“特征属性”不允许重复使用,该属性会从特征集合中删除。

3) 获取正确分类

选择特征集合内的特征属性,直至没有属性可供选择,或者是数据集样本已经完成分类为止。切记要选择占比最大的类别做为分类结果。

决策树算法应用

下面使用决策树算法对 Sklearn 库中的红酒数据进行模型训练,与数据预测,示例代码如下:

纯文本复制
 
  1. # 加载红酒数据集
  2. from sklearn.datasets import load_wine
  3. # 导入决策树分类器
  4. from sklearn.tree import DecisionTreeClassifier
  5. # 导入分割数据集的方法
  6. from sklearn.model_selection import train_test_split
  7. # 导入科学计算包
  8. import numpy as np
  9. # 加载红酒数据集
  10. wine_dataset=load_wine()
  11. # 分割训练集与测试集
  12. X_train,X_test,y_train,y_test=train_test_split(wine_dataset['data'],wine_dataset['target'],test_size=0.2,random_state=0)
  13. # 创建决策时分类器--ID3算法
  14. tree_model=DecisionTreeClassifier(criterion="entropy")
  15. # 喂入数据
  16. tree_model.fit(X_train,y_train)
  17. # 打印模型评分
  18. print(tree_model.score(X_test,y_test))
  19. # 给出一组数据预测分类
  20. X_wine_test=np.array([[11.8,4.39,2.39,29,82,2.86,3.53,0.21,2.85,2.8,.75,3.78,490]])
  21. predict_result=tree_model.predict(X_wine_test)
  22. print(predict_result)
  23. print("分类结果:{}".format(wine_dataset['target_names'][predict_result]))

输出结果如下:

0.9166666666666666

[1]

分类结果:['class_1']
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为我喧哗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值