机器学习实战 | 数据探索(变量变换、生成)

1.1、什么是变量变换?

在数据建模中,变换是指通过函数替换变量。 例如,通过平方/立方根或对数x替换变量x是一个变换。 换句话说,变换是一个改变变量与其他变量的分布或关系的过程。

1.2、什么时候需要变量变换?

当我们想要改变一个变量的比例(change the scale)或标准化(standardize)变量的值以便更好地理解。 如果数据具有不同的尺度,则此变换是必须的,但此变换不会更改变量分布的形状。对应处理方法:机器学习之特征工程-数据预处理(无量纲化)。

当我们将复杂的非线性关系转化为线性关系时。 与非线性关系相比,变量之间存在线性关系更容易理解。 转换有助于将非线性关系转换为线性关系。 散点图可用于查找两个连续变量之间的关系,这些变化也改善了预测,log是常用的转换技术之一。

Relation.png

对称分布优于倾斜分布,因为它更容易解释和产生推论。 一些模型需要正态分布变量, 所以,每当遇到倾斜分布,使用变量变换。 对于右倾斜分布,取变量的平方/立方根或对数,对于左倾斜分布,取变量的平方/立方或指数。

Transformation_1.png

从程序实现角度考虑变量转换。 例如在员工绩效项目中,发现年龄与员工绩效直接相关,即年龄越高,绩效越好。 从实现的角度来看,基于年龄的程序可能会面临实现挑战。 然而,将员工分为三个年龄阶段30岁,30-45岁和45岁以上,制定三种不同的策略是一种明智的做法。 这种分类技术被称为变量分组(Binning)。

1.3、变量变换的常用方法是什么?

变换变量有许多方法,如平方根,立方根,对数,合并,倒数等等。来看看这些方法的细节和利弊。

对数(log):变量求对数是用于在分布图上更改变量分布形状的常用变换方法。通常用于减少变量的右偏差,虽然,它也不能应用于零值或负值。

平方/立方根:变量的平方和立方根对改变变量的分布有效果。然而,它不如对数变换那么有效。立方根有自己的优势,可以应用于包括零和负值,平方根可以应用于包括零的正值。

分箱(Binning):用于对变量进行分类。以原始值,百分位数或频率进行分类,分类技术的决策是基于对于业务的理解。例如,可以将收入分为三类:高,中,低,也可以对多个变量执行分箱。

生成特征

生成特征是基于现有特征生成新特征的过程。 例如,将日期(dd-mm-yy)作为数据集中的输入特征,可以生成新特征,如日,月,年,周,工作日,可能与target有更好的关系。 此步骤用于突出显示变量中的隐藏关系。

Derived.png

2.1、生成特征的类别

生成派生变量

使用一组函数或不同方法从现有变量创建新变量。在“Titanic – Kaggle competition”中,年龄存在缺少值,为了预测缺失值,用姓名中称呼(Master,Mr,Miss,Mrs)作为新变量。如何决定要生成哪个变量?这取决于分析师对业务理解,以及他对这个问题的假设。诸如采用变量求对数,变量分组或其他变量变换方法也可用于生成新变量。

生成虚拟变量

虚拟变量最常用的应用之一是将分类变量转换成数字变量,虚拟变量也称为指标变量(Indicator Variables)。将分类变量作为统计模型中的预测因子是有用的,如:性别可以产生两个变量,即为1(Male)和0(No male)的“Var_Male”和值为1(Female)和0(No Female)的“Var_Female”。还可以为两类以上分类变量生成n或n-1个虚拟变量。

Dummy.png

2.2、生成特征的常用方法

生成日期,时间和地址差异的变量

可以通过考虑日期和时间的差异来创建新变量, 例如:与在30分钟内填写相同申请的人相比,需要几天填写申请表的申请人可能对产品的兴趣较少。 同样,对于银行来说,在线门户登录详细信息和客户登录之间的时间可能会显示客户使用在线门户网站的意愿。同样,靠近银行分行的客户比远离客户的参与度更高。

生成比例变量

