python数据挖掘:数据归一化与标准化

前言:

数据标准化指的是将不同尺度、不同单位或不同范围的数据转化为统一的标准数值,以便进行比较和分析。
#本文用的是泰塔尼克号的数据集 可以从kaggle上找 链接:传送门

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:

一、min-max标准化(Min-Max Normalization

也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:

clip_image002

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

二、Z-score标准化方法

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:

clip_image004

其中

clip_image006

为所有样本数据的均值,

clip_image008

为所有样本数据的标准差。

归一化(Normalization 或 Min-Max Scaling)

数据归一化是将数据x按照最小值中心化后,再按照极差(最大值-最小值)进行缩放,最终数据会被收敛到【0,1】之间。
归一化公式如下:

x = \frac{x - min(x)}{max(x) - min(x)}

三: 小数标准化

    小数标准化(min-max normalization)是一种常见的数据标准化方法之一,通过对原始数据的线性变换将其映射到[0,1]区间上。
    小数标准化的优点是简单易行,能够有效地把数据压缩到[0,1]区间内,便于进行后续处理。但是需要注意,如果原始数据中存在极端值或离群值,可能导致归一化结果出现较大的波动,因此在实际应用中需要根据具体情况选择合适的数据标准化方法。
def MinMaxScale(data):
     return(data-data.min())/(data.max()-data.min())
MinMaxScale(data['Fare'])

 

四:标准化和归一化区别:

首先标准化和归一化都不会改变数据分布,只是对数据进行线性无量纲处理,通过相应的缩放和平移使数据发生改变,但并没有改变原始数据的排列顺序。
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
 
# 创建数组
data_rn = np.random.randint(-10, 10, 10).reshape(5, 2)
 
plt.subplots(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.plot(data_rn);
plt.subplot(1, 2, 2)
sns.distplot(data_rn);

 

# 归一化
scales_mm = MinMaxScaler()
data_rn_new = scales_mm.fit(data_rn).transform(data_rn)
# 标准化
scales_ss = StandardScaler()
data_rn_new1 = scales_ss.fit(data_rn).transform(data_rn)
 
plt.subplots(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.plot(data_rn_new);
plt.subplot(1, 2, 2)
plt.plot(data_rn_new1);

plt.subplots(figsize=(10, 4))
plt.subplot(1, 2, 1)
sns.distplot(data_rn_new);
plt.subplot(1, 2, 2)
sns.distplot(data_rn_new1);

从上图看出原始数据排序并未发生变化,其次归一化Normalization默认将数据缩放到【0,1】之间,但是标准化Standardiza没有严格的区间,变化后的数据没有范围,只是数据整体的均值为0,标准差为1
此外,归一化并不会消除异常值影响,其缩放比例与极值有关,因此对于存在异常值的数据,归一化并不是一个好的选择;而标准化缩放比例和整体数据集有关,因为其针对数据方差进行数据缩放。
数据处理时如何进行两种方法的选择
一般情况下,因为MinMaxScaler对异常值较为敏感,所以优先选择StandardScaler进行特征缩放,例如聚类、逻辑回归、支持向量机、PCA等。
但是在数据缩放不涉及距离、梯度等计算,并且对数据的范围有严格要求时,就可以使用MinMaxScaler进行数据缩放。
但并不是所有情况都涉需要标准化和归一化:
类似决策树模型,在节点分裂的时候计算的是信息增益,标准化后并不能大幅提高模型的计算速度;
类似概率模型,并不关心变量的值,只关心变量的分布和变量之间的条件概率。
综上所述,一般在特征无量纲化的时候,如果没有硬性规定(缩放范围、距离计算等),可以先使用标准化,效果不好再试试归一化。

总结:

    数据标准化的好处包括:
    提高模型的准确性和可靠性。标准化可以消除数据的不同尺度和单位带来的影响,使得不同变量之间的比较更加公正,从而提高模型的预测准确性和可靠性。
    方便数据的比较和分析。标准化后的数据具有相似的量级、范围和分布,可以更加方便地进行比较和分析,从而发现数据之间的关系和趋势。
    减少数据处理的复杂度。标准化可以将数据转化为统一的标准数值,从而减少数据处理的复杂度和难度,节省时间和人力成本。
    总之,数据标准化是数据分析中不可或缺的一步,可以提高模型的准确性和可靠性,方便数据的比较和分析,减少数据处理的复杂度。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值