特征工程的千层套路?

2024-01-26 11:20
文章标签 工程 特征 套路 千层

本文主要是介绍特征工程的千层套路?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据挖掘比赛中特征工程的常见套路

前言

最近博主沉迷于天池的大数据比赛,参加了二手车交易价格预测比赛。虽然最后名次不是很高,只有266名(中间停止更新代码3到4天),但是我认为最宝贵的财富是在比赛中找到的大佬朋友,和自己获得的经验。同时,我也看到了特征工程对于比赛模型的提升空间,所以今天来给大家介绍我整理的常见特征工程对于数据的处理方式。

1.数据分箱

明确作用:将连续值转换成一个类别特征
举个栗子:这是一个小区人年龄的连续值特征:1,5,6,7,7,10·····
我们可以知道:最大值为100,最小值为1,那么我们就可以进行分组了:可以这样分1-10,11-20,····,91-100。 那么我们将这些类别分别标记为0,1,2,3,4,5,6,7,8,9,一共10个类别,作为一种类别特征出现。

那么,我们为什么要这么做呢?
优点:
1.减少噪声对数据的污染
2.防止过拟合

2.特征构造

特征构造可以使我们的模型更加复杂,推荐在模型欠拟合的时候使用。主流方法大致分为2种。

1.特征组合(提取)

特征组合,顾名思义,就是将n多个特征组合到一起去成s为一个可以协同作用的新特征。
举个栗子:有一列特征s,表示路程;特征t,表示时间。所以,根据公式:v=s/t来构造一列新的特征v,来表示速度特征。

这是按照先验知识来进行特征的组合(提取),有时候我们可能并不需要完全地按照正常的公式进行推导计算,比如说你可以组合几个特征,有可能就是一个黄金特征,对于准确率的提升很大。但是,同时模型的解释性也会变差。

特殊提醒:
遇到时间的处理方式:例如20050614,很明显这个数据的格式是YYYYMMDD,所以我们可以通过这个信息来分离出三列特征,分别是year,month,day。分别对应2005,06,14。这样我们就可以把它们当作类别特征来处理。

2.交叉特征

交叉特征会降低模型的可解释性,但是同时也可使模型变得更加复杂,使得每个特征之间的信息协同作用。

3.构建特征统计量

构建统计信息量一般先进行测试集和训练集的数据合并,然后分别构造这些统计量:计数、求和、比例、标准差。
这次比赛的前几名的大佬构造的全都是统计量。

请勿构造太多统计量,否则将会导致标签值泄漏到数据当中(leak)严重则将导致测试集和训练集差异过大

特征构造技术优劣

优势:
1.增加模型的复杂程度,防止欠拟合
2.有可能会发现一些黄金特征

劣势:
1.增加模型的复杂程度,可能导致过拟合
2.延长训练时间
3.如果构造特征不恰当,会导致模型解释性变差。

3.数据分布处理

对于标签的处理

在这次比赛中,标签值的的分布方式并没有非常完美地贴合正态分布,这对于传统线性回归模型这种有先验假设条件的模型有致命的打击,下面是对于这种情况的处理方式:
PS:我在进行搜索查询资料的时候查到了许多的方法进行处理,但是都没有提及逆变换公式,那么我也来整理一下。

1.对数变换

公式:(前提:x>0,可以自行设置偏置系数)
对数变换公式
逆变换:
对数逆变换公式

2.平方根变换

公式:(前提:x>0,可以自行设置偏置系数)
平方根变换公式
逆变换:
平方根逆变换公式

3.倒数变换

公式:(前提:x>0,可以自行设置偏置系数)
倒数变换公式
逆变换:
倒数逆变换公式

4.box-cox变换

box-cox变换和log变换很相似,但是同时效果可能会更好,下面是它的公式:
box-cox变换公式
box-cox变换
box-cox逆变换
box-cox逆变换
前面的公式适用于y>0的情况,下面的公式适用于y的所有取值范围:
在这里插入图片描述
PS:以上公式来自于北京交通大学讲义ppt:Box-cox变换方法及其实现应用,还有一些不常用的方法,可以在这篇文章中找到。

未完待续,以后有时间再更新。有问题可以在评论区留言,一起讨论。

这篇关于特征工程的千层套路?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646632

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

《计算机视觉工程师养成计划》 ·数字图像处理·数字图像处理特征·概述~

1 定义         从哲学角度看:特征是从事物当中抽象出来用于区别其他类别事物的属性集合,图像特征则是从图像中抽取出来用于区别其他类别图像的属性集合。         从获取方式看:图像特征是通过对图像进行测量或借助算法计算得到的一组表达特性集合的向量。 2 认识         有些特征是视觉直观感受到的自然特征,例如亮度、边缘轮廓、纹理、色彩等。         有些特征需要通

二、Maven工程的创建--JavaSEJavaEE

1、idea创建Maven JavaSE工程:  2、idea创建Maven JavaEE工程:   (1)手动创建 (2)插件方式创建 在idea里安装插件JBLJavaToWeb; 选择需要生成的项目文件后,右击: 项目的webapp文件夹出现小蓝点,代表成功。

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

三、Maven工程的构建

首先,创建和构建是两个概念。 构建是指将源代码、依赖库和资源文件等转换为可执行或可部署的应用程序的过程。 在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员更加专注于应用程序的开发和维护,而不必关心应用程序的构建细节。 同时,项目构建还能将多人写的代码聚合,并能够自动化项目的构建和部署,

我在高职教STM32——准备HAL库工程模板(1)

新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过更换库就意味着教学内容有很大变化,自己也就迟迟没有迈出调整这一步。现在,是时候做出变化了,笔者计划保持教学项

java工程的导入jar包

由于现在学习java web,java工程导入jar包都忘记了。 在此想记录一下:工程项目名:右击 -- Build Path --add External Archives 点击会弹出一个框 ,选择你要导入的jar路径就可以了。

WebShell流量特征检测_哥斯拉篇

90后用菜刀,95后用蚁剑,00后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对后三款经典的webshell管理工具进行流量分析和检测。 什么是一句话木马? 1、定义 顾名思义就是执行恶意指令的木马,通过技术手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行 2、特点 短小精悍,功能强大,隐蔽性非常好 3、举例 php一句话木马用php语言编写的,运行