生成变量之间的比例可能会增加很多价值。 经常使用的一些比例是:输入/输出(过去的表现),生产率,效率和百分比。 例如,为了预测分行的信用卡销售的未来表现,像信用卡销售/销售人员或信用卡销售/营销支出之类的比率将比销售的绝对数量更强大。

应用标准变换

通过查看变量和输出的变化和绘图,是否变量的基本变换创建了更好的关系。 最常用的变换包括Log,指数,二次和三次变化。 例如,与绝对营销支出相比,营销支出的对数可能与Sales有更具代表性的关系。

考虑影响因素的影响

影响因素可以是组织的雇员,组织的代理人或组织的客户。 引起这些相关实体的影响可以显著改善模型。 例如,由经纪人(而不是所有经纪人)发起的贷款在锁定期后,更有可能转移到不同的实体。 同样,一组涉及到销售人员的子公司,可能对其客户进行交叉销售。

考虑变量的季节性

很多企业面临着季节性的问题,可能是由税收优惠,节日季节或天气驱动的。 如果是这种情况,需要考虑季节性。 如何在建模时应对季节性影响的更多细节可以参考:Festive season special: Building models on seasonal data。

参考

5 Simple manipulations to extract maximum information out of your data

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-11-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛客网

网易内推(C++/C研发)offer之路

看到大家都在牛客上写面经,我也来凑一下热闹,本人是一所普通高校的研究生(非211,985高校),自动化专业(非计算机)。 上个星期拿到了网易内推C++研发岗位的...

3809
来自专栏个人分享

行为科学统计第一章知识点总结

1、什么是总体?什么是样本? 总体是一个研究的所有研究对象的个体的集合。样本是被选择出来的参与研究的特定的个体集合。样本被期望能够代表总体。

501
来自专栏数据结构与算法

cf580D. Kefa and Dishes(状压dp)

官方题解是$O(2^n n^2)$的,不过我没发现状态之间的联系,就写了一个$O(2^n n^3)$的,不过还是水过去了。

402
来自专栏牛客网

快手、搜狗、旷视面经

最近面了几家公司,收集了一波面试题分享给大家。 主要都是算法题和一些场景题,常见的基础题就略过了。 好多想不起来了,会一直更新的 = =。 ps:不要问我怎么投...

3475
来自专栏钱塘大数据

一文总结学习 Python 的 14 张思维导图

大数据时代,数据是智能世界的土壤,发达的数据文明孕育于此之上。但大数据只是一种资源,它告知信息但不解释,只有学会深耕这片土地,真正挖掘到深埋土壤之下的数据金矿,...

3888
来自专栏编程心路

从王者荣耀看设计模式-策略模式(java版)

曾经我也是一名玩农药的大学生,但现在已经弃了,别问我为什么(被坑爹队友坑的哭。。。)。而今天我们来把让农药变荣耀,我们来从王者荣耀中看设计模式的策略模式。

675
来自专栏take time, save time

编程一样可以很带感--1+1不一定等于“2”

刚玩了两把flash小游戏,我也不知道为什么我从小就喜欢玩这个东西,想当初我上大学选软件的目的就是为了学会做flash,那时目的单纯吧?哈哈,初中的时候看的...

3576
来自专栏程序员八阿哥

王老板Python面试(11):真实 Python 爬虫面试题

就在昨天我面试了,来到上海之后面试的第一家公司,面试过程挺顺利,不出意外今天下午就会收到 offer。面试完之后,我走在路上,整个人都是在傻笑的状态,路人一脸关...

631
来自专栏数据小魔方

R语言可视化——多边形与数据地图填充

ggplot函数中有一类特殊的图表类型叫做多边形,很难用传统的视角来定义它属于哪一类图表,因为它能够呈现信息多种多样。 特别是在做某些比较高阶的图表——地图时,...

2584
来自专栏数据结构与算法

博弈论进阶之Anti-SG游戏与SJ定理

前言 在之前,我们初步了解了一下SG函数与SG定理。 今天我们来分析一下SG游戏的变式——Anti-SG游戏以及它所对应的SG定理 首先从最基本的Anti-Ni...

3294

扫描关注云+社区