网站服务器租用有什么好,盱眙网站建设,网站 跑马灯图片怎么做,兴县网站建设StandardScaler与scale 1、标准化概述2、两种标准化的区别 1、标准化概述 标准化主要用于对样本数据在不同特征维度进行伸缩变换#xff0c;目的是使得不同度量之间的特征具有可比性#xff0c;同时不改变原始数据的分布
一些机器学习算法对输入数据的规模和量纲非常敏感目的是使得不同度量之间的特征具有可比性同时不改变原始数据的分布
一些机器学习算法对输入数据的规模和量纲非常敏感如果输入数据的特征之间存在数量级差异可能会影响算法的准确性和性能
标准化处理的好处是我们在进行特征提取时可以忽略不同特征之间由于噪声所导致的度量差异而保留样本在各个维度上的信息分布提高算法的准确性和性能增加数据的可解释性
标准化的过程如下
计算数据列的算数平均值mean计算数据列的标准差/方差std对每个数据列分别进行转化(X-mean)/std
sklearn.preprocessing提供了两种直接对给定数据进行标准化的方式scale()函数和StandardScaler类它们之间有什么区别呢
2、两种标准化的区别 1scale()函数
import numpy as np
from sklearn.preprocessing import scale, StandardScaler# A、scale(X, axis)函数axis用来计算均值和标准差的轴默认0对每个特征进行标准化列1为对每个样本进行标准化行
# 样本数据
X np.array([[1, -1, 2], [2, 1, 0]])
# 直接标准化处理
X_scaled scale(X)
print(X_scaled)[[-1. -1. 1.][ 1. 1. -1.]]# 处理后数据的均值和方差
print(X_scaled.mean(axis0)) # [0. 0. 0.]
print(X_scaled.std(axis0)) # [1. 1. 1.]2StandardScaler类
# B、StandardScaler类
ss StandardScaler()
# 标准化处理如果在训练集上进行标准化同时可以使用保存在训练集中的参数均值、方差对测试集数据进行转化
X_scaled ss.fit_transform(X)
print(X_scaled)[[-1. -1. 1.][ 1. 1. -1.]]# 处理后数据的均值和方差
print(X_scaled.mean()) # 0.0
print(X_scaled.std()) # 1.0
# 使用训练集标准化后的均值和方差对测试集数据进行转换
print(ss.transform([[-1, 2, 0]]))[[-5. 2. -1.]]StandardScaler类与scale函数标准化的区别总结如下
scale()函数不能将原数据集训练集的均值和方差应用到新的数据集测试集如果使用全部样本标准化计算的结果是训练集和测试集共同的期望和方差StandardScaler类可以将原数据集训练集的均值和方差应用到新的数据集测试集即假设训练集的期望和测试集的期望是一样的测试集的标准化是用的训练集的期望和方差
在机器学习中我们通常是从整体中以抽样的方式抽出训练集这意味着我们默认这部分训练集可以代替整体也就是训练集的期望就是整体的期望测试集标准化时它的期望采用的正是训练集的期望所以StandardScaler类才是我们经常用的方式
更多关于StandardScaler类的使用见文章传送门