SPSSAU | Adaboost模型原理及案例实操

news2024/11/23 15:34:59

AdaBoost(Adaptive Boosting)算法的核心思想是将多个弱分类器组合成一个强分类器。其算法步骤如下:

第一:初始化权重,为每个训练样本分配相等的初始权重;

第二:训练弱分类器,根据当前样本权重训练一个弱分类器,并计算其错误率;

第三:更新权重,增加错分类样本的权重,使后续弱分类器更关注这些样本,减少正确分类样本的权重;

第四:组合分类器,将所有弱分类器的加权结果组合起来,形成最终的强分类器;

最后:通过反复迭代以上步骤,AdaBoost 能够显著提高分类性能。

1 背景

当前有一项关于‘信用卡交易欺诈’的数据科学研究,已整理好数据共为1000条,其包括六项,分别是换设备次数,支付失败次数,换IP次数,换IP国家次数,交易金额和欺诈标签,欺诈标签时,数字1表示欺诈,数字0表示没有欺诈行为,现希望通过Adaboost进行模型构建,并且做一些预测工作,部分数据如下图所示:

2 理论

在进行Adaboost模型时,其涉及参数如下表所述:

参数说明参数值设置
损失函数构建模型的算法方式,通常使用默认参数值即可其仅针对回归任务时使用。linear: 使用预测误差的绝对值来衡量误差的大小。square: 使用预测误差的平方来衡量误差的大小。exponential: 使用预测误差的指数值来衡量误差的大小。
学习器数量用于构建的树的数量默认是50
学习率学习率即模型参数更新步长,越小收敛越快,但迭代次数越多。范围(0.0, 1.0] 默认0.1
任务类型包括自动判断,分类和回归任务系统会结合Y的不同数字个数自动判断分类或回归任务,当然可自行选择分类或回归任务

除此之外,与其它的机器学习算法类似,SPSSAU提供训练集比例参数(默认是训练集占0.8,测试集占0.2),数据归一化参数(默认不进行),以及保存预测值(Adaboost时会生成预测类别,但不会生成预测概率),保存训练测试标识(生成一个标题来标识训练集和测试集数据的标识)。

3 操作

本例子操作截图如下:

将欺诈标签放入Y框中,其余5个特征项作为自变量X。与此同时,训练集比例默认为0.8,暂不进行数据归一化,当然当前数据也可考虑做标准化处理,因为涉及数据的量纲不同。更多参数设置暂保持为默认值。

4 SPSSAU输出结果

SPSSAU共输出5项结果,依次为基本信息汇总,特征权重值,训练集或测试集模型评估结果,测试集结果混淆矩阵,模型汇总表和模型代码,如下说明:

说明
基本信息汇总因变量Y(标签项)的数据分布情况等
特征权重值展示各个X(特征)对于模型的贡献力度
训练集或测试集模型评估结果分析训练集和测试集数据的模型效果评估,非常重要
测试集结果混淆矩阵测试集数据的进一步效果评估,非常重要。分类任务时提供,如果是回归任务则没有该矩阵。
模型汇总表模型参数及评估汇总表格
模型代码模型构建的核心python代码

上述表格中,基本信息汇总展示出因变量Y(标签项)的分类分布情况,模型评估结果(包括训练集或测试集)用于模型的拟合效果判断,尤其是测试集的拟合效果,以及提供测试集数据的混淆矩阵结果(如果是分类任务则提供,如果是回归任务则无该表格);模型汇总表格将各类参数值进行汇总,并且在最后附录模型构建的核心代码。

5文字分析

首先针对特征的权重即重要性情况进行说明,如下图:

上图可以看到:交易金额对于是否欺诈行为有着非常重要的作用,明显高于其它几项。接下来针对最重要的模型拟合情况进行说明,如下表格:

上表格中分别针对训练集和测试集,提供四个评估指标,分别是精确率、召回率、f1-scrore、准确率,以及平均指标和样本量指标等,整体来看,模型效果较好,因为无论是训练集还是测试集,F1-score值均高于0.9,其它指标比如精确率或者召回率指标,均接近或明显高于0.9,整体上意味着模型构建较优。

接着进一步查看测试数据的‘混淆矩阵’,即模型预测和事实情况的交叉集合,如下图:

