python:sklearn 决策树(Decision Tree)

5. 决策树(Decision Tree) - 第5章

算法思想:基于信息增益(ID3)或基尼不纯度(CART)递归划分特征。

编写 test_dtree_1.py  如下

# -*- coding: utf-8 -*-
""" 5. 决策树(Decision Tree) """
from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split# 加载 乳腺癌数据
data = load_breast_cancer()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)model = DecisionTreeClassifier(criterion='entropy', max_depth=3)
model.fit(X_train, y_train)
print("Accuracy:", model.score(X_test, y_test))

Anaconda 3
运行 python test_dtree_1.py 
 Accuracy: 0.9736842105263158


编写  test_dtree_2.py  如下

# -*- coding: utf-8 -*-
""" 5. 决策树(Decision Tree) """
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import preprocessing
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix,accuracy_score
from sklearn.tree import plot_tree# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
f_names = iris.feature_names
t_names = iris.target_names# 数据预处理:按列归一化
X = preprocessing.scale(X)
# 切分数据集:测试集 20%
X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 初始化 决策树 分类模型
dtc = DecisionTreeClassifier()
# 模型训练
dtc.fit(X_train,y_train)
# 模型预测
y_pred = dtc.predict(X_test)
# 模型评估
# 混淆矩阵
#print(confusion_matrix(y_test,y_pred))
print("准确率: %.4f" % accuracy_score(y_test,y_pred))# 可视化决策树
plt.figure(figsize=(12,10))
plot_tree(dtc, feature_names=f_names, class_names=t_names, filled=True)
plt.show()

 运行 python test_dtree_2.py 

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

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

相关文章

【2-sat】2-sat算法内容及真题

A.2-sat简介 2-sat算法可以求解给定推出关系下的一种合法情况。题目中重常常,给定一些布尔变量A、B、C、D…,再给出一系列形如 B ⟶ A , C ⟶ D B \longrightarrow A , C \longrightarrow \neg D B⟶A,C⟶D的推出关系,询问使得所有推出关系…

【git】获取特定分支和所有分支

1 特定分支 1.1 克隆指定分支&#xff08;默认只下载该分支&#xff09; git clone -b <分支名> --single-branch <仓库URL> 示例&#xff08;克隆 某一个 分支&#xff09;&#xff1a; git clone -b xxxxxx --single-branch xxxxxxx -b &#xff1a;指定分支…

LWIP带freeRTOS系统移植笔记

以正点原子学习视频为基础的文章 LWIP带freeRTOS系统移植 准备资料/工程 1、lwIP例程1 lwIP裸机移植 工程 &#xff0c; 作为基础工程 改名为LWIP_freeRTOS_yizhi工程 2、lwIP例程6 lwIP_FreeRTOS移植 工程 3、freeRTO源码 打开https://www.freertos.org/网址下载…

组网技术知识点

1.port-isloate enable命令用于实现两个接口之间的二层数据隔离&#xff0c;三层数据互通。 2.交换机最多支持4096个VLAN&#xff0c;编号为1-4094 3.display bfd session all&#xff1a;查看BFD会话状态是否UP 4.RJ45通过双绞线连接以太网&#xff1b; AUI端口&#xff1…

Linux系统:进程程序替换以及相关exec接口

本节重点 理解进程替换的相关概念与原理掌握相关程序替换接口程序替换与进程创建的区别程序替换的注意事项 一、概念与原理 进程程序替换是操作系统中实现多任务和资源复用的关键机制&#xff0c;允许进程在运行时动态加载并执行新程序。 1.1 定义 进程程序替换是指用新程…

从此,K8S入门0门槛!

前言 当你想要入门K8S的时候&#xff0c;往往会被各种概念搞的晕乎乎的&#xff0c;什么API Server&#xff0c;Scheduler&#xff0c;Controller manager&#xff0c;Etcd&#xff0c;Pod&#xff0c;Kubelet&#xff0c;kube-proxy&#xff0c;deployment…… 哪怕你使用了…

[Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)

在 Python 开发领域,PyCharm 一直是广受欢迎的 IDE,但其远程开发功能(如远程 SSH 调试)仅在付费版中提供。为了适应服务器部署需求,很多开发者开始将目光转向更加轻量、灵活且免费扩展能力强的 VSCode。本篇文章将详细介绍,从 PyCharm 转向 VSCode 后,如何高效搭建和管理…

处方流转平台权限控制模块设计(基于RBAC模型)

这是基于笔者的一些经验设计并加以完善的方案&#xff0c;仅供参考。 处方流转平台权限控制模块设计&#xff08;基于RBAC模型&#xff09; 1. 需求分析 处方流转平台需要严格的权限控制&#xff0c;确保&#xff1a; 患者隐私数据保护处方开具、审核、调配、发药等流程的合…

