机器学习8:在病马数据集上进行算法比较(ROC曲线与AUC)

ROC曲线与AUC。使用不同的迭代次数(基模型数量)进行 Adaboost 模型训练,并记录每个模型的真阳性率和假阳性率,并绘制每个模型对应的 ROC 曲线,比较模型性能,输出 AUC 值最高的模型的迭代次数和 ROC 曲线。

使用Python的scikit-learn库来训练Adaboost模型,并记录每个模型的真阳性率和假阳性率,并绘制每个模型对应的ROC曲线。然后比较模型性能,并输出AUC值最高的模型的迭代次数和ROC曲线。

 下面是一个示例代码,用于在病马数据集上进行Adaboost模型的训练、绘制ROC曲线和计算AUC值:

如果你的是csv文件

import numpy as np
import pandas as pd
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

# 加载数据集,这里假设数据已经存储在名为data的DataFrame中
# 请根据实际情况修改加载数据集的代码
data = pd.read_csv('your_dataset.csv')

# 假设数据集中最后一列为标签,其余列为特征
X = data.iloc[:, :-1]
y = data.iloc[:, -1]

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化基模型数量列表和对应的AUC值列表
n_estimators_list = [50, 100, 150, 200]
auc_list = []

# 训练Adaboost模型,并计算每个模型的AUC值
for n_estimators in n_estimators_list:
    ada_model = AdaBoostClassifier(n_estimators=n_estimators, random_state=42)
    ada_model.fit(X_train, y_train)
    y_score = ada_model.decision_function(X_test)
    fpr, tpr, thresholds = roc_curve(y_test, y_score)
    roc_auc = auc(fpr, tpr)
    auc_list.append(roc_auc)
    
    # 绘制ROC曲线
    plt.plot(fpr, tpr, label='n_estimators = %d, AUC = %0.2f' % (n_estimators, roc_auc))

# 找到AUC值最高的模型的迭代次数
best_n_estimators = n_estimators_list[np.argmax(auc_list)]

# 设置图形参数
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve for Adaboost Model')
plt.legend(loc='lower right')
plt.show()

# 输出AUC值最高的模型的迭代次数和ROC曲线
print("AUC值最高的模型的迭代次数:", best_n_estimators)

在病马数据集上进行算法比较(ROC曲线与AUC)

  1. 使用不同的迭代次数(基模型数量)进行 Adaboost 模型训练,并记录每个模型的真阳性率和假阳性率,并绘制每个模型对应的 ROC 曲线,比较模型性能,输出 AUC 值最高的模型的迭代次数和 ROC 曲线。
  2. 计算不同基模型数量下的AUC值,画出“分类器个数-AUC”关系图
  3. 讨论:随着弱分类器个数的增加,AUC的值会如何变化?为什么?如果AUC值随着弱分类器的增加而增加,是否表示弱分类器个数越多越好呢?
  4. 我们能否根据AUC的曲线图找到最优的弱分类器个数?怎么找?

数据集是horseColicTest.txt和horseColicTraining.txt,不是csv文件

使用不同的迭代次数(基模型数量)进行 Adaboost 模型训练,并记录每个模型的真阳性率和假阳性率,并绘制每个模型对应的 ROC 曲线,比较模型性能,输出 AUC 值最高的模型的迭代次数和 ROC 曲线。

import numpy as np
import pandas as pd
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

# 加载训练集和测试集
train_data = pd.read_csv('horseColicTraining.txt', delimiter='\t', header=None)
test_data = pd.read_csv('horseColicTest.txt', delimiter='\t', header=None)

# 假设数据集中最后一列为标签,其余列为特征
X_train = train_data.iloc[:, :-1]
y_train = train_data.iloc[:, -1]
X_test = test_data.iloc[:, :-1]
y_test = test_data.iloc[:, -1]

# 初始化基模型数量列表和对应的AUC值列表
n_estimators_list = [50, 100, 150, 200]
auc_list = []

# 训练Adaboost模型,并计算每个模型的AUC值
for n_estimators in n_estimators_list:
    ada_model = AdaBoostClassifier(n_estimators=n_estimators, random_state=42)
    ada_model.fit(X_train, y_train)
    y_score = ada_model.decision_function(X_test)
    fpr, tpr, thresholds = roc_curve(y_test, y_score)
    roc_auc = auc(fpr, tpr)
    auc_list.append(roc_auc)

    # 绘制ROC曲线
    plt.plot(fpr, tpr, label='n_estimators = %d, AUC = %0.2f' % (n_estimators, roc_auc))

# 找到AUC值最高的模型的迭代次数
best_n_estimators = n_estimators_list[np.argmax(auc_list)]

# 设置图形参数
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('ROC Curve for Adaboost Model')
plt.legend(loc='lower right')
plt.show()

# 输出AUC值最高的模型的迭代次数和ROC曲线
print("AUC值最高的模型的迭代次数:", best_n_estimators)

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣1038. 从二叉搜索树到更大和树(java,树的中序遍历解法)

Problem: 1038. 从二叉搜索树到更大和树 文章目录 题目描述思路解题方法复杂度Code 题目描述 给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下, 二叉搜索树 满足下列约束条件&#xff…

ssh远程连接不了虚拟机ubuntu

直奔主题 1. 确保linux安装了ssh2.查看网络适配器是否启用3.连接成功 1. 确保linux安装了ssh sudo apt-get install openssh-server2.查看网络适配器是否启用 3.连接成功

高德地图点击搜索触发输入提示

减少调用次数&#xff0c;不用每输入一次调用一次&#xff0c;输入完后再触发搜索 效果图&#xff1a; ![Alt](https://img-home.csdnimg.cn/images/20220524100510.png dom结构 <div class"seach"><van-searchshow-actionv-model"addressVal"…

