機器學習 --2 特徵預處理 之 資料標準化
阿新 • • 發佈:2018-12-24
歸一化:
- API位置
sklearn.preprocessing
- 歸一化:
特點:通過對原始資料進行變換把資料對映到(預設為[0,1])之間
注意也可以通過指定MinMaxScalar 裡邊的feature_range 來指定縮放的範圍 - 示例程式碼
from sklearn.preprocessing import MinMaxScaler # 歸一化 # 最小最大縮放(MinMaxScaler) # 按照最大最小值縮放到 0-1 區間(也可以指定feature_range) def mm(): mm = MinMaxScaler(feature_range=(0,1)) data = mm.fit_transform([[90, 2, 10, 40], [60, 4, 15, 45], [75, 3, 13, 46]]) print(data) return None if __name__=='__main__': mm()
標準化
- API位置
from sklearn.preprocessing import StandardScaler
- 標準化
使用標準差,使得在樣本足夠多的情況下,比較穩定,適應資料比較嘈雜的環境(避免異常點過分影響) - 示例程式碼
from sklearn.preprocessing import StandardScaler import numpy as np # 缺失值處理 # 版本更新: # DeprecationWarning: Class Imputer is deprecated; Imputer was deprecated in version 0.20 and will be removed in 0.22. Import impute.SimpleImputer from sklearn instead. # warnings.warn(msg, category=DeprecationWarning) from sklearn.preprocessing import Imputer # 標準化縮放 def stand(): std = StandardScaler() data = std.fit_transform([[1., -1., 3.], [2., 4., 2.], [4., 6., -1.]]) print(data) return None # 缺失值處理 # 可以刪除(不建議) # 可以插補(使用平均值 或者 中位數) 一般按列填補 def im(): # 指定缺失的是nan 軸用0軸(按列) im = Imputer(missing_values='NaN', strategy='mean', axis=0) data = im.fit_transform([[1, 2], [np.nan, 3], [7, 6]]) print(data) return None if __name__ == "__main__": stand() im() ''' [[1. 2.] [4. 3.] [7. 6.]] '''