‘混淆矩阵’时,右下三角对角线的值越大越好,其表示预测值和真实值完全一致。上图中显示测试集时,真实值为1(即欺诈)但预测为0(即不欺诈)的数量为20,以及真实为0(即不欺诈)但预测为1(即欺诈)的数量为1,其余均预测正确,仅测试集共有200条,但预测出错为21条,出错率为10.5%。最后SPSSAU输出模型参数信息值,如下表格:

模型汇总表展示模型各项参数设置情况,最后SPSSAU输出使用python中slearn包构建本次Adaboost模型的核心代码如下:

model = AdaBoostClassifier(algorithm='SAMME.R', n_estimators=50, learning_rate=1.0')

model.fit(x_train, y_train)

6 剖析

涉及以下几个关键点,分别如下:

  1. 保存预测值
    保存预测值时,SPSSAU会新生成一个标题用于存储模型预测的类别信息,其数字的意义与模型中标签项(因变量Y)的数字保持一致意义。但Adaboost不会生成类别的预测概率。
  2. SPSSAU进行Adaboost模型构建时,自变量X(特征项)中包括定类数据如何处理?
    logistic回归模型时通常不会关注于数据类型本身,如果一定要处理,建议可对定类数据进行哑变量转化后放入,关于哑变量可点击查看。
    http://spssau.com/front/spssau/helps/otherdocuments/dummy.html
  3. SPSSAU中Adaboost模型合格的判断标准是什么?
    机器学习模型中,通常均为先使用训练数据训练模型,然后使用测试数据测试模型效果。通常判断标准为训练模型具有良好的拟合效果,同时测试模型也有良好的拟合效果。机器学习模型中很容易出现‘过拟合’现象即假的好结果,因而一定需要重点关注测试数据的拟合效果。针对单一模型,可通过变换参数调优,与此同时,可使用多种机器学习模型,比如使用决策树、随机森林、支持向量机、神经网络等,综合对比选择最优模型。
  4. SPSSAU机器学习如何进行预测?
    SPSSAU中默认带有数据预测功能,当特征项X有完整数据,但标签项(因变量Y)没有数据时,此时‘保存预测值’,SPSSAU会默认对此种情况进行预测。如下图中的编号9到12共4行数据,其只有X没有Y,那么保存预测值时,默认对该4行数据进行预测。机器学习的各方法均遵从此规则。

  1. 如何将多个模型绘制ROC曲线对比优劣?
    如果涉及多个模型预测能力绘制ROC曲线,用于多个模型预测能力对比。建议按以下步骤进行:
    第1步是得到各个模型(比如神经网络模型、随机森林模型、logistic回归、Adaboost等)的预测值标题,该预测值可通过SPSSAU中‘保存预测值’参数选中后得到;
    第2步是将得到的预测类别作为ROC曲线时的‘检验变量X’。此时绘制出来的ROC曲线则会有多条,分别表示各模型的预测值。与此同时,ROC曲线时的‘状态变量Y’为实际真实情况上的Y数据,并且该数据正常情况下为二分类(即仅包括2个数字即两个类别)。
    【提示:比如决策树/随机森林/Xgboost/GBDT/Adaboost/极端随机树/ LightGBM/CatBoost等均没有预测概率只有预测类别,此时则纳入预测类别。但比如神经网络/logistic回归可纳入预测概率或者预测类别均可】
  2. 机器学习算法时保存数据集标识的意思是什么?
    选择‘保存数据集标识’后,SPSSAU会新生成一个标题,用于标识模型构建时训练集或测试集,使用数字1表示训练集,数字2表示测试集。如果后续分析时(比如绘制ROC曲线)只针对训练集,那么使用筛选样本功能,筛选出训练集后分析即可。
  3. 机器学习算法中保存预测信息具体是什么意思?
    如果选中保存预测信息,并且为分类任务时,SPSSAU会新生成预测类别,预测类别是指最终预测出来Y的类别,预测类别标题名称类似为‘Adaboost _Prediction_****’,以及Adaboost不会得到每个类别的预测概率。
  4. 为什么没有输出AUC指标及ROC曲线?

如果是分类任务并且为二分类(Y为分类数据且为二分类,且参数上默认或者选择为分类任务),此时SPSSAU默认会输出ROC曲线及AUC指标等。如果是多分类(Y为分类数据且大于两类,且为分类任务),此时AUC指标的意义较小暂未输出,如果有需要,可按下述步骤进行。

第1步:构建模型时先‘保存预测信息’,得到多个标题,每个标题对应1个类别时的预测概率;

第2步:将某个类别(即1个标题)的预测概率作为X,Y为模型构建时的Y,并且ROC曲线时分割点设置为放入的类别项对应的数字;

第3步:多个类别则重复进行多次,即得到每个Y类别标签的ROC曲线和AUC值等。

【提示:决策树/随机森林/Xgboost/GBDT/Adaboost/极端随机树/LightGBM/CatBoost等进行分类任务时只会得到预测类别,并不会得到预测概率,因而均不输出AUC或ROC曲线,当然研究者也可利用预测类别进行绘制ROC曲线,研究者自行处理即可】

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

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

相关文章

如何做OLED屏幕安装方案

制定OLED屏幕安装方案时,需要综合考虑多个方面,包括安装环境、屏幕尺寸、支架选择、电源与信号连接、调试与测试等。以下是一个详细的OLED屏幕安装方案: 一、前期准备 确定安装位置: 根据使用需求和环境条件,选择一个…

基于FPGA的以太网设计(4)----详解PHY的使用(以YT8531为例)

目录 1、前言 2、如何了解PHY芯片? 2.1、总览 2.2、管脚 2.3、编码 2.4、自协商 2.5、环回模式 2.6、睡眠模式 2.7、复位 2.8、PHY地址 3、PHY芯片的寄存器配置 3.1、Basic Control Register (0x00) 3.2、Basic StatusRegister (0x01) 3.3、PHY Specific Status…

重生了,这一世 我一定要学会服务器 只因………

你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^) 想看更多 那就点个关注吧 我…