基于BM1684X+RK3588的智能工业视觉边缘计算盒子解决方案

智能工业视觉边缘计算终端技术方案书‌ ‌1. 产品概述‌ 1.1 产品定位 面向工业自动化场景的高性能AI视觉处理设备集成BM1684X&#xff08;8TOPS INT8&#xff09;AI加速芯片 RK3588&#xff08;6TOPS NPU&#xff09;异构计算支持工业级多相机接入、实时缺陷检测、高精度定…

软件工程中的 QFD

: 软件工程中的 QFD 在软件工程领域,随着市场竞争的加剧和用户需求的日益复杂,如何有效地将用户需求转化为软件产品,成为软件开发团队面临的重要挑战。而质量功能部署(Quality Function Deployment,QFD)作为一种强大的工具,为这一问题提供了有效的解决方案。 一、QF…

Vue2基础速成

一、准备工作 首先下载vue2的JavaScript库&#xff0c;并且命名为vue.min.js 下载链接&#xff1a;https://cdn.jsdelivr.net/npm/vue2&#xff08;若链接失效可去vue官网寻找&#xff09; CTRLS即可下载保存 文件目录结构 二、使用操作原生DOM与使用VUE操作DOM的便捷性比较…

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(14):かもしれません (~た・~ない)ほうがいいです

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;1&#xff14;&#xff09;&#xff1a;かもしれません &&#xff08;&#xff5e;た・&#xff5e;ない&#xff09;ほうがいいです 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师…

传统银行服务和 区块链支付无缝融合的一种解决方案

Dragonfly Capital 的合伙人 Alex Pack 曾表示:“DeFi 的目标是重构全球银行体系,并打造开放且无须许可的经营环境。”在 DeFi 的金融世界中,加密资产架构在区块链上,通过各个协议实现资产之间的高效转移和价值的实时流通,如 Metamask 钱包的自托管,Uniswap 的资产交易,…

基于深度学习的毒蘑菇检测

文章目录 任务介绍数据概览数据处理数据读取与拼接字符数据转化标签数据映射数据集划分数据标准化 模型构建与训练模型构建数据批处理模型训练 文件提交结果附录 任务介绍 本次任务为毒蘑菇的二元分类&#xff0c;任务本身并不复杂&#xff0c;适合初学者&#xff0c;主要亮点…

时间给了我们什么?

时间给了我们什么&#xff1f; ​春秋易逝&#xff0c;青春难留&#xff0c;转瞬之间已过半百。 ​过往中&#xff0c;有得有失&#xff0c;这就是人生。 ​一日三餐四季&#xff0c;日起日落里&#xff0c;成就了昨天、今天和明天&#xff0c;在历史长河中&#xff0c;皆是…

软件工程国考

软件工程-同等学力计算机综合真题及答案 &#xff08;2004-2014、2017-2024&#xff09; 2004 年软工 第三部分 软件工程 &#xff08;共 30 分&#xff09; 一、单项选择题&#xff08;每小题 1 分&#xff0c;共 5 分&#xff09; 软件可用性是指&#xff08; &#xff09…

数据结构*栈

栈 什么是栈 这里的栈与我们之前常说的栈是不同的。之前我们说的栈是内存栈&#xff0c;它是JVM内存的一部分&#xff0c;用于存储局部变量、方法调用信息等。每个线程都有自己独立的栈空间&#xff0c;当线程启动时&#xff0c;栈就会被创建&#xff1b;线程结束&#xff0c…

IntelliJ IDEA 保姆级使用教程

文章目录 一、创建项目二、创建模块三、创建包四、创建类五、编写代码六、运行代码注意 七、IDEA 常见设置1、主题2、字体3、背景色 八、IDEA 常用快捷键九、IDEA 常见操作9.1、类操作9.1.1、删除类文件9.1.2、修改类名称注意 9.2、模块操作9.2.1、修改模块名快速查看 9.2.2、导…

HTTP 快速解析

一、HTTP请求结构 HTTP请求和响应报文由以下部分组成&#xff08;以请求报文为例&#xff09;&#xff1a; 请求报文结构&#xff1a; 请求行&#xff1a;包含HTTP方法&#xff08;如GET/POST&#xff09;、请求URL和协议版本&#xff08;如HTTP/1.1&#xff0c;HTTP/2.0&…

【AI学习】李宏毅新课《DeepSeek-R1 这类大语言模型是如何进行「深度思考」(Reasoning)的?》的部分纪要

针对推理模型&#xff0c;主要讲了四种方法&#xff0c;两种不需要训练模型&#xff0c;两种需要。 对于reason和inference&#xff0c;这两个词有不同的含义&#xff01; 推理时计算不是新鲜事&#xff0c;AlphaGo就是如此。 这张图片说明了将训练和推理时计算综合考虑的关系&…