這篇博客的主要內容python
經過一些轉換函數將特徵數據轉換成更加適合算法模型的特徵數據過程算法
sklearn.preprocessing
特徵的單位或者大小相差較大,或者某特徵的方差相比其餘的特徵要大出幾個數量級,容易影響(支配)目標結果,使得一些算法沒法學習到其它的特徵api
經過對原始數據進行變換把數據映射到(默認爲[0,1])之間函數
做用於每一列,max爲一列的最大值,min爲一列的最小值,那麼X’’爲最終結果,mx,mi分別爲指定區間值默認mx爲1,mi爲0學習
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
from sklearn.preprocessing import MinMaxScaler import pandas as pd def minmax_demo(): data = pd.read_csv("dating.txt") print(data) # 一、實例化一個轉換器類 transfer = MinMaxScaler(feature_range=(2, 3)) # 二、調用fit_transform data = transfer.fit_transform(data[['milage','Liters','Consumtime']]) print("最小值最大值歸一化處理的結果:\n", data) return None
經過對原始數據進行變換把數據變換到均值爲0,標準差爲1範圍內code
做用於每一列,mean爲平均值,σ爲標準差orm
同上歸一化介紹中使用的數據get
from sklearn.preprocessing import StandardScaler import pandas as pd def stand_demo(): data = pd.read_csv("dating.txt") print(data) transfer = StandardScaler() data = transfer.fit_transform(data[['milage','Liters','Consumtime']]) print("標準化的結果:\n",data) print("每一列特徵的平均值:\n",transfer.mean_) print("每一列特徵的方差:\n",transfer.var_) return None