特征优化+模型优化

一、优化思路梳理
课前准备
  在昨天的内容中,我们通过使用更强的集成模型以及模型融合的方法,已经顺利将比赛分数提高至前20%。但正如此前所说,之前的一系列操作只不过是遵循了常规操作流程进行的数据处理与建模,若希望能够更进一步提高模型分数,则需要因地制宜、活学活用,在考虑到当前数据及特殊情况下进行有针对性的策略调整。本节内容我们将结合此前搜集到的所有数据集信息及业务背景信息,进行最后一轮的特征优化与模型优化,并最终将排名提升至前1%。

当然,这个过程并不简单,若需要跟上本节内容的讨论,需要非常熟悉当前数据集的基本情况,也就是需要深度掌握Day1-2所介绍内容,从而才能理解接下来的特征优化相关内容;此外也需要对Day 5中介绍的集成学习建模策略,即在使用原生算法库情况下,如何配合交叉验证过程、借助贝叶斯优化器进行超参数搜索,并最终输出交叉验证的测试集预测均值作为最终预测结果的一整个流程,从而才能更快速的理解本节开始我们对模型训练流程进行的优化与调整;此外,我还将在本节介绍非常适用于竞赛场景的融合技巧,亦可作为同学日后参与竞赛时的有力工具。不过没有跟上此前的内容的同学也不用担心,本节内容将更加强调优化过程的整体逻辑,并尽可能从一个更加通俗且准确的角度进行解释,大家也可以在听完本节内容后再去回顾此前Day1-5的相关内容,以终为始、未尝不可,通过反复观看,也相信大家会对本节内容有一个更深刻的理解。

整体优化思路
  对于机器学习来说,总的来看有两种建模思路,其一是通过特征工程方法进一步提升数据质量,其二则是通过更加复杂的模型或更加有效的模型融合技巧来提升建模效果,并且就二者的关系来看,正如时下流行的观点所说,特征工程将决定模型效果上界,而建模过程则会不断逼近这个上界。但无论如何,在优化的过程中,需要二者配合执行才能达到更好的效果。

image-20211210125340547
1.特征优化思路
  首先,先来看特征优化思路。在此前的建模过程中,我们曾不止一次的对特征进行了处理,首先是在数据聚合时(以card_id进行聚合),为了尽可能提取更多的交易数据信息与商户信息带入进行模型,我们围绕交易数据表和商户数据表进行了工程化批量特征衍生,彼时信息提取流程如下:

在这里插入图片描述
在这里插入图片描述
该过程的详细讲解,可参考Day 3-Day 4的课程内容。总而言之,通过该过程,我们顺利的提取了交易信息表和商户信息表中的数据带入进行建模,并且借助随机森林模型,顺利跑通Baseline。但值得一提的是,在上述流程中,我们其实只是采用了一些工程化的通用做法,这些方法是可以快速适用于任何数据集的特征衍生环节,同时这样的方法也应该是所有建模开始前必须尝试的做法,但既然是“通用”方法,那必然无法帮我们在实际竞赛中脱颖而出。

当然,我们也曾尝试过进行有针对性的特征优化,在Day 5的内容中,我们曾采用NLP方法用于提取特征ID列的信息,并得到了一系列能够更加细致描述用户行为信息与商品偏好的特征,借助该特征,我们最终训练得出了一个效果更好的模型,该结果也进一步验证了特征优化对模型效果提升所能起到的作用。接下来我怕们也将尝试进一步进行有针对性的特征优化。

总体来看,特征优化需要结合数据集当前的实际情况来制定,在已有批量衍生的特征及NLP特征的基础上,针对上述数据集,还可以有以下几点优化方向:

用户行为特征
  首先,我们注意到,每一笔信用卡的交易记录都有交易时间,而对于时间字段和文本字段,普通的批量创建特征的方法都是无法较好的挖掘其全部信息的,因此我们需要围绕交易字段中的交易时间进行额外的特征衍生。此处我们可以考虑构造一些用于描述用户行为习惯的特征(经过反复验证,用户行为特征是最为有效的提高预测结果的特征类),包括最近一次交易与首次交易的时间差、信用卡激活日期与首次交易的时间差、用户两次交易平均时间间隔、按照不同交易地点/商品品类进行聚合(并统计均值、方差等统计量)。
  此外,我们也知道越是接近当前时间点的用户行为越有价值,因此我们还需要重点关注用户最近两个月(实际时间跨度可以自行决定)的行为特征,以两个月为跨度,进一步统计该时间周期内用户的上述交易行为特点,并带入模型进行训练。

