数据的标准化和正态化变换

  • Author: 杜七

一、前言

数据挖掘过程中,不同变量数据单位不一,比如,我们想知道一个人身体健康状况,其身高是180cm,体重是80kg,视力是2.5,心跳是70/min,这些指标都是描述一个人身体状况的数据,这些单一不一的指标会对建模的准确度有一定影响。因此,在数据挖掘之前,我们要对数据做标准化处理。
另外,建模之后,我们产生了有价值的目标变量数据,但是这些数据都是标准化数据形式,跟实际业务问题的需求有一定偏差。如此,需要对数据做一定的变换,比如使其接近正态分布,这样从数据形式上可以对业务问题有更好的解释。

二、数据标准化

数据标准化有很多形式,这里简单总结三种,如下:

1,标准化(z_score规范化)

假设我们有一个X向量,x(i,j),i = 1,..,m;j = 1,..,n。z_score规范化如下:
x(i,j)' = [x(i,j) - E(j)] / S[j],即x(i,j)减去第j列的均值再除以第j列的标准差。
这样处理之后,原数据就变成了均值为0,方差为1,记作:
X' = [X - E(X)] / S(X),其中,E(X) = 0, S(X) = 1。

2,中心化

假设我们有一个X向量,x(i,j),i = 1,..,m;j = 1,..,n。中心化如下:
x(i,j)' = x(i,j) - E(j),E(j)是第j列的均值。
如此变化以后,均值为0,但是方差矩阵不变。

3,极差标准化

假设我们有一个X向量,x(i,j),i = 1,..,m;j = 1,..,n。极差标准化如下:
x(i,j) = [x(i,j) - E(j)]/ ( max(j) - min(j).
这样变换后,均值为0,方差为1.

4,小数定标规范化

小数定标规范化通过移动数据A的小数点位置进行规范化。小数点的移动位置依赖数据A的最大值。由下式计算:|max(A)|<1的最小整数。假设A的取值为-986 ~ 917,A的最大绝对值为986,使用小数定标规范化,用1000除以每个值,这样-986标准化为-0.986,917则为0.917.

注意:极差标准化和小数定标规范化都改变了原数据,如果想统一转换为原数据比较麻烦。所以可以尽量通过前两种方法来做规范化。

4,R中标准化实现

R语言中有现成的函数,比如scale,可以通过设置scale的参数来实现z_score和中心化的数据标准化,具体参考?scale.
当然,可以可以自己写一个规范化函数,如下:

data.scale <- function(data,method = "z_score")   
{  
  \# """  
  \# 1) 数据标准化有很多种方法,这里只用了两种:z_score,min-max  
  \# 2) 后续可以再添加其他的标准化的方法  
 # 如果方法选择z_score  
if(method == "min_max"){  
if(length(data) == 0 )  
  stop("Please input not empty dataset,ok?")  
if(class(data) == "factor")  
  stop("Please transforme factor to numeric or double,integer!")  
 m.value = mean(data,na.rm = TRUE)  
m.var = var(data,na.rm = TRUE)  
new.data = (data - m.value)/m.var  
}  
\# 如果方法选择min-max  
else {  
if(length(data) == 0 )  
  stop("Please input not empty dataset,ok?")  
if(class(data) == "factor")  
  stop("Please transforme factor to numeric or double,integer!")  
m.value = range(data,na.rm = FALSE)  
new.data = (data - m.value[1])/(m.value[2] - m.value[1])  
}  
}

三、数据正态化

数据正态化,目的是稳定方差,直线化,使数据分布正态或者接近正态。
如果y = f(x) 是x的线性函数,不影响分析;但是如果是非线性函数,y和x的表现就完全不同,包括分布,方差和数据间关系也会不同。

1,误差传播公式

这个不做过多解释,请参考这里

2,BOX_COX变换

1)Box-cox常见变换

Box-Cox在1964年从实际数据出发提出了一个很有效的变换,如下:
y = ifelse(k = 0,log(y),[y^k-1]/k),此变换有如下特点:

  • 改变分布形状,使之正态分布,至少是对称的;
  • 当x>=0,能保持数据大小次序;
  • 对变换结果有很好的解释:
    • k=2为平方变换;
    • k=1为恒等变换;
    • k=0.5平方根变换;
    • k=0为对数变换;
    • k=-0.5为平方根倒数变换;
    • k=-1为倒数变换

2),BOX-COX拓展变换

实际应用中,Box-Cox还有个扩展式,如下:
y = ifelse(k1 = 0,log(y+k2),[(y +k2)^k1-1]/k1),任意y,保证y+k2>0,即k2已知,k1为参数。

3),Box-cox实际应用

请参考这个文章,Box-Cox Transformation

小结

  • 很多右偏数据可以正态化
  • 对数变换后呈正态分布,方差稳定
  • 不太严重的右偏,使用平方根变换
  • 严重右偏,倒数变换

三、参考文献

1,Box-Cox Transform: An Overview
2,Box-Cox变换
3,统计学与R语言笔记-徐俊晓

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容