Python机器学习之全面解释决策树分类
off999 2024-11-26 07:24 31 浏览 0 评论
在本文中,决策树算法是所有其他树模型的基础模型。决策树包含在CART(分类和回归树)算法中,该算法是sklearn中的优化版本。这些是非参数监督学习。非参数表示数据是无分布的,即变量是标称或有序的。
决策树通过选择根节点进行决策,然后进一步细分为节点。拆分基于决策树中使用的度量。较早的文章是关于回归和分类的度量。但是在决策树的情况下,指标略有不同。
决策树中的指标
- 基尼杂质和熵
- 信息增益
- 减少方差
决策树具有几种算法,可以从数据集中生成决策树,如下所示:
- ID3(迭代二分法3):它生成较小的树,并且对连续数据无用,因为它会导致在该属性中找到多个拆分,并且需要更长的时间。它也确实在训练集上过拟合。
- C4.5:它是ID3的高级版本,它也可以基于阈值处理连续数据。在缺少值得数据集中也很有用。创建树木后,它也可以修剪。
- CART:这是一个分类和回归树,根据输出变量是分类变量还是数字变量生成树。CART检测到该属性中没有进一步的增益,并停止拆分。
我们将看到不同的算法如何使用不同的度量标准来进行树的拆分。
基尼和熵
- 该算法的CART版本中使用了基尼杂质。它用于发现对观察结果进行错误分类的可能性,并且可以使用较低的Gini值进行更好的拆分。
- 熵还用于根据错误分类的观察结果对树木进行分割。由于需要进行日志计算,因此需要花费更长的时间。
- 这里的主要区别是要注意,基尼的取值范围是0到0.5。熵的取值范围是0到1。
- 该算法的ID3和C4.5版本中使用了熵。
信息增益
它与熵值一起使用。从先验状态到信息状态的熵值之差。
通常,分割是基于最大增益或从目标变量到另一个属性的信息来完成的。
增益(i)=信息增益(Y)-熵(Ai)
Y —因变量
Ai-自变量的属性(i = 1,2…n)
减少方差
这在回归问题中很有用,因为当输出变量为连续数时,节点的分割基于方差值。
现在是时候对分类问题使用python进行实际操作了。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd导入库之后的下一步,我们现在将读取CSV文件并将数据分为特征和目标变量。
dataset = pd.read_csv('Social_Network_Ads.csv')
x_set_values = dataset.iloc[:, [2, 3]].values
y_set_values = dataset.iloc[:, 4].values现在将数据分为训练和测试数据。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x_set_values,
y_set_values, test_size = 0.25, random_state = 0)在下一步中,我们可以进行标准缩放,但是我认为在决策树中不应该这样做,因为拆分应该基于实际值而不是基于缩放值。但是,如果缩放部分如下所示:
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)在此算法中,我们将使用熵
#件分类器分类训练集
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier(criterion = 'entropy', random_state= 0)
classifier.fit(X_train, y_train)
#output:
DecisionTreeClassifier(class_weight=None, criterion='entropy',
max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False,
random_state=0,splitter='best')现在,我们将预测数据并建立模型。
#预测测试集结果
y_pred = classifier.predict(X_test)现在,我们计算混淆矩阵。
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)
array([[66, 2],
[ 8, 24]], dtype=int64)使用Entropy可视化训练和测试结果。
from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop =
X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop =
X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),
X2.ravel()]).T).reshape(X1.shape),
alpha = 0.5, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
alpha=0.5,
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Decision Tree (Training set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()将标准更改为“ Gini”后,不会更改混淆矩阵值。
这些是训练集上带有熵和Gini的树分裂分离准则。我们观察到图中有很好的分类。
结论:
决策树在分类和回归中非常有用。标准参数给出数据集的不同树拆分。
相关推荐
- 网络对时服务器(对时服务器端口)
-
对等网是指在网络中所有计算机的地位都是平等的,既是服务器也是客户机,所有计算机中安装的都是相同的单机操作系统如Windows98/XP/Vista/7等,它可以设置共享资源,但受连接数限制,一般是只允...
- 如何强制删除u盘文件(强制删除u盘内容)
-
1、电脑上下载安装安全杀毒类软件。2、使用强力卸载。3、找到U盘上需要卸载的文件,右击强力卸载可以卸载顽固型文件。4、被暂用的文件也删除不了可以退出U盘重启电脑重新开机插入U盘进行删除。5、不能删除的...
- directx官方下载win7(directx download)
-
点开始-----运行,输入dxdiag,回车后打开“DirectX诊断工具”窗口,进入“显示”选项卡,看一下是否启用了加速,没有的话,单击下面的“DirectX功能”项中的“启用”按钮,这样便打开了D...
- u盘视频无法播放怎么办(u盘上视频没办法播放)
-
解决办法:1.检查U盘存储格式是否为FAT32,如果不是,请将其格式化为FAT32; 2.检查U盘中视频文件是否损坏,如果有损坏文件,请尝试重新复制一份; 3.检查U盘中存储...
-
- 笔记本电脑无法正常启动怎么修复
-
1.可以解决。2.Windows未能启动可能是由于系统文件损坏、硬件故障或病毒感染等原因引起的。解决方法可以尝试使用Windows安全模式启动、修复启动、还原系统、重装系统等方法。3.如果以上方法都无法解决问题,可以考虑联系专业的电脑...
-
2025-11-16 04:03 off999
- 联想设置u盘为第一启动项(联想怎么设置u盘启动为第一启动项)
-
联想电脑设置u盘为第一启动项方法如下一、将电脑开机,开机瞬间按F2键进入bios设置界面二、在上面5个选项里找到boot选项,这里按键盘上左右键来移动三、这里利用键盘上下键选到USB选项,然后按F5/...
-
- 家用路由器哪个牌子最好信号最稳定
-
TP-LINK最好,信号最稳定。路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议...
-
2025-11-16 03:03 off999
- 安卓纯净版系统(安卓的纯净模式)
-
安卓系统有纯净模式的,安卓系统必须有纯净模式的,刷入纯净版系统可以去除一些预装的应用和系统自带软件,提高手机的运行速度和使用体验。但需要注意的是刷机有一定风险,请确保你已经备份好手机数据并了解安装风险...
- deepin系统怎么安装软件(deepin操作系统怎么安装软件)
-
deepin是一个基于Linux的操作系统,它默认不支持APK应用。要在deepin上安装APK应用,需要先安装一个Android模拟器,例如Anbox,然后从GooglePlayStore或其他...
-
- 下载app安装包(下载app安装包损坏)
-
1,没有刷机过的,可以在手机里面,找到系统自带的文件管理-(如图),2,点开后,可以直接看到文件分类,找到,安装包,点开,(如下图)3,即可看到手机里面的未安装APP;操作方法01如果是直接在浏览器上下载的软件,那就直接点开浏览器,然后点击...
-
2025-11-16 01:51 off999
- window7旗舰版密码忘记(win7密码忘记了怎么办旗舰版)
-
1、重启电脑按f8选择“带命令提示符的安全模式”,跳出“CommandPrompt”窗口。2、在窗口中输入“netuserasd/add”回车,再升级输入“netlocalgroupadmi...
- windows7界面(windows7界面由哪几个部分组成)
-
您好!Windows7一般有两种界面。一种为Aero界面,一种为经典界面。Aero界面还包含三个小分类:性能最佳Aero,BasicAero,对比度Aero。性能最佳Aero是Windows7最...
- wps截图快捷键(WPS截图快捷键是哪个)
-
在WPS中进行截屏,可以通过快捷键来实现。具体操作在按下“Alt+PrtSc”之后,就会将当前屏幕截图保存到剪贴板中。若需要将截图保存为图片文件,则在粘贴时选择“文件夹”而不是“粘贴”,再选定存储...
- 电脑主机自动关机是什么原因
-
原因一、软件 1.病毒破坏,自从有了计算机以后不久,计算机病毒也应运而生。当网络成为当今社会的信息大动脉后,病毒的传播更加方便,所以也时不时的干扰和破坏我们的正常工作。比较典型的就是前一段时间对...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
