归一化和标准化的区别
一、归一化
对原始数据缩放到 0-1 之间,是线性变换。也叫最大最小标准化,离散标准化。
区间也可以设置为其他,一般为 0 - 1。
公式:
min 为数据最小值,max 为数据最大值,x 为原始数据值,X 为归一化后的值。
特点
虽然归一化可以保留原始数据中存在的关系,但是计算用到的最大值与最小值非常容易受异常点影响,所以只适合精确小数据量。
实现
使用 sklearn 包来实现归一化:
from sklearn.preprocessing import MinMaxScaler
preprocess = MinMaxScaler()
raw_data = [[10, 10, 100, 1000],
[5, 1, 21, 5],
[1, 2, 15, 1]]
data = preprocess.fit_transform(raw_data)
会输出 array 数据格式,可以看到最后一列中的 1000 由于数据值太大,导致 5 相对其来说只能得到 0.004,在实际数据中,如果 1000 为噪声数据就会极大的影响最终的分析结果。当然,如果数据准确且数据较少的情况下,推荐使用该方法。
Out[3]:
array([[1. , 1. , 1. , 1. ],
[0.44444444, 0. , 0.07058824, 0.004004 ],
[0. , 0.11111111, 0. , 0. ]])
使用 pandas 包
import pandas as pd
df = pd.DataFrame([[10, 10, 100, 1000],
[5, 1, 21, 5],
[1, 2, 15, 1]])
# 方法一:
df1 = df.apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)), axis=0)
# 方法二:
df2 = (df - df.min()) / (df.max() - df.min())
方法一输出,与 sklearn 结果一致,格式为 dataframe
0 1 2 3
0 1.000000 1.000000 1.000000 1.000000
1 0.444444 0.000000 0.070588 0.004004
2 0.000000 0.111111 0.000000 0.000000
方法二输出,与 sklearn 结果一致,格式为 dataframe
0 1 2 3
0 1.000000 1.000000 1.000000 1.000000
1 0.444444 0.000000 0.070588 0.004004
2 0.000000 0.111111 0.000000 0.000000
二、z-score 标准化
标准化方法很多,今天先介绍使用最多的 z-score 标准化。
这种方法是将原始数据变换到均值为 0,方差为 1 的范围内。
公式
特点
对于大数据样本量,如果出现异常点,少量异常点对于平均值影响小,方差也小,对最终结果影响不大。因此,该方法适合样本量大,数据噪点多的数据集
from sklearn.preprocessing import StandardScaler
preprocess = StandardScaler()
raw_data = [[10, 10, 100, 1000],
[5, 1, 21, 5],
[1, 2, 15, 1]]
data = preprocess.fit_transform(raw_data)
data.mean_
data.std_
# 标准差
df.std()
输出
array([[ 1.26750044, 1.40693001, 1.41138272, 1.41420503],
[-0.09053575, -0.82760589, -0.62823743, -0.70284713],
[-1.1769647 , -0.57932412, -0.78314529, -0.71135789]])
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17214242.html,如有侵权联系删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY