【机器学习】特征预处理
特征預處理
目標
-
了解數值型數據、類別型數據特點
-
應用MinMaxScaler實現對特征數據進行歸一化
-
應用StandardScaler實現對特征數據進行標準化
1、什么是特征預處理
特征預處理:通過一些轉換函數將特征數據轉換成更加適合算法模型的特征數據過程
可以通過上面那張圖來理解
1.1 包含內容
數值型數據的無量綱化:
-
歸一化
-
標準化
1.2 特征預處理API
sklearn.preprocessing為什么我們要進行歸一化/標準化?
特征的單位或者大小相差較大,或者某特征的方差相比其他的特征要大出幾個數量級,容易影響(支配)目標結果,使得一些算法無法學習到其它的特征
約會對象數據
我們需要用到一些方法進行無量綱化,使不同規格的數據轉換到同一規格
歸一化
定義
通過對原始數據進行變換把數據映射到(默認為[0,1])之間
公式
作用于每一列,max為一列的最大值,min為一列的最小值,那么X’’為最終結果,mx,mi分別為指定區間值默認mx為1、mi為0
那么怎么理解這個過程呢?我們通過一個例子
API
- sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
- MinMaxScalar.fit_transform(X)
- X:numpy array格式的數據[n_samples,n_features]
- 返回值:轉換后的形狀相同的array
- MinMaxScalar.fit_transform(X)
數據計算
我們對以下數據進行運算,在dating.txt中。保存的就是之前的約會對象數據
milage,Liters,Consumtime,target 40920,8.326976,0.953952,3 14488,7.153469,1.673904,2 26052,1.441871,0.805124,1 75136,13.147394,0.428964,1 38344,1.669788,0.134296,1分析
-
實例化MinMaxScalar
-
通過fit_transform轉換
問題:如果數據中異常點較多,會有什么影響?
2.5 歸一化總結
注意最大值最小值是變化的,另外,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小數據場景。
3 標準化
3.1 定義
通過對原始數據進行變換把數據變換到均值為0,標準差為1范圍內
3.2 公式
作用于每一列,mean為平均值,σ為標準差
所以回到剛才異常點的地方,我們再來看看標準化
-
對于歸一化來說:如果出現異常點,影響了最大值和最小值,那么結果顯然會發生改變
-
對于標準化來說:如果出現異常點,由于具有一定數據量,少量的異常點
-
對于平均值的影響并不大,從而方差改變較小。
API
- sklearn.preprocessing.StandardScaler( )
- 處理之后每列來說所有數據都聚集在均值0附近標準差差為1
- StandardScaler.fit_transform(X)
- X:numpy array格式的數據[n_samples,n_features]
- 返回值:轉換后的形狀相同的array
數據計算
同樣對上面的數據進行處理
[[90,2,10,40], [60,4,15,45], [75,3,13,46]]分析
-
實例化StandardScaler
-
通過fit_transform轉換
標準化總結
在已有樣本足夠多的情況下比較穩定,適合現代嘈雜大數據場景。
總結
以上是生活随笔為你收集整理的【机器学习】特征预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】特征降维
- 下一篇: 【机器学习】特征降维-主成分分析