1. sklearn資料特征預處理
通過特定的統計方法(數學方法)將資料轉換成演算法要求的資料,
數值型資料:標準縮放:
- 歸一化
- 標準化
類別型資料:
- one-hot編碼
時間型別:
- 時間的切分
sklearn特征處理的API為:sklearn.preprocessing,
1.1 歸一化
特點:通過對原始資料進行變換把資料映射到(默認為[0,1])之間,
公式:

注:作用于每一列,max為一列的最大值,min為一列的最小值,那么X’’為最終結果,mx,mi分別為指定區間值默認mx為1,mi為0,
sklearn歸一化API:sklearn.preprocessing.MinMaxScaler,
MinMaxScaler語法:
MinMaxScalar(feature_range=(0,1)…)
- 每個特征縮放到給定范圍(默認[0,1])
- MinMaxScalar.fit_transform(X)
- X:numpy array格式的資料[n_samples,n_features]
- 回傳值:轉換后的形狀相同的array
from sklearn.preprocessing import MinMaxScaler def mm(): """ 歸一化處理 :return: NOne """ mm = MinMaxScaler(feature_range=(2, 3)) data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) print(data) return None if __name__ == "__main__": mm()
運行結果:

1.2 歸一化案例:約會物件資料
相親約會物件資料,這個樣本時男士的資料,三個特征,玩游戲所消耗時間的百分比、每年獲得的飛行常客里程數、每周消費的冰淇淋公升數,然后有一個所屬類別,被女士評價的三個類別,不喜歡didnt、魅力一般small、極具魅力large也許也就是說飛行里程數對于結算結果或者說相親結果影響較大,但是統計的人覺得這三個特征同等重要,

這時候我們就需要進行歸一化處理了,
注意在特定場景下最大值最小值是變化的,另外,最大值與最小值非常容易受例外點影響,所以這種方法魯棒性較差,只適合傳統精確小資料場景,
1.3 標準化
特點:通過對原始資料進行變換把資料變換到均值為0,方差為1范圍內,
公式:

注:作用于每一列,mean為平均值,??為標準差(考量資料的穩定性)
std成為方差:

對于歸一化來說:如果出現例外點,影響了最大值和最小值,那么結果顯然會發生改變,
對于標準化來說:如果出現例外點,由于具有一定資料量,少量的例外點對于平均值的影響并不大,從而方差改變較小,
sklearn特征化API:scikit-learn.preprocessing.StandardScaler,
StandardScaler(…)
- 處理之后每列來說所有資料都聚集在均值0附近方差為1
- StandardScaler.fit_transform(X,y)
- X:numpy array格式的資料[n_samples,n_features]
- 回傳值:轉換后的形狀相同的array
- StandardScaler.mean_
- 原始資料中每列特征的平均值
- StandardScaler.std_
- 原始資料每列特征的方差
from sklearn.preprocessing import StandardScaler def stand(): """ 標準化縮放 :return: """ std = StandardScaler() data = std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]]) print(data) return None if __name__ == "__main__": stand()
運行結果:

可以通過缺失值每行或者每列的平均值、中位數來填充,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157929.html
標籤:Python
