决策树——基于乳腺癌数据集与cpu数据集实现
决策树——乳腺癌数据实现
4.1 训练决策树模型,并计算测试集的准确率
1. 读入数据
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
import numpy as np
import matplotlib.pyplot as plt
biopsy=datasets.load_breast_cancer() #数据集是一个字典
X=biopsy['data']
Y=biopsy['target']
X_train,X_test,Y_train,Y_test\=train_test_split(X,Y,random_state=14) #划分为训练集和测试集
#2. 决策树回归模型
clf=DecisionTreeClassifier(random_state=14)
clf.fit(X_train,Y_train)
Y_test_pred_onetree=clf.predict(X_test)
accuracy_onetree=np.mean(Y_test_pred_onetree==Y_test)*100
print("The test accuracy is {:.1f}%".format(accuracy_onetree))
#93.0%
def show_table(y_true,y_pred):from sklearn.metrics import confusion_matriximport numpy as npimport pandas as pdmatrix=confusion_matrix(y_true,y_pred)level=np.unique(y_true).tolist()Index=['True_'+str(content) for content in level]columns=['pred_'+str(content) for content in level]return(pd.DataFrame(matrix,index=Index,columns=columns))
confusion_matrix(Y_test,Y_test_pred_onetree)
The test accuracy is 93.0%array([[46, 7],[ 3, 87]], dtype=int64)
show_table(Y_test,Y_test_pred_onetree)
pred_0 | pred_1 | |
---|---|---|
True_0 | 46 | 7 |
True_1 | 3 | 87 |
4.2 Bagging算法,集成学习
Bagging(Bootstrap Aggregating)算法是一种集成学习方法,通过结合多个模型的预测结果来提高整体模型的性能和稳定性。其基本思想是通过对原始数据集进行多次有放回的随机抽样,生成多个不同的子数据集,并在每个子数据集上训练一个基模型。最终的预测结果通过对所有基模型的预测结果进行平均(回归问题)或投票(分类问题)来确定。
Bagging算法的主要步骤如下:
- 从原始数据集中有放回地随机抽样,生成多个子数据集。
- 在每个子数据集上训练一个基模型(如决策树)。
- 对新数据进行预测时,将所有基模型的预测结果进行平均或投票,得到最终的预测结果。
Bagging算法的优点包括:
- 降低模型的方差,减少过拟合。
- 提高模型的稳定性和泛化能力。
下面是一个使用Bagging算法进行分类的示例代码:
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as np
import pandas as pd# 加载数据集
data = pd.read_csv('../data/第4章数据/cpus.csv', index_col=0)
Y = data['perf']
Xnames = data.columns
X = data[Xnames[0:6]]# 确保X和Y的样本数量相同
if X.shape[0] != Y.shape[0]:raise ValueError("X和Y的样本数量不同")# 划分数据集
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, random_state=14)# 初始化Bagging分类器,基模型为决策树
bagging = BaggingClassifier(DecisionTreeClassifier(random_state=14), random_state=14)# 在训练数据上训练模型
bagging.fit(X_train, Y_train)# 在测试数据上进行预测
Y_test_pred_bagging = bagging.predict(X_test)# 计算准确率
accuracy_bagging = accuracy_score(Y_test, Y_test_pred_bagging) * 100
print("测试集准确率为 {:.1f}%".format(accuracy_bagging))
这个示例代码展示了如何使用Bagging算法结合决策树进行分类,并计算测试集的准确率。
#例4.3
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import DecisionTreeClassifier# Initialize the Bagging Classifier with a Decision Tree
bagging = BaggingClassifier(DecisionTreeClassifier(random_state=14), random_state=14)# Fit the model on the training data
bagging.fit(X_train, Y_train)# Predict on the test data
Y_test_pred_bagging = bagging.predict(X_test)# Calculate the accuracy
accuracy_bagging = np.mean(Y_test_pred_bagging == Y_test) * 100
print("The test accuracy is {:.1f}%".format(accuracy_bagging))
The test accuracy is 92.3%
show_table(Y_test, Y_test_pred_bagging)
pred_0 | pred_1 | |
---|---|---|
True_0 | 45 | 8 |
True_1 | 3 | 87 |
4.3 随机森林算法
随机森林(Random Forest)算法是一种集成学习方法,通过结合多个决策树的预测结果来提高整体模型的性能和稳定性。其基本思想是通过构建多个决策树,并将每棵树的预测结果进行平均(回归问题)或投票(分类问题),从而得到最终的预测结果。
随机森林算法的主要步骤如下:
- 数据集随机采样:从原始数据集中有放回地随机抽样,生成多个子数据集。
- 决策树训练:在每个子数据集上训练一棵决策树。每棵树在训练时只使用数据集的一个随机子集,并且在每个节点的分裂时只考虑特征的一个随机子集。
- 预测结果集成:对新数据进行预测时,将所有决策树的预测结果进行平均(回归问题)或投票(分类问题),得到最终的预测结果。
随机森林算法的优点包括:
- 降低过拟合:通过集成多个决策树,随机森林可以有效降低模型的方差,减少过拟合。
- 提高泛化能力:随机森林在处理高维数据和大数据集时表现良好,具有较强的泛化能力。
- 处理缺失值:随机森林可以处理部分缺失的数据,不需要对缺失值进行特殊处理。
- 计算特征重要性:随机森林可以计算每个特征的重要性,有助于特征选择和数据理解。
随机森林算法的缺点包括:
- 计算开销大:由于需要训练大量的决策树,随机森林的训练和预测时间较长,计算开销较大。
- 模型解释性差:由于集成了多个决策树,随机森林的模型解释性较差,不容易理解每个特征对最终预测结果的影响。
下面是一个使用随机森林算法进行分类的示例代码:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn
相关文章:
决策树——基于乳腺癌数据集与cpu数据集实现
决策树——乳腺癌数据实现 4.1 训练决策树模型,并计算测试集的准确率 1. 读入数据 from sklearn import datasets from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix …...
探索空间自相关:揭示地理数据中的隐藏模式
目录 一、什么是空间自相关? 类型 二、空间自相关的数学基础 空间加权矩阵 三、度量空间自相关的方法 1. 全局自相关 2. 局部自相关 四、空间自相关的实际应用 五、Python实现空间自相关分析 1. 数据准备 2. 计算莫兰指数 3. 局部自相关(LISA 分析&…...

echarts使用示例
柱状图折线图 折柱混合:https://echarts.apache.org/examples/zh/editor.html?cmix-line-bar option {title:{show: true},tooltip: {trigger: axis,axisPointer: {type: cross,crossStyle: {color: #999}}},toolbox: {feature: {dataView: { show: true, readOnl…...

Flink高可用配置(HA)
从Flink架构中我们可以看到,JobManager这个组件非常重要,是中心协调器,负责任务调度和资源管理。默认情况下,每个Flink集群只有一个JobManager实例。这会产生单点故障(SPOF):如果JobManager崩溃,则无法提交新程序,正在运行的程序也会失败。通过JobManager的高可用性,…...

如何编写出色的技术文档
目录 编辑 1. 明确文档目的和受众 目的的重要性 了解受众 2. 收集和组织信息 信息收集的技巧 组织信息 3. 规划文档结构 结构规划的重要性 结构规划的步骤 4. 编写内容 语言和风格 内容的组织 编写技巧 5. 审阅和测试 审阅的重要性 测试的必要性 6. 版本控…...

学习日记_20241126_聚类方法(谱聚类Spectral Clustering)
前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...

图书系统小案例
目前就实现了分页查询,修改,删除功能 这个小案例练习到了很多技能,比如前后端交互、异步请求、三层架构思想、后端连接数据库、配置文件、基础业务crud等等 感兴趣的小伙伴可以去做一个试试 准备工作 1、使用maven构建一个web工程 打开i…...
目标检测之学习路线(本科版)
以下是为一名计算机科学与技术本科大四学生整理的“目标检测”学习路线,结合了从基础到高级的内容,适合初学者逐步深入。每个阶段都有明确的学习要求、学习建议和资源推荐。 阶段一:基础知识学习 学习要求: 掌握编程语言 Pytho…...

C#调用C++ DLL方法之C++/CLI(托管C++)
托管C与C/CLI前世今生 C/CLI (C/Common Language Infrastructure) 是一种用于编写托管代码的语言扩展,它是为了与 .NET Framework 进行互操作而设计的。C/CLI 是 C 的一种方言,它引入了一些新的语法和关键字,以便更好地支持 .NET 类型和垃圾…...
免费搭建一个属于自己的个性化博客(Hexo+Fluid+Github)
文章目录 0.简介1. 下载安装fluid主题2. 创建文章3. 添加分类及标签3.1 创建“分类”选项3.2 创建“标签”选项4. 文章中插入图片5. 添加阅读量统计6. 添加评论功能7. 显示文章更新时间8. 为hexo添加latex支持小结参考文献0.简介 通过HEXO模板和Fluid主题搭建自己的博客,预览…...

vue3 开发利器——unplugin-auto-import
这玩意儿是干啥的? 还记得 Vue 3 的组合式 API 语法吗?如果有印象,那你肯定对以下代码有着刻入 DNA 般的熟悉: 刚开始写觉得没什么,但是后来渐渐发现,这玩意儿几乎每个页面都有啊! 每次都要写…...
开发需求总结19-vue 根据后端返回一年的数据,过滤出符合条件数据
需求描述: 定义时间分界点:每月26号8点,过了26号8点则过滤出data数组中符合条件数据下个月的数据,否则过滤出当月数据 1.假如现在是2024年11月14日,那么过滤出data数组中日期都是2024-11月的数据; 2.假如…...

人工智能如何改变创新和创造力?
王琼工作室 输出的力量 有了GPT这样的人工智能平台,创新和创造力的机会在哪里? 我们是否有信心: 面对效率,超越效率。 把问题拓展为机会? 把机会拓展为价值? 让智能更好地和我们协作,走心、走…...
Github 基本使用学习笔记
1. 基本概念 1.1 一些名词 Repository(仓库) 用来存放代码,每个项目都有一个独立的仓库。 Star(收藏) 收藏你喜欢的项目,方便以后查看。 Fork(克隆复制项目) 复制别人的仓库&…...
群论入门笔记
群的基本定义 群由一组元素 G 和一个运算(常用符号包括 ,x , 或 ∗)组成。 封闭性 对于任意两个元素 x,y∈G,运算 x * y 的结果仍然属于集合 G,即: ∀x,y∈G,x∗y∈G. 结合律 对于任意 a,b,c∈G&…...

2024最新python使用yt-dlp
2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1)google浏览器下载Get cookies.txt LOCALLY插件2)导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1)使用Pycharm(2024.3)进行代码…...

Python + 深度学习从 0 到 1(00 / 99)
希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ 什么是深度学习? 人工智能、机器学习与…...

单点登录深入详解之设计方案总结
基于cookie的单点登录解决方案 概述 用户登录之后 , 将认证信息存储至 Cookie ,当再次访问本服务或者访问其他应用服务时,直接从 Cookie 中传递认证信息,进行鉴权处理。 问题 1. 如何保障Cookie内用户认证信息的安全性? 第一, Cookie…...
Loadsh源码分析-forEach,eachRight,map,flatMap,flatMapDeep,flatMapDepth
处理数组array的函数已经学习完,接下来是collection相关的函数, collection指的是一组用于处理集合(如数组或对象)的工具函数。 lodash源码研读之forEach,forEachRight,map,flatMap,flatMapDeep,flatMapDepth 一、源码地址 GitH…...
检测到“runtimelibrary”的不匹配项: 值“mtd_staticdebug”不匹配值“mdd_dynamic”
1. 解释“runtimelibrary”不匹配错误的含义 在Visual Studio中,LNK2038错误表示链接器检测到项目与其依赖的库之间存在“Runtime Library”(运行时库)的不匹配。具体来说,这意味着编译项目时使用的运行时库类型与编译依赖库时使…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...