數值型資料:
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 時間類別 時間的劃分 下面介紹歸一化和標準化歸一化 歸一化 ...