Python机器学习sklearn模块——决策树
off999 2024-10-10 07:49 36 浏览 0 评论
决策树可以用来解决分类与回归问题,是一种非线性模型;一课决策树一般包含一个根节点、若干个内部节点和若干个叶节点;生产决策树最关键的是如何选择最优划分属性,我们希望分支节点所包含的样本近可能的属于同一类别,即结点的“纯度”越来越高;而评估样本集合纯度的常用指标有信息增益、增益率和基尼指数;
决策树容易出现过拟合状况,因为它们可以通过精确的描述每个训练样本的 特征而构建出复杂的决策树,从而忽略了一般性的真实关联关系;可以通过减枝来消除过拟合;决策树剪枝的基本策略有“预剪枝”和“后剪枝”,预剪枝是在决策树生成的过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是从训练集中先生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换成叶结点能带来决策树泛化性能提升,则将该子树替换成叶结点;
分类
DecisionTreeClassifier能够实现多类别的分类,一个是向量x,大小为[n_samples,n_features]([样本量,属性量]),用来记录训练样本;一个是向量y,大小为[n_samples],值为interger类型,用来记录训练样本的类标签:
from sklearn.datasets import load_iris from sklearn import tree iris = load_iris() #iris.data存储的是属性值,iris.target存储的是类标签 dts = tree.DecisionTreeClassifier() dts = dts.fit(iris.data, iris.target)
这里已经训练好了一课决策树,可以安装graphviz来展现:
import graphviz dot_data = tree.export_graphviz(dts, out_file=None, feature_names = iris.feature_names, class_names = iris.target_names, filled=True) graph = graphviz.Source(dot_data) graph
训练好决策树后就可以来预测测试样本的类标签了:
dts.predict(iris.data[:1, :]) dts.predict_proba(iris.data[:1,:]) 预测结果:array([0]) 预测每个类的可能性:array([[ 1., 0., 0.]])
回归
DecisionTreeRegressor用来解决回归问题,这里的输入参数中Y向量中的值float类型:
import numpy as npfrom sklearn.tree import DecisionTreeRegressor import matplotlib.pyplot as plt #生成一个随机的数据集 rng = np.random.RandomState(1) x = np.sort(5 * rng.rand(80, 1), axis=0) y = np.sin(x).ravel() y[::5] += 3 *(0.5 - rng.rand(16)) #训练模型 regr_1 = DecisionTreeRegressor(max_depth=2) regr_2 = DecisionTreeRegressor(max_depth=5) regr_1.fit(x, y) regr_2.fit(x, y) #预测 x_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis] y_1 = regr_1.predict(x_test) y_2 = regr_2.predict(x_test)
展示结果:
plt.figure()
plt.scatter(x, y, s=20, edgecolor="black", c="darkorange", label="data")
plt.plot(x_test, y_1, color="blue",label="max_depth=2", linewidth=2)
plt.plot(x_test, y_2, color="green", label="max_depth=5", linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decition Tree Regressor")
plt.legend()
plt.show()
相关推荐
- app下载官网(欧歌影视app下载官网)
-
需要先进入佳能官网的下载页面,选择手机APP下载选项,根据手机操作系统的不同选择相应的下载链接即可成功下载佳能手机APP。下载链接通常会在网站的首页或者是产品页面上提供。总的来说,下载佳能手机APP非...
- 互盾手机数据恢复软件下载(互盾数据恢复软件可以免费使用一次吗)
-
要的。手机如果可以连电脑当做u盘识别就可以用恢复软件。比如用安易。至于能不能出现盘符,可以网上查一下你这个手机型号可不可以,或者问问手机售后。1、安装互盾安卓恢复大师,运行软件后,将手机连接到电脑上...
- 电脑wifi突然变成红叉搜不到
-
1、WiFi功能未开启:很多时候出现WiFi红色叉叉图标,可能就是无线WiFi的开关或者按键没有开启导致的。一般的笔记本键盘上面都有一个F5开启WiFi的功能,有的需要结合Fn功能键一起按。每个品牌的...
- 正版win10系统一键重装官网(一键装机win10正版系统)
-
1、下载小白一键重装软件,打开软件后选择我们要安装的系统。?2、接着小白给出我们一些常用的电脑软件,大家可根据自己需要进行下载。?3、然后就是我们就耐心的等待系统镜像的下载吧。?4、部署环境完成后我们...
- windows8系统自己怎么装(如何安装windows 8)
-
要在线安装Windows8系统,您可以按照以下步骤操作:1.准备安装媒体:在您的计算机上打开一个现代的网络浏览器(如Chrome、Firefox或Edge),然后前往Microsoft...
- win10登录选项没有密码设置(win10没有登陆密码框)
-
是该电脑没设置密码,所以登录时看不到密码选项。电脑开机后,要设置密码,设置完成后,重新启动电脑,就会出现密码登录框,输入密码并正确后,电脑才能正常进入系统。1、首先进入安全模式;进入安全模式教程:2、...
- 小白刷机官网(小白刷机助手)
-
平板的话,和处理器有关,如果处理器只支持win8是不能刷win10的。
- windows关闭端口命令(windows 关端口)
-
1、点击控制面板。2、进入控制面板,然后点击系统和安全。3、进入系统和安全,点击Windows防火墙。4、进入Windows防火墙,点击左侧的高级设置。5、进入防火墙高级设置,点击入站规则。6、点击入...
- 无线wifi路由器怎么安装(请问无线路由器怎么安装)
-
安装的方法/步骤:1、怎么安装无线路由器呢?首先把网线的其中一头插入进光猫里面。2、接着用网线的另一头插入进无线路由器的蓝色接口处,这样就安装好无线路由器啦。3、点击打开电脑浏览器,输入路由器设置地址...
- fat32格式化精灵(格式化fat32格式工具)
-
内存卡格式化一般有两种方式:第一种是直接将内存卡插入手机的卡托,然后进入设置——运行及内存管理,点击格式化SD卡即可完成。当然有一些手机是不支持外置的内存卡插入,这就需要用OTG线插入手机,点击手机的...
- 外置光驱安装win7系统(外置光驱安装操作系统)
-
苹果电脑、电源适配器丶光盘装系统(电脑有光驱、或者外接光驱)光盘安装准备:win764位纯净版安装盘,如果使用的苹果电脑有光驱,优先使用自带光驱安装;如电脑没有光驱,可以是用外接USB光驱安装。光盘...
- win7x86是32位还是64位
-
32位win7x86是32位操作系统,win7x64是64位操作系统。扩展资料Windows7,中文名称视窗7,是由微软公司(Microsoft)开发的操作系统,内核版本号为WindowsNT...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- 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)
