sklearn中的StandardScacler

1 StandardScaler作用:

StandardScaler是對數據集做歸一化處理的,他依據列為單位進行計算,即每個特徵為處理對象。


2 計算方法:

(原始值 - 平均值)/ 標準差


3代碼驗證:


3.1 調用StandardScaler

<code>import numpy as np
from sklearn.preprocessing import StandardScaler
np.random.seed(42)

samples = np.random.randn(10,1)
scaler = StandardScaler()
scaler.fit(samples)
/<code>

Out[11]:

<code>StandardScaler(copy=True, with_mean=True, with_std=True)
/<code>

3.2 手動實現


<code># 預測函數
def scale(series, x):
mean = np.mean(series)
std = np.std(series)
return (x-mean)/std


/<code>

3.3 驗證

<code>scale(samples[:,0], np.array([[1],[2]]))
/<code>


Out[33]:

<code>array([[0.80468598],
[2.26261185]])
/<code>


<code>scaler.transform(np.array([[1],[2]]))
/<code>


Out[29]:

<code>array([[0.80468598],
[2.26261185]])
/<code>


4 StandScaler的屬性

<code>dir(scaler)
/<code>

Out

<code>['__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getstate__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__setstate__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'_get_param_names',
'_reset',
'copy',
'fit',
'fit_transform',
'get_params',
'inverse_transform',
'mean_',
'n_samples_seen_',
'partial_fit',
'scale_',
'set_params',
'transform',
'var_',
'with_mean',
'with_std']
/<code>

看一些主要的屬性和方法

1.scale_ = 標準差

<code>np.std(samples,axis=0) == scaler.scale_
/<code>

Out[58]:

<code>array([ True,  True])
/<code>

2.mean_ = 平均值

<code>np.mean(samples,axis=0) == scaler.mean_
/<code>

Out[57]:

<code>array([ True,  True])
/<code>

3.scaler.var_ = 方差

<code>np.var(samples,axis=0) == scaler.var_
/<code>

Out[60]:

<code>array([ True,  True])
/<code>

4 inverse_transform 反向計算

<code>scaler.inverse_transform(scaler.transform(np.array([[1, 1],[2,2]])))
/<code>

Out[61]:

<code>array([[1., 1.],
[2., 2.]])
/<code>


結論

手動方法與結果相同,說明StandardScaler的計算公式為:

sklearn中的StandardScacler



分享到:


相關文章: