Python sklearn分类决策树方法详解

作者:#妖言惑众 时间:2023-04-20 17:14:13 

决策树模型

  决策树(decision tree)是一种基本的分类与回归方法。

  分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。

  用决策树分类,从根结点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分到叶结点的类中。

Python sklearn分类决策树方法详解

     用于预测一个人是否肥胖或不肥胖的决策树

决策树学习

  决策树学习算法包括3部分:特征选择、树的生成和树的剪枝。常用的算法有ID3、 C4.5和CART。

  1、特征选择的目的在于选取对训练数据能够分类的特征。特征选择的关键是其准则。常用的准则如下:

  (1)样本集合D对特征A的信息增益(ID3)

  (2)样本集合D对特征A的信息增益比(C4.5)

  (3)样本集合D的基尼指数(CART)

  2.决策树的生成。通常使用信息增益最大、信息增益比最大或基尼指数最小作为特征选择的准则。决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。

   3.决策树的剪枝。由于生成的决策树存在过拟合问题,需要对它进行剪枝,以简化学到的决策树。决策树的剪枝,往往从已生成的树上剪掉一些叶结点或叶结点以上的子树,并将其父结点或根结点作为新的叶结点,从而简化生成的决策树。

使用Scikit-learn进行决策树分类

import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree
import matplotlib.pyplot as plt
iris=load_iris()
print(iris.feature_names)
print(iris.target_names)
#划分数据集
removed =[0,50,100]
new_target = np.delete(iris.target,removed)
new_data = np.delete(iris.data,removed, axis=0)
#训练分类器
clf = tree.DecisionTreeClassifier() # 定义决策树分类器
clf=clf.fit(new_data,new_target)
prediction = clf.predict(iris.data[removed])
print("Original Labels",iris.target[removed])
print("Labels Predicted",prediction)
#绘制决策树
plt.figure(figsize=(15, 10))
tree.plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()

Python sklearn分类决策树方法详解

参考链接传送门

来源:https://blog.csdn.net/weixin_43316082/article/details/126867910

标签:Python,sklearn,决策树
0
投稿

猜你喜欢

  • Python logging模块原理解析及应用

    2022-04-08 11:14:32
  • SQL Server 2005中数据库镜像的四个问题

    2009-02-19 16:48:00
  • mybatis-plus的sql语句打印问题小结

    2024-01-25 11:23:42
  • python opencv 检测移动物体并截图保存实例

    2023-11-05 16:10:35
  • 实例解析Python的Twisted框架中Deferred对象的用法

    2024-01-01 23:38:23
  • Python实现邮件发送的详细设置方法(遇到问题)

    2023-10-05 23:03:00
  • mysql 列转行的技巧(分享)

    2024-01-18 09:54:13
  • Python中方法的缺省参数问题解读

    2022-10-07 17:00:45
  • MySql分表、分库、分片和分区知识深入详解

    2024-01-20 19:11:03
  • docker-py 用Python调用Docker接口的方法

    2023-04-07 03:15:46
  • python实现kNN算法

    2023-01-24 13:58:06
  • Golang单元测试与覆盖率的实例讲解

    2024-05-05 09:27:50
  • pandas 小数位数 精度的处理方法

    2022-12-16 20:40:05
  • 分析mysql中一条SQL查询语句是如何执行的

    2024-01-19 15:43:59
  • Python针对给定列表中元素进行翻转操作的方法分析

    2022-04-19 18:37:07
  • sqlserver 巧妙的自关联运用

    2012-07-21 14:55:12
  • 运用PyTorch动手搭建一个共享单车预测器

    2022-10-20 06:25:04
  • Python web框架(django,flask)实现mysql数据库读写分离的示例

    2024-01-14 15:46:36
  • Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录

    2023-05-08 14:22:05
  • python正则表达式re.search()的基本使用教程

    2022-03-31 15:46:28
  • asp之家 网络编程 m.aspxhome.com