二阶交叉特征
  在此前的特征衍生过程中,我们曾进行了交叉特征衍生,但只是进行了一阶交叉衍生,例如交易额在不同商品上的汇总,但实际上还可以进一步构造二阶衍生,例如交易额在不同商品组合上的汇总。通常来说更高阶的衍生会导致特征矩阵变得更加稀疏,并且由于每一阶的衍生都会创造大量特征,因此更高阶的衍生往往也会造成维度爆炸,因此高阶交叉特征衍生需要谨慎。不过正如此前我们考虑的,由于用户行为特征对模型结果有更大的影响,因此我们可以单独围绕用户行为数据进行二阶交叉特征衍生,并在后续建模前进行特征筛选。

异常值识别特征
  在Day 1的数据探索中我们就发现,训练数据集的标签中存在少量极端异常值的情况
  在这里插入图片描述
在这里插入图片描述

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

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

相关文章

面试题:Proxy 相较于 Object.defineProperty 有什么优势?

面试题:Proxy 相较于 Object.defineProperty 有什么优势? Object.defineProperty 详解 语法:Object.defineProperty(obj, prop, descriptor) 功能:在一个对象上定义一个新属性或修改其现有属性,并返回此对象。 参数…

界面控件Telerik UI for WPF中文教程 - 用RadSvgImage升级应用程序UI

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio…

笔记-Python中的struct模块

