在数据预处理阶段,特征的标准化有哪些方法?

  统计/机器学习 数据预处理    浏览次数: 1320
4

特征的标准化具体是什么意思?

 

雕牌   2017-03-18 11:34



   1个回答 
10

特征标准化(Feature Standardization)的作用是将样本数据中的每一列特征缩放到一个统一的尺度。方法有很多种,我列几个最常用的。

1. 最大值最小值标准化

$$x'=\frac{x-\min}{\max - \min}.$$

$x$是原始数值,$x'$是标准化之后的数值。标准化之后,该列所有的数都将会在$[0,1]$之间。当然我们可以稍作调整,把数据缩放到$[-1,1]$的尺度上。

$$x'=\frac{x-m}{\max - m},$$

其中$m=(\max + \min)/2$。注意以上提到的最大值、最小值,都是指该列的最大值、最小值。


2. 正态标准化

$$x'=\frac{x-\mu}{\sigma}.$$

其中$\mu$和$\sigma$分别是这列数据的均值和标准差。这个过程就和把一个正态分布标准化的过程是一样的,所以也称作正态标准化(Normalization)。根据正态分布的$3\sigma$-原则,我们可以预计,在正态标准化之后,比较接近正态分布的数据在标准化后基本上都会在$[-3,3]$之间。


3. 分位数标准化

$$x'=\frac{x-Median}{IQR}.$$

其中$IQR$是四分位距,也就是第三四分位(3rd quartile)和第一四分位(1st quartile)的差,Median是这一列的中位数。分位数标准化后的数据尺度和数据本身的分散程度相关,但是通常也是在$[-3,3]$的范围内。


4. 范数标准化

$$x'=\frac{x}{\|X\|}.$$

$X$是这一列所有的数,$\|X\|$是这一列的范数,可以取1-范数,也可以取2-范数。对特征进行范数标准化之后,这列所有的数值都会是在$[0,1]$之间。

高代兄   2017-03-24 10:54



  相关主题

怎么求一个数组的移动平均数   1回答

python的dataframe如何重新排列行或者列   1回答

让DataFrame中的行按照某一列元素的绝对值从大到小排列   1回答

对于数值型变量模型怎么知道是连续变量还是离散变量?   2回答

数据一样,y却不一样的样本该怎么处理?   2回答

对进行回归分析之前,如何处理不同类型的变量?   1回答

线性回归的变量归一化的问题   1回答

训练集中重复的样本需要被删除吗?   3回答

sklearn OneHotEncoder string类型报错   1回答

怎么把collections.Counter的计数结果转为pandas的DataFrame   2回答

对pandas.DataFrame进行groupby结果中index的问题   2回答

怎么对pandas dataframe的列求众数   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!