CentOS用nginx搭建文件下载服务器

Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器&#xff0c;而且支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动。在工作中&#xff0c;我们经常会用到需要搭建文件服务器的情况&#xff0c;这里就以在linux下搭…

debian 12 配置

1. 修改apt源 修改apt源为http版本 # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware # deb-src http://mirrors.tuna.tsinghua.edu.cn/d…

【SA8295P 源码分析】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算

【SA8295P 源码分析】132 - GMSL2 协议分析 之 GPIO/SPI/I2C/UART 等通迅控制协议带宽消耗计算 一、GPIO 透传带宽消耗计算二、SPI 通迅带宽消耗计算三、I2C 通迅带宽消耗计算四、UART 通迅带宽消耗计算系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》 本文链接…

【经验之谈·高频PCB电路设计常见的66个问题】

文章目录 1、如何选择PCB 板材&#xff1f;2、如何避免高频干扰&#xff1f;3、在高速设计中&#xff0c;如何解决信号的完整性问题&#xff1f;4、差分布线方式是如何实现的&#xff1f;5、对于只有一个输出端的时钟信号线&#xff0c;如何实现差分布线&#xff1f;6、接收端差…

安装向量数据库milvus及其Attu

前置条件安装docker compose 在宿主机上创建文件目录 mkdir -p /home/sunyuhua/milvus/db mkdir -p /home/sunyuhua/milvus/conf mkdir -p /home/sunyuhua/milvus/etcd下载docker-compose.yml wget https://github.com/milvus-io/milvus/releases/download/v2.2.11/milvus-s…

www.testfire.nets渗透测试报告

www.testfire.nets渗透测试报告 一、测试综述 1.1.测试⽬的 通过实施针对性的渗透测试&#xff0c;发现testfire.net⽹站的安全漏洞&#xff0c;锻炼自己的渗透水平 1.2.测试范围 域名&#xff1a;www.testfire.net IP:65.61.137.117 测试时间&#xff1a; 2023年11月…

代码随想录算法训练营第23期day52|300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

目录 一、300.最长递增子序列 二、674. 最长连续递增序列 三、718. 最长重复子数组 一、300.最长递增子序列 力扣题目链接 子序列是可以在不改变原有次序的情况下删除一些元素&#xff0c;需要进行二重遍历进行判断 class Solution { public:int lengthOfLIS(vector<in…

vue3的两个提示[Vue warn]: 关于组件渲染和函数外部使用

1. [Vue warn]: inject() can only be used inside setup() or functional components. 这个消息是提示我们&#xff0c;需要将引入的方法作为一个变量使用。以vue-store为例&#xff0c;如果我们按照如下的方式使用&#xff1a; import UseUserStore from ../../store/module…

平民如何体验一把大模型知识库

背景 随着openai发布的chatgpt,各界掀起大模型热. 微软、谷歌、百度、阿里等大厂纷纷拥抱人工智能, 表示人工智能将是下一个风口.确实, chatgpt的表现确实出乎大部分的意料之外,网上也不断流传出来,chatgpt未来会替换很多白领.作为一名普通的程序员,觉得非常有必要随波逐流一下…

2023/11/21JAVAweb学习

优先级高低id > 类 > 元素 格式化ctrl alt L

[羊城杯2020]easyphp .htaccess的利用

[CTF].htaccess的使用技巧总结 例题讲解 掌握知识&#xff1a; 测试发现是阿帕奇服务器&#xff0c;就想到上传文件利用.htaccess配置文件执行jpg文件中的php代码&#xff0c;但是再进行第二次文件写入时会把之前的文件删除掉&#xff0c;所以不能上传两次来利用&#xff0c…

VS搭建QT环境失败1

在VS中做一个简单QT控制台程序; 包含目录已经添加如下图;可以找到QCoreApplication头文件;可以找到QCoreApplication类,把鼠标放上去会有提示;但是由QCoreApplication类生成对象会出错;app这个变量提示出错; 同时显示200多个错误;这是VS2015; 看一下我的QT安装有没有缺…

虚拟机配置centos7网络

一、编辑虚拟网络 二、编辑 ifcfg-ens32 配置静态ip vim /etc/sysconfig/network-scripts/ifcfg-ens32 三、网卡设置 四、重启网络 systemctl restart network

丐版设备互联方案:安卓linux互联局域网投屏,文件共享,共享剪切板

华为&#xff0c;苹果&#xff0c;甚至小米最近也推出了澎湃&#xff2f;&#xff33;&#xff0c;发现实在是太方便了&#xff0c;当然这些对硬件&#xff0c;系统的要求还是比较高&#xff0c;我用的主力机是小米&#xff11;&#xff12;pro和ubuntu&#xff0c;win双系统也…

基于蜜獾算法优化概率神经网络PNN的分类预测 - 附代码

基于蜜獾算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蜜獾算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蜜獾优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

ts学习04-Es5中的类和静态方法 继承

最简单的类 function Person() {this.name "张三";this.age 20; } var p new Person(); console.log(p.name);//张三构造函数和原型链里面增加方法 function Person(){this.name张三; /*属性*/this.age20;this.runfunction(){console.log(this.name在运动);} }…

漂亮的bootstrap后台模板

优雅典型的Bootstrap后台模板 在现今数字化时代&#xff0c;拥有一个漂亮且易于使用的后台模板对于网站或应用程序的成功至关重要 Bootstrap后台模板为您提供了一种简单而强大的方式来构建出色的管理界面&#xff0c;为用户带来无缝的操作体验 我们的Bootstrap后台模板不仅具…