資料預處理第1講 標準化

2021-10-02 02:46:00 字數 1634 閱讀 3812

資料預處理,是指在使用學習演算法分析資料之前,對原始資料集作適當的變換,使得變換後的資料更適合學習演算法。一般的機器學習演算法要求對資料集做標準化的預處理。在實際處理時,我們經常忽略資料的分布形狀,而只是對資料作中心化變換,即,每個變數的值減去其均值。這樣,中心化之後的資料,變數的均值是0。

python的sklearn.preprocessing包提供了標準化的通用函式和變換類。

sklearn.preprocessing包的scale()函式提供了乙個快速簡單的標準化操作。

from sklearn import preprocessing

import numpy as np

x_train = np.array([[ 1., -1., 2.],

[ 2., 0., 0.],

[ 0., 1., -1.]])

x_scaled = preprocessing.scale(x_train)

x_scaled

縮放資料成零均值、單位方差。

x_scaled.mean(axis=0)

x_scaled.std(axis=0)

standardscaler類執行transformer api, 在訓練集上計算均值與標準差,可以在後面的檢驗集上進行相同的變換,因此,該類適合用於管道函式。

scaler = preprocessing.standardscaler().fit(x_train)

scaler.mean_

scaler.scale_

scaler.transform(x_train)

x_test = [[-1., 1., 0.]]

scaler.transform(x_test)

另外一種標準化方法,是把特徵縮放到乙個指定的範圍內,通常在[0, 1]之內。

x_train = np.array([[ 1., -1.,  2.],

[ 2., 0., 0.],

[ 0., 1., -1.]])

min_max_scaler = preprocessing.minmaxscaler()

x_train_minmax = min_max_scaler.fit_transform(x_train)

min_max_scaler.scale_

min_max_scaler.min_

x_test = np.array([[-3., -1., 4.]])

x_test_minmax = min_max_scaler.transform(x_test)

如果資料是稀疏的,即,有很多零值,那麼中心化會破壞資料的稀疏結構。maxabsscaler(),maxabs_scale()函式特別被設計用來縮放稀疏資料。

如果資料裡包括離群點(outliers), 通用方法效果不好,這是因為離群點的影響。robust_scale(),robustscaler()函式使用更穩健的估計量。

資料預處理 資料標準化

x train np.array 1,1,2 2,0,0 0,1,1 min max scaler preprocessing.minmaxscaler x train minmax min max scaler.fit transform x train print x train minmax ...

資料預處理之標準化

近來趁專案間隔期,工作不是太多,也在利用空餘時間把資料分析的完整流程用python實現一遍,也恰好整理下這幾年手頭的一些資料,順序可能比較亂,後期再慢慢調整。資料的標準化 normalization 是將資料按照一定規則縮放,使之落入乙個小的特定區間。這樣去除資料的單位限制,將其轉化為無量綱的純數值...

7 資料預處理 資料標準化

這個文章知識講解了入門的資料預處理,更多的歸一化方法請看 sklearn中常用資料預處理方法 由於資料的偏差與跨度會影響機器學習的成效,因此正規化 標準化 資料可以提公升機器學習的成效。首先由例子來講解 例子1 資料標準化 例子2 資料標準化對機器學習成效的影響 資料預處理模組 from sklea...