sklearn学习-sklearn.prepprocess.StandardScaler

官方文档点此处
源码点此处

1 api介绍

StandardScaler是通过去均值和缩放到方差单位来标准化特征(Standardize features by removing the mean and scaling to unit variance)
其方法如下:
z = x − μ s \large z = \frac{x-\mu}{s} z=sxμ
其中 μ \mu μ为均值,s为方差.

1.1 StandardScaler()

class sklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)
  • with_mean: 如果均值为0,则with_mean = False
  • with_std: 如果方差为1,则with_std = False
  • **copy:**为false则不返回副本

1.2 属性(Attributes)

  • scale_: ndarray或者None,是每个特征的相对缩放比例,根据np.sqrt(var_)计算,with_std=False时为None
  • mean_: ndarray或者None,每个特征的平均值,with_mean=False时为None
  • var_: ndarray或者None,每个特征的方差,用于计算scale_,with_std=False时为None
  • n_samples_seen: int或者array,解释没太看懂,目测为每个特征中数据的数量

1.3 方法(method)

  • fit( self , X , y = None ): 计算用来进行缩放的平均值和标准差。X是用于计算平均值和标准差的数据,y可忽略(官方文档这么写的,我还没有看源码),没有返回值
  • fit_transform( slef , X , y = None , **fit_params ): 先fit()得到缩放所需的参数,然后对数据进行缩放。 X是训练集(array类型),y是目标值(array类型),fit_params是拟合参数(dic类型)。返回值: X_new(array类型),转化后的特征
  • get_params(self , deep = True): 如果deep为True获取此评估器(estimators)的参数(params),**返回值:**参数名称到对应值的映射。
  • inverse_transform(self, X, copy = None): 按照比例,将数据复原。
  • partial_fit(self, X, y = None): 将X按每一个分量来计算平均值和标准差
  • set_params(self, **params): 设置评估器的参数
  • transform(self, X, copy=None): 执行缩放。

1.3.1 fit_transform()和transform()的区别

fit_transform()执行共有两步:

  • 第一步执行fit(),得到执行缩放的参数。
  • 第二部执行缩放。

transform仅执行缩放,通常标准化数据时,如果已经执行过fit()或者fit_transform(),则可以直接执行transform()。

2 实例

import numpy as np
from sklearn.preprocessing import StandardScaler

data = [[0,0],[1,1],[2,2]]
data2 = [[1,1],[2,2],[1,1]]
scaler = StandardScaler()
print(scaler)
# StandardScaler(copy=True, with_mean=True, with_std=True)

scaler.fit(data)
# 获取参数
print(scaler.mean_)
# [1. 1.]
print(scaler.scale_)
# [0.81649658 0.81649658]
print(scaler.var_)
# [0.66666667 0.66666667]
print(scaler.n_samples_seen_)
# 3

data_scaled = scaler.transform(data)
# 因为已经fit(),所以可以执行transform(),否则会报错。
# 若未执行fit(),可选择scaler.fit_transform(data)。
print(data_scaled)
# [[-1.22474487 -1.22474487]
# [ 0.          0.        ]
# [ 1.22474487  1.22474487]]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值