IT运维管理与ITSM:理论与实践

IT运维管理和IT服务管理(ITSM)在现代企业信息化过程中占据着举足轻重的地位。它们不仅是确保IT系统稳定运行和业务连续性的关键,还是推动企业数字化转型、提升竞争力的重要力量。本文将结合《IT运维管理和ITSM》文档的内容,深入探…

【C++/STL】:哈希的应用 -- 位图布隆过滤器

目录 🚀🚀前言一,位图1. 位图的概念2. STL库中的位图3. 位图的设计4. 位图的模拟实现5. 位图的优缺点6. 位图相关考察题⽬ 二,布隆过滤器1. 布隆过滤器的概念2. 布隆过滤器的实现3. 布隆过滤器删除问题4. 布隆过滤器的优缺点 点击…

江森自控引入电子签,“碳”索智能建筑数字未来

近年来,伴随着科技的不断进步和市场领域的持续延伸,智能建筑已然成为建筑业科技升级的必经之路。 作为智能建筑领域的全球领导者,江森自控始终走在数字化变革前列,并在业内率先引入了电子合同,通过全流程线上进行的签…

【办公类-53-03】2024年第一学期校历制作(“月/日(星期)”版、排班表、跳过节日和周三)

背景需求: 前期代码制作出2024年第一学期校历,按照5天一周的方法,提取实际工作日。制作成“周计划教案”使用的长日期、短日期 -【办公类-53--01】2024年第一学期校历制作(星火讯飞提取实际工作日,5天一行&#xff0…

Spring-Retry 框架实战经典重试场景

Spring-Retry框架是Spring自带的功能&#xff0c;具备间隔重试、包含异常、排除异常、控制重试频率等特点&#xff0c;是项目开发中很实用的一种框架。 1、引入依赖 坑点&#xff1a;需要引入AOP&#xff0c;否则会抛异常。 xml <!-- Spring-Retry --> <dependency&…

【AI大模型】通义千问:开启语言模型新篇章与Function Call技术的应用探索

文章目录 前言一、大语言模型1.大模型介绍2.大模型的发展历程3.大模型的分类a.按内容分类b.按应用分类 二、通义千问1.通义千问模型介绍a.通义千问模型介绍b.应用场景c.模型概览 2.对话a.对话的两种方式通义千问API的使用 b.单轮对话Vue页面代码&#xff1a;Django接口代码 c.多…

【C++】—— 类与对象(一)

【C】—— 类与对象&#xff08;一&#xff09; 1、类的定义1.1、类定义1.1.1、类定义格式1.1.2、成员变量的标识1.1.3、C 中的 s t r u c t struct struct1.1.4、C 中的内联函数1.1.5、总结 1.2、访问限定符1.3、类域 2、实例化2.1、实例化的概念2.2、对象大小2.2.1、对象的大…

【Hot100】LeetCode—1143. 最长公共子序列

目录 题目1- 思路2- 实现⭐最长公共子序列——题解思路 3- ACM 实现 题目 原题连接&#xff1a;1143. 最长公共子序列 1- 思路 模式识别1——> 求子序列问题 ——> dp数组定义为 i-1 和 j-1 动规五部曲 1- 创建dp数组 dp[i][j]&#xff0c;代表以 i-1 结尾的 text1 和…

“外挂”——逆向软件的分析与破解

本文来源无问社区&#xff0c;更多实战内容&#xff0c;渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/11458.html#maodian1 前言&#xff1a; “外挂”的制作离不开软件的分析破解&#xff0c;这平时做ctf中的逆向题是有⼀定的差别的。最直观的区别体现在…

Leetcode 438. 找到字符串中所有字母异位词(java实现)

解题思路&#xff1a;滑动窗口。 异位词的典型解题方法就是用数组来统计出现的个数。本题也不例外。 直接上代码来进行讲解&#xff1a; public List<Integer> findAnagrams(String s, String p) {//初始化返回数组List<Integer> res new ArrayList<>();if …

百问网全志T113-PRO LVGL环境配置

运行LVGL示例 启动开发板 ​ 按要求接入电源或Type-c数据线&#xff0c;拨动拨码开关&#xff0c;将开发板上电 运行LVGL示例 ​ 打开串口终端软件&#xff0c;这里我使用MobaXterm软件演示&#xff0c;选择开发板的串口终端号&#xff0c;可以在设备管理中查看 这里我的串…

喜加一!望繁信科技再摘「2023年度新锐技术品牌奖」

1月31日&#xff0c;望繁信科技再次获颁由全球知名科技社区InfoQ评选的「2023年度新锐技术品牌奖」。这是InfoQ连续第二年将该奖项授予望繁信科技&#xff0c;用以肯定过去一年中&#xff0c;望繁信科技在流程挖掘与智能领域的技术创新与业务价值创造。 InfoQ在颁奖词中写到&…

【STM32】GPIO口以及EXTI外部中断

个人主页~ 有关结构体的知识在这~ 有关枚举的知识在这~ GPIO口以及EXTI外部中断 GPIO一、简介二、基本结构三、输入输出模式1、输入模式&#xff08;1&#xff09;上拉输入&#xff08;2&#xff09;下拉输入&#xff08;3&#xff09;浮空输入&#xff08;4&#xff09;模拟输…

【Python】面向对象的程序设计

一、面向对象的介绍 1.对象 对象是一种抽象概念&#xff0c;表示客观世界存在的实物&#xff0c;现实世界中能够看到的、触碰到的都可以成为对象&#xff0c;如&#xff1a;人、大象、小猫等。 对象通常分为两个部分&#xff0c;即静态部分和动态部分。静态部分为“属性”&a…

UE4 SLUA IOS打包报错解决办法

IOS打包报错&#xff1a;Fatal error "lua.h" file not found &#xff1a; SLua Unreal 在IOS远程打包编译的时候 Exteral没有copy过去&#xff0c;导致lua.h文件报错找不到&#xff0c;看了网上也没有写解决办法 错误信息截图&#xff1a; github上也有很多遇到改…

【每日一题】【动态规划(DP) 】【分治 迭代】“葡萄城杯”牛客周赛 Round 53 D题 小红组比赛 C++

“葡萄城杯”牛客周赛 Round 53 D题 小红组比赛 题目背景 “葡萄城杯”牛客周赛 Round 53 题目描述 小红希望出一场题目&#xff0c;但是他的实力又不够&#xff0c;所以他想到可以从以前的比赛中各抽一题&#xff0c;来组成一场比赛。不过一场比赛的难度应该是有限制的&a…

【nginx】nginx日志出现on文件

问题描述 生产发现容器里多出了一个on文件&#xff0c;非常大。 去看nginx配置已经这样保持16个月了&#xff08;已经去掉其他无关内容&#xff09; 原因解释 这个问题是因为nginx配置了access_log on; 有两个知识点&#xff1a; 1.access_log只有off的特殊值&#xff0c…