Sklearn之数据预处理——StandardScaler

导读:本篇文章讲解 Sklearn之数据预处理——StandardScaler,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

StandardScaler原理

作用:去均值和方差归一化。且是针对每一个特征维度来做的,而不是针对样本。 

标准差标准化(standardScale)使得经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:

             Sklearn之数据预处理——StandardScaler

其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

 使用sklearn提供的StandardScaler方法

from sklearn.preprocessing import StandardScaler # 标准化工具

import numpy as np


x_np = np.array([[1.5, -1., 2.],

[2., 0., 0.]])

scaler = StandardScaler()

x_train = scaler.fit_transform(x_np)

print('矩阵初值为:{}'.format(x_np))

print('该矩阵的均值为:{}\n 该矩阵的标准差为:{}'.format(scaler.mean_,np.sqrt(scaler.var_)))

print('标准差标准化的矩阵为:{}'.format(x_train))
矩阵初值为:[[ 1.5 -1. 2. ]

[ 2. 0. 0. ]]

该矩阵的均值为: [ 1.75 -0.5 1. ]

该矩阵的标准差为:[0.25 0.5 1. ]

标准差标准化的矩阵为:[[-1. -1. 1.]

[ 1. 1. -1.]]

有关StandardScaler的transform和fit_transform方法

StandardScaler类是一个用来讲数据进行归一化和标准化的类。
所谓归一化和标准化,即应用下列公式:
Sklearn之数据预处理——StandardScaler
使得新的X数据集方差为1,均值为0

问题一:
StandardScaler类中transform和fit_transform方法有什么区别?

答:fit_transform方法是fit和transform的结合,fit_transform(X_train) 意思是找出X_train的和\sigma,并应用在X_train上。
这时对于X_test,我们就可以直接使用transform方法。因为此时StandardScaler已经保存了X_train的
\mu\sigma

问题二:
为什么可以用训练集的和\sigma 来transform 测试集的数据X_test?

答:“机器学习中有很多假设,这里假设了训练集的样本采样足够充分”。

参考资料:

Sklearn之数据预处理——StandardScaler_小白一直白-CSDN博客_standardscaler

有关StandardScaler的transform和fit_transform方法 – 简书 (jianshu.com)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/103032.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!