sklearn是乙個比較常用的機器學習庫,其中的sklearn.preprocessing包含了常用的預處理函式,一般在kaggle等資料競賽**拿到資料的時候,首先要觀察資料特徵,分布等資訊,然後進行資料預處理。資料預處理有利於計算機進行計算。
原始資料存在的問題
: 1. 存在缺失值
2. 存在異常點及雜訊
3. 各個特徵的取值範圍比例不一
4. 資料表現形式不一
5. 維度過高,部分特徵間線性相關
z-score標準化就是將資料變化為服從均值為0,方差為1的正太分布,對於不知道資料最大最小值的時候適用,但是會改變資料的分布。
#第一種方法
x_scale_1 = preprocessing.scale(x)
'''[[ 1.22474487 0.26726124 1.22474487]
[ 0. -1.33630621 0. ]
[-1.22474487 1.06904497 -1.22474487]]
'''#第二種方法
scaler = preprocessing.standardscaler()
x_scale_2 = scaler.fit_transform(x)
'''[[ 1.22474487 0.26726124 1.22474487]
[ 0. -1.33630621 0. ]
[-1.22474487 1.06904497 -1.22474487]]
'''standardscaler(copy=true, with_mean=true, with_std=true)
with_mean=false #不減去均值
with_std=false #不除以標準差
minmax標準化適用於知道最大值和最小值的資料,標準化後的資料將會落在[0
,1] 區間內,如果有異常值則會將資料分布不均勻,向異常值的另一側堆積。
'''maxabs標準化根據最大值的絕對值進行標準化,標準化後的資料將會落在
[-1, 1]
scaler = preprocessing.maxabsscaler()
x_scaled = scaler.fit_transform(x)
'''before
[[ 1. 0. 2.]
[ 0. -2. 1.]
[-1. 1. 0.]]
after
[[ 1. 0. 1. ]
[ 0. -1. 0.5]
[-1. 0.5 0. ]]
'''
sklearn 資料預處理
公式為 x mean std 計算時對每個屬性 每列分別進行。將資料按期屬性 按列進行 減去其均值,並處以其方差。得到的結果是,對於每個屬性 每列來說所有資料都聚集在0附近,方差為1。實現時,有兩種不同的方式 該語言能直接將給定的資料進行。from sklearn import preprocess...
sklearn中的資料預處理
在sklearn中有這麼幾個常用的預處理方法。另外為了將資料預處理的各個階段連線起來還可以使用pipeline。類功能 說明standardscaler 無量綱化 標準化,基於特徵矩陣的列,將特徵值轉換至服從標準正態分佈 minmaxscaler 無量綱化 區間縮放,基於最大最小值,將特徵值轉換到 ...
sklearn中常用資料預處理方法
normalize x,norm l2 axis 1,copy true,return norm false scale input vectors individually to unit norm vector length 範化是將不同變化範圍的值對映到相同的固定範圍,常見的是 0,1 此時也...