特徵預處理 My way of ML2

2021-08-29 13:58:24 字數 1715 閱讀 9249

數值型資料:

1.歸一化

2.標準化

3.處理缺失值

類別型資料:

ont-hot編碼

所有的對資料處理的api都放在sklearn.preprocessing裡

api:sklearn.preprocessing.minmaxscaler(feature_range=指定縮放範圍)

特點:通過原始資料的變換,把資料對映到莫熱門的0~1之間,當然這個範圍可以通過feature_range指定

minmaxscaler(x),x為numpy array陣列型別,返回shape相同的array

為什麼要做歸一化處理呢:

歸一化除了能夠提高求解速度,還可能提高計算精度。

比如:計算樣本距離時,如果特徵向量取值範圍相差很大,如果不進行歸一化處理,則值範圍更大的特徵向量對距離的影響更大,實際情況是,取值範圍更小的特徵向量對距離影響更大,這樣的話,精度就會收到影響。

執行結果如下

可以看到,我們把結果陣列對映到了1~2之間。

歸一化的總結:

特定場景下最大最小值是變化的,如果有異常點,則影響很大,因此這只適用於高精度小資料,歸一化的魯棒性較差

(最後寫一點:對於目標是演算法工程師的同學來說,需要搞清楚其中的數學原理,但是我的目標僅僅是研發工程師,和我一樣的同學,我們需要做的是了解數學原理,運用演算法api)

前面我們說到歸一化的魯棒性較差,實際上我在後面的寫**的過程中用到歸一化的情景也不多,一些演算法都是要求對資料進行標準化處理

目的:使某乙個特徵不會對結果造成更大的影響

方差考量的是資料的穩定性。對於標準化來說,少量的異常點對平均值的影響較小,誤差較小

執行結果

這裡看不懂沒關係,後面我們只需要把資料處理,然後得到這些標準化後的資料放到演算法裡去計算就可以了

標準化總結:

穩定性強,適合噪音多的大資料環境,以後大部分第一選擇都是標準化。

資料缺失是收集資料中很常見的現象,比如物聯網的感測器收集的資料很可能缺失很多,這個時候我們就需要對缺失值進行處理了

對缺失值進行處理的方法一般有兩種,乙個是刪除,也就是直接刪除資料缺失的樣本,乙個是填補,用行或者列的平均值或者中位數來填補缺失的資料

這裡需要學習一些numpy的知識,比如numpy.dropna()就是刪除np.nan型別的資料行或者列(axis指定)。numpy.fillna()就是填充

當然我們sklearn裡也有處理處理缺失值的api

*sklearn.preprocessing.imputer(missing_values=「nan」,straegy=「mean」,axis=0)*代表的是:把nan用列的平均值填充

特徵預處理

一 定義 通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料。二 方法 一 數值型資料 標準縮放 1 歸一化 2 標準化 3 缺失值 二 類別型資料 one hot編碼 三 時間型別 時間的切分 三 sklearn特徵處理api sklearn.preprocessing 四 歸一化 一 原...

特徵預處理,特徵選擇

統一量綱 特徵規格不一樣,不能放在一起比較。主要看模型,比如樹模型就不太需要,而計算距離之類的模型,或者神經網路就需要 主要有標準化,區間放縮,歸一化。標準化 標準化,均值為0,方差為1 from sklearn.preprocessing import standardscaler 標準化,返回值...

特徵工程之特徵預處理

概念 特徵預處理是什麼呢?特徵預處理是通過統計方法 數學方法 將資料轉換成演算法要求的資料,所以特徵預處理也叫做資料預處理。下面是幾種資料預處理的方法 1 數值型資料 標準縮放 1 歸一化2 標準化 2 類別型資料 one hot編碼 3 時間類別 時間的劃分 下面介紹歸一化和標準化歸一化 歸一化 ...