1.归一化
将训练集中某一列数值特征(假设是第i列)的值缩放到0和1之间
在sklearn当中使用preprocessing.MinMaxScaler来实现 MinMaxScaler里feature_range把数据压缩到一定范围,默认是[0,1]
2.标准化
将训练集中某一列数值特征(假设是第i列)的值缩放成均值为0,方差为1的状态
相同 | 都是对某个特征(column)进行缩放,不是对某个样本的特征向量(row)进行缩放 (身高、体重:可以对身高的数值进行标准归一化,但是不能把身高、体重混着一起处理) |
对比 在机器学习中,标准化是更常用的手段,归一化的应用场景是有限的 | 标准化更好保持了样本间距 当样本中有异常点时,归一化有可能将正常的样本“挤”到一起 比如三个值为1,2,100,假设1000个值是异常值,用归一化的方法后,正常的1,2就会被“挤”到一起。模型会需要更长的时间收敛,将样本分开。 标准化不会将样本“挤到一起” |
标准化更符合统计学假设 数值特征很大可能是服从正态分布 |
常见使用
3,实现
3.1归一化
'''
归一化
在sklearn当中使用preprocessing.MinMaxScaler来实现
MinMaxScaler里feature_range把数据压缩到一定范围,默认是[0,1]
'''
#导入sklearn机器学习库,pandas数据分析模块
from sklearn.preprocessing import MinMaxScaler
import pandas as pd #pd命名为pandas:数据分析工具
#读取数据
#数据保存在D:\Practice\Normalized.xlsx
data = pd.read_excel(r"D:\Practice\Normalized.xlsx")
pd.DataFrame(data) #DataFrame构成电子表格的数据结构
print(data)
#进行归一化处理
scaler = MinMaxScaler() #实例化
scaler = scaler.fit(data)#fit.在这里是生成min(x)和max(x)
result = scaler.transform(data)#通过接口 导出结果
print("归一化处理结果:",result)
#将归一化后的结果逆转
original=scaler.inverse_transform(result)
print("原始数据:",original)
(32条消息) python机器学习之数据的预处理(五种方式数据处理案例详解)_黎明之道的博客-CSDN博客_python机器学习数据预处理
3.2标准化
'''
sklearn中使用preprocessing.StandardScaler来实现这个功能。
'''
#导入sklearn机器学习库
from sklearn.preprocessing import StandardScaler
import pandas as pd #pd命名pandas模块:数据分析工具
#StandardScaler标准化工具
#读取数据
#数据保存在D:\Practice\Normalized.xlsx
data = pd.read_excel(r"D:\Practice\Normalized.xlsx")
pd.DataFrame(data) #DataFrame构成电子表格的数据结构
print(data)
scaler = StandardScaler()#实例化
scaler.fit(data) #fit,本质是生成均值和方差
scaler.mean_#查看均值的属性
scaler.var_#查看方差的属性
x_std = scaler.transform(data)#通过接口导出结果
'''
#一步达成结果
scaler = StandardScaler()#实例化
x_std =scaler.fit_transform(data)#一步达成结果
'''
x_std.std()#查看方差
print("标准化处理结果:",x_std)
print("均值:",x_std.mean())
print("方差:",x_std.std())
#逆转标准化
original=scaler.inverse_transform(x_std)#逆转标准化
print("原始数据:",original)