2018年4月25日 星期三

sklearn.preprocessing.StandardScaler 使用


 sklearn.preprocessing.StandardScaler 使用




用於計算數值的 z score

z score 計算方式  (x - x.mean) / x . std
計算每行數的平均值和標準差
並將每個數字以上面的算是進行計算

fit 完可取得3個屬性值

scale_ 標準差
mean_ 平均
var_ 變異數

公式

$$x=\frac{x - \mu}{\sigma}$$

code:
import pandas as pd
import numpy as np

from sklearn.preprocessing import StandardScaler

data = [[1,2,3],[8,5,6],[4,3,5]]

scaler = StandardScaler()
scaler.fit(data)

#直的一組
# (x - x.mean)/x.scale
# scale 標準差
# var_ 是變異數
# 程式在計算 z-score
# if with_std = False  每個數都減掉 平均值
# if with_mean = False 每個數在計算時 不會減去平均值

print("StandardScaler scale_ :\n" , scaler.scale_)
print("StandardScaler mean_  :\n" , scaler.mean_ )
print("StandardScaler var_  :\n" , scaler.var_ )
print("StandardScaler n_samples_seen_  :\n" , scaler.n_samples_seen_ )

print(scaler.fit_transform(data))

output:

StandardScaler scale_ :
 [2.86744176 1.24721913 1.24721913]
StandardScaler mean_  :
 [4.33333333 3.33333333 4.66666667]
StandardScaler var_  :
 [8.22222222 1.55555556 1.55555556]
StandardScaler n_samples_seen_  :
 3
[[-1.16247639 -1.06904497 -1.33630621]
 [ 1.27872403  1.33630621  1.06904497]
 [-0.11624764 -0.26726124  0.26726124]]

source code

沒有留言:

張貼留言