【ML练习】决策树

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

一、决策树算法概述

在这里插入图片描述

二、代码实现

代码目标:我们希望通过鸢尾花数据,训练一个决策树模型,之后应用该模型,可以根据鸢尾花的四个特征去预测它的类别。

1. 分类树实现

import pandas as pd
import numpy as npurl = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"  
names = ['花萼-length', '花萼-width', '花瓣-length', '花瓣-width', 'class'] dataset = pd.read_csv(url, names=names)
dataset

输出:

在这里插入图片描述

X = dataset.iloc[ : ,[0,1,2,3]].values
Y = dataset.iloc[ : ,  4].values
from sklearn import tree
from sklearn.datasets import load_irisclf = tree.DecisionTreeClassifier()  # sk-learn的决策树模型
clf = clf.fit(X, Y)                  # 用数据训练树模型构建()
r   = tree.export_text(clf)
print(r)

输出:

在这里插入图片描述

text_x = X[[0,1,50,51,100,101], :]
pred_target_prob = clf.predict_proba(text_x)        # 预测类别概率
pred_target = clf.predict(text_x)              # 预测类别
print("\n===模型======")
print(r)
print("\n===测试数据:=====")
print(text_x)
print("\n===预测所属类别概率:=====")
print(pred_target_prob)
print("\n===预测所属类别:======")
print(pred_target)

输出:
在这里插入图片描述

2. 回归树实现

import pandas as pd
import numpy as npurl = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"  
names = ['花萼-length', '花萼-width', '花瓣-length', '花瓣-width', 'class'] dataset = pd.read_csv(url, names=names)
dataset

输出:
在这里插入图片描述

X = dataset.iloc[ : ,[0,1,2]].values
Y = dataset.iloc[ : ,  3].values
from sklearn import tree
from sklearn.datasets import load_irisclf = tree.DecisionTreeRegressor()         # sk-learn的决策树模型
clf = clf.fit(X, Y)        # 用数据训练树模型构建()
r   = tree.export_text(clf)
test_x = X[[0,1,50,51,100,101], :]
test_y = Y[[0,1,50,51,100,101]]
pred_target = clf.predict(test_x)  # 预测ydf = pd.DataFrame()
df["原y"] = test_y
df["预测y"] = pred_target
print("\n===模型======")
# print(r)
print("\n===预测结果======")
print(df)

输出:
在这里插入图片描述

三、总结

在使用决策树时,首先需确认分类及预测的对象,另外在处理缺失值时,也需注意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 CAN外设(基于STMF103C8T6)

STM32内置bxCAN外设(CAN控制器),支持CAN2.0A和2.0B,可以自动发送CAN报文和按照过滤器自动接收指定CAN报文,程序只需处理报文数据而无需关注总线的电平细节 波特率最高可达1兆位/秒3个可配置优先级的发送邮箱2个3级深度的接…

Java后端开发(十五)-- Ubuntu 开启activemq开机自启动功能

目录 1. 修改Wrapper.conf文件配置内容 2. 在/etc/systemd/system目录下创建activemq.service文件 3. 重启服务器,验证是否生效 4. 系统启动目标问题 操作环境: 1、Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-28-generic x86_64) 2、jdk17.0.11 3、apache-activemq-6.0.1 1. 修…

学习测试10-1自动化 python基础

下载python 要配置环境变量 进入Python的官方下载页面 http://www.python.org/download/安装PyCharm工具,网上可以下载,很多资源,也有免安装的版本,在网上找激活码 链接: https://pan.baidu.com/s/1Y6S_n3KbnjOdE9EDZ5nixw?pwdd…

一种全局数据变化而且是多个的通知实现

有个需求: 从activityA,打开activityB, activityC 或者还存在viewpager上的其他Fragment。甚至activityB,又打开了activityBA。 在这些界面上,大家都有相同的数据Bean(name, info, isFavourite)去展示成卡片列表。 这种情况下&…

社会科学研究

《社会科学研究》是四川省社会科学院主管主办,国内外公开发行的综合性人文社会科学学术理论刊物,于1979年3月创刊,主要刊登经济学、政治学、法学、社会学、哲学、历史学、文学、新兴交叉等学科的研究论文,是我国人文社科界向海内外…

CentOS 7 yum官方源失效

问题 2024年7月,官方对centos 7停止了维护,yum的源网址mirror.centos.org也已经无法访问。 在此情况下,无法正常使用yum进行安装和更新工具。 在尝试了更换阿里源之后,仍然有部分工具库无法访问。 通用解决方案 1. 打开/etc/y…

AWS Certified Developer Associate备考笔记

