特征工程的前期准备:数据预处理

时间:2024-05-19 19:23:04

导读

你现在拿到了许多数据,顺序是完全随机的。这已经不是单凭肉眼和逻辑推导就能分析出来的规律,只能通过机器学习来计算。那么,应该从哪一步开始?

数据无量纲化

放心,无论是谁只要是第一次听到这个名词都会蒙圈一会。其的定义就是:“将不同规格的数据转换到同一规格或者不同分布的数据转换为同一分布”。听起来不是很好理解?

还是那个时候收集了20万猫娘数据的你。这个时候你甚至收集到了猫娘们跳远、跳高的数据。可是这些数据都集中在 1.537 1.537 1.537米左右,想要分析的话实在是计算量非常大。所以,你修改了一下计算参照,不再是将所有的数据和 0 0 0米相比,而是和平均值 1.537 1.537 1.537米相比。于是大量的数据都集中在 0 0 0 0.262 0.262 0.262,少部分分布在 0.262 0.262 0.262 0.501 0.501 0.501。这个计算量就好多了,不是么?

这就是数据规格化

数据规格化指对数据的规范化处理。有些情况下,为了能正确地真正反映实际情况,必须对原始数据进行加工处理,使之规范化。数据经过规格化后其计算结果与未经规格化的计算结果差别较大。这是由于相似系数取决于坐标原点的位置。在规格化后,坐标原点移动了,使样品之间的夹角改变很大。

——摘自百度百科【数据规格化】

听到这里,你的DNA应该有反应了。没错,就是

若 X ∼ N ( μ , σ 2 ) , 那 么 Y = X − μ σ ∼ N ( 0 , 1 ) 若X\sim N(\mu,\sigma^2),那么Y=\frac{X-\mu}{\sigma}\sim N(0,1) XN(μ,σ2),Y=σXμN(0,1)

之前我们在做题的时候都是二话不说先化为标准正态分布,实际上这么做就是为了数据规格化

而对于不同分布的数据我们则是尽可能地转化为统一的分布,这个分布多半选择正态分布,因为正态分布有非常多便于统计运算的性质。

正因为数据的无量纲化之后能够将数据变为更为规范的、标准的数据集,所以往往在进行机器学习的时候为了能够更快地收敛、在更短的时间内给出更精确的结果,无量纲化也是重要的一步。当然,也可以跳过,这都看原数据的质量了。

无量纲化的意义

机器学习和数据挖掘中所使用的数据,永远不可能是完美的。很多特征,对于分析和建模来说意义非凡,但对于实际收集数据的人却不是如此,因此数据挖掘之中,常常会有重要的字段缺失值很多,但又不能舍弃字段的情况。因此,数据预处理中非常重要的一项就是处理缺失值。

——摘自****用户AI_Engine:数据无量纲化

听起来像极了对账的时候各种奇葩漏账、错别字的样子,不是么?机器面对这样一大批乱七八糟的东西也是一样的。“这TM是啥?”“那TM又是啥?”然后稀里糊涂给了个让你情不自禁说出“这TM什么鬼”的结果。

听起来还是有点不太明白?举个例子。

你想给你的小猫娘科普中国四大名著。但是很可惜,在使用电脑准备文案的时候,你把水浒传打成了水许传。最绝望的是,你的小猫娘学会了。可以想象,你的小猫娘蹦蹦跳跳的跑到别人面前大声喊出“水许传”的时候,你会有多尴尬。

机器学习也是一样的,要是有个错误的数据,完全不会自己思考的机器就会把这个当作正确答案进行进一步的运算,然后得出一个错误的结果。像极了计算出老奶奶的速度是60km/h的小学生。

特征工程的前期准备:数据预处理

当然,除了纠错补全,无量纲化还能够使用正态分布的许多种特性进行新的分析。例如:

若 X ∼ N ( 0 , 1 ) , 则 { E X = 0 D X = 1 若X\sim N(0,1),则 \left\{ \begin{matrix} EX&=&0\\ DX&=&1\\ \end{matrix} \right. XN(0,1),{EXDX==01

不仅如此,我们还能够通过查表的方式确定当前服从正态分布的变量对应了多少概率,就像我们高中非常熟悉的 P ( − σ + μ < X < + σ + μ ) = 0.6826 P(-\sigma+\mu<X<+\sigma+\mu)=0.6826 P(σ+μ<X<+σ+μ)=0.6826等等。更进一步,我们还能够使用正态分布所引出的其他分布来进行更多的数学分析,就像是考研过程中被折磨了无数遍的 F ( m , n ) = n ∑ i = 1 m x 2 m ∑ i = 1 n y 2 F(m,n)=\frac{n\sum^m_{i=1}x^2}{m\sum^n_{i=1}y^2} F(m,n)=mi=1ny2ni=1mx2等。

是不是有点能理解了?