了解c语言的人,一定会知道struct结构体在c语言中的作用,它定义了一种结构,里面包含不同类型的数据(int,char,bool等等),方便对某一结构对象进行处理。而在网络通信当中,大多传递的数据是以二进制流(binary …

ADB命令来捕获设备屏幕快照和发送鼠标事件来实现抓取公众号文章

ADB命令来捕获设备屏幕和发送鼠标事件来实现抓取公众号文章 现在公众号需要登陆账号才能看到评论内容。登陆要账号的密码等,token还会过期。 现在的很多小程序进行了加密,那是否有方案可以抓取小程序或公众号的数据呢? 解决方案: …

【简报】VITA 74 (VNX)B

1 为什么向AMSAT社区提及VPX / VNX 1.1VPX是包括卫星在内的最新一代军用车辆增长最快的标准 VITA 65 – 面向地面车辆的 OpenVPX文献检索将揭示在许多商业和军事坚固型系统应用中的广泛应用VITA 78 – AFRL和工业界正在开发用于卫星的“SpaceVPX”和“Space VPX Lite” 1.2 …

R语言数据分析15-xgboost模型预测

XGBoost模型预测的主要大致思路: 1. 数据准备 首先,需要准备数据。这包括数据的读取、预处理和分割。数据应该包括特征和目标变量。 步骤: 读取数据:从CSV文件或其他数据源读取数据。数据清理:处理缺失值、异常值等…

AWS Load Balancer Controller 实践

背景 通过编写K8S的Ingress 然后能自动创建 aws的LB 作用 控制器监视 Kubernetes Ingress 或 Service 资源。作为响应,它会创建相应的 AWS 弹性负载均衡资源。您可以通过对 Kubernetes 资源应用注释来配置负载均衡器的特定行为。例如,您可以使用注释将 AWS 安全组附加到负…

人工智能_机器学习097_PCA数据降维算法_数据去中心化_特征值_特征向量_EVD特征值分解原来和代码实现---人工智能工作笔记0222

降维算法的原理,一会咱们再看,现在先看一下,算法 可以看到PCA算法的,原理和过程,我们先看一下代码 为了说明PCA原理,这里,我们,先来计算一下X的方差,可以看到 先把数据进行去中心化,也就是用数据,减去数据的平均值. B = X-X.mean(axis=0) 这段代码是用于计算矩阵X的每一列减去该…

websockets怎么工作的呢?

WebSockets是一种在单个TCP连接上进行全双工通信的协议,使得客户端和服务器之间的数据交换变得更加简单,并允许服务端主动向客户端推送数据。下面是WebSockets的工作原理: 1. **握手阶段**: - 客户端发起一个HTTP请求到服务器&…

react+vite创建

要在本地初始化一个结合了React和Vite的项目,你可以遵循以下步骤: 1、安装Node.js: 确保你的机器上已安装了Node.js。如果未安装,请前往Node.js官网下载并安装。 2、使用终端或命令提示符: 打开你的终端(…

测试工程师经常使用的Python中的库,以及对应常用的函数

os (操作系统接口) 该库提供了许多与操作系统交互的函数,如文件处理、目录操作、进程管理等。 常用功能包括: os.name: 获取操作系统的名称。 os.path: 用于操作文件路径的模块,如os.path.join拼接路径。 os.mkdir: 创建目录。 os.remove: 删…

EE trade:通货膨胀对老百姓意味着什么

通货膨胀,是经济领域中的一个常见现象,对社会各阶层尤其是普通老百姓的生活产生了深远影响。理解通货膨胀对老百姓的真实含义,可以帮助我们更好地应对日常生活的变化与挑战。 1. 生活成本的上升 最直接的影响体现在生活成本上。通货膨胀会导致…

Linux操作系统:Redis在虚拟环境下的安装与部署

Redis下载方法 最近部署项目的时候用到了Redis,自己在安装的时候也碰到了一些列问题最终安装成功,记录一下自己的安装历程。前期准备: 服务器Linux版本:Centos8.4 64位(http://isoredirect.centos.org/centos/8/isos/…

TS设置接收的形参类型

在我们使用pinia时会接受参数&#xff0c;一般来说是传递两个参数 setGlobalState(...args: ObjToKeyValArray<GlobalState>) {this.$patch({ [args[0]]: args[1] }); } 例如此时传递的是globalStore.setGlobalState("token", "123"); 那么此时的…

python姿态识别+Tensflow1.12+pyqt5+UI

python姿态识别Tensflow1.12pyqt5UI import datetimefrom PyQt5.QtCore import QCoreApplication from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog from vedio import vediofrom HumanPoseRec import Ui_MainWindow from PyQt5 import QtCore, QtGui, Qt…

如何使用Python提取Excel中固定单元格的内容

正文共&#xff1a;1234 字 31 图&#xff0c;预估阅读时间&#xff1a;1 分钟 之前转载了颜总的Python环境搭建文章&#xff08;Python办公自动化—环境搭建&#xff09;&#xff0c;很久过去了&#xff0c;颜总也没有再更新。现在我有一个需求&#xff0c;就是我手上有大量格…

Android Studio 下载 | 安装 | 下载 SDK | 中文插件 | 卸载

文章目录 下载安装包安装下载 SDK中文插件卸载 下载安装包 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 点击下载 Android Studio。 在协议最下方勾选同意&#xff08;第一次用最好还是看一眼&#xff09;&#xff0c;再点击 Dowload Android Stu…

JS 转化中文首字母拼音

引入 chinapy.js文件下载地址 链接&#xff1a;百度云连接 提取码&#xff1a;zrjk import { makePy } from /utils/chinapy; let chinaPyName makePy(黄飞鸿) console.log(chinaPyName) // hfh

css文字超出元素省略,单行、多行省略

通用CSS .box {width: 500px;border: 1px solid red;padding: 10px;line-height: 24px;} 1.单行省略 .singe-line {text-overflow: ellipsis;overflow: hidden;word-break: break-all;white-space: nowrap;}<p>单行省略</p><div class"singe-line box&qu…

选择核密度估计带宽LSCV与DPI方法对比

最小二乘交叉验证&#xff08;Least Squares Cross-Validation, LSCV&#xff09;和直接插入法&#xff08;Direct Plug-in, DPI&#xff09;是两种常用于选择核密度估计带宽的方法。 原理与定义 最小二乘交叉验证&#xff08;LSCV&#xff09; 原理&#xff1a;通过交叉验证…