AWS Certified Developer Associate备考笔记 缓慢更新中,如果你也正在关注该考试,请点赞后评论感兴趣的章节,可加快我的更新速度 😃 文章目录 AWS Certified Developer Associate备考笔记一、IAM二、EC2三、EC2 Instance Storage…

CAPL语言设计(3)——流程控制

CAPL语言设计(3)——流程控制 if条件语句if一般格式if与else格式 switch语句while循环语句while循环的一般形式为:do-while循环 for循环语句break语句return语句 if条件语句 CAPL中的if语句有以下两种形式 if一般格式 if (表达式) 语句;例…

【WordPress插件】Media folder汉化版-媒体文件夹-v5.1.2

WP媒体文件夹(WP Media folder)是一个真正的节省图片加载时间的插件,你可以管理文件和图片,从本地WordPress媒体管理器。该插件还包括一个增强版的WordPress图库管理器,主题 NextGEN图库导入器。 【WordPress插件】Media folder汉化版-媒…

Jetson-AGX-Xavier gstreamer UDP推拉流

Jetson-AGX-Xavier gstreamer UDP推拉流 安装nvidia-jetpack 使用硬件编解码 sudo apt-get install nvidia-jetpackgstreamer UDP 推流 gst-launch-1.0 v4l2src device"/dev/video4" ! video/x-raw, format(string)UYVY, width(int)1920, height(int)1080 ! nvvid…

C++的STL简介

0.STL简介 C的STL(Standard Template Library,标准模板库)是C标准库的一部分,它提供了一套通用的类和函数模板,用于处理数据结构和算法。STL的主要组件包括: 容器分配器算法迭代器适配器仿函数 容器 容…

数据库系统概论:事务与并发一致性问题

随着网络应用的普及,数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面,旨在提高系统的吞吐量和响应时间,以满足多用户同时访问数据库的需求。然而,这…

JAVA IO中的缓冲流,PrintStream类和PrintWriter以及System.in获取用户输入流详解

1.缓冲流 在java中,缓x冲流(Buffered Streams)是非常有用的,它们属于处理流的一种,用于提高原始数据流(如文件流,网络流)的读取和写入效率。 Java 的缓冲流是对字节流和字符流的一种…

白骑士的PyCharm教学基础篇 1.1 PyCharm简介

系列目录 上一篇:无内容 什么是PyCharm? PyCharm 是由 JetBrains 开发的一款集成开发环境(IDE),专为 Python 编程语言设计。它提供了强大的代码编辑、调试、测试和部署功能,使得 Python 开发更加高效和便…

Linux NFS服务搭建及使用

一、NFS 服务器介绍 nfs ( Network File System )即网络文件系统,其基于 UDP/IP使用 nfs 能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其它计算机中的文件就像在访问自己的计算机一样。 二、NFS 服务器的特点 …

阿里云服务器 篇四:404页面模板

文章目录 系列文章tsParticles 404 Templates安装方法效果展示更多系列文章 阿里云服务器 篇一:申请和初始化 阿里云服务器 篇二:搭建静态网站 阿里云服务器 篇三:提交搜索引擎收录 阿里云服务器 篇四:404页面模板 tsParticles 404 Templates 官网:https://github.com/…

Websocket自动消息回复服务端工具

点击下载《Websocket自动消息回复服务端工具》 1. 前言 在进行Websocket开发时,前端小伙伴通常是和后端开发人员同步进行项目开发,经常会遇到后端开发人员接口还没开发完,也没有可以调试的环境,只能按照接口文档进行“脑回路开发…

【源码阅读】osproxy对象存储分布式代理(2)--初始化底层服务和日志器

文章目录 初始化底层服务函数返回类型APPRedis newLangGoConfig()函数initLangGoConfig()函数 初始化日志器 上一章【源码阅读】osproxy对象存储分布式代理(1)下一章 这部分涉及了对于底层服务的初始化和日志器的初始化两部分 // 初始化底层服务&#x…

d3d12.dll 文件缺失如何解决?五种修复丢失问题的方法

d3d12.dll 文件缺失如何解决?它为什么会不见呢?今天,我们将探讨 d3d12.dll 文件的重要性、原因以及丢失时的解决策略。本文将全面介绍 d3d12.dll 文件,并提供五种修复丢失问题的方法。 d3d12.dll文件是什么的详细介绍 d3d12.dll …

6 回归集成:xgb、lgb、cat

这个代码是从kaggle上拷贝过来的: 如何使用三个树模型模块化训练;文本特征如何做,如何挖掘;时间特征的处理;模型权重集成; import pandas as pd import math import numpy as np import joblib import…