資料預處理的四種方式
阿新 • • 發佈:2018-11-12
資料預處理
調整資料尺寸
- 讓所有的屬性按照相同的尺度來度量資料;
- 梯度下降演算法
- 神經網路
- SVM
- 迴歸演算法
- K 近鄰演算法
# 調整資料尺度(0..)
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
# 匯入資料
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age' , 'class']
data = pd.read_csv(filename, names=names)
# 將資料分為輸入資料和輸出結果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
scaler = MinMaxScaler(feature_range=(0, 1))
# 資料轉換
rescaledX = scaler.fit_transform(X)
# 設定資料的列印格式
np.set_printoptions(precision=3)
print(rescaledX)
正態化資料
- 線性迴歸
- Logistic 迴歸
- 線性判別分析
# 標準化資料
import numpy as np
import pandas as pd
from sklearn.preprocessing import Normalizer
# 匯入資料
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pd.read_csv(filename, names=names)
# 將資料分為輸入資料和輸出結果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
scaler = Normalizer().fit(X)
# 資料轉換
rescaledX = scaler.transform(X)
# 設定資料的列印格式
np.set_printoptions(precision=3)
print(rescaledX)
標準化資料
- 把每一行資料的距離處理成 1;
- 適合處理稀疏資料(有很多為 0 的資料);
- 對使用權重輸入的神經網路和使用距離輸入的 K 近鄰演算法的準確度的提升有顯著作用。
# 標準化資料
import numpy as np
import pandas as pd
from sklearn.preprocessing import Normalizer
# 匯入資料
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pd.read_csv(filename, names=names)
# 將資料分為輸入資料和輸出結果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
scaler = Normalizer().fit(X)
# 資料轉換
rescaledX = scaler.transform(X)
# 設定資料的列印格式
np.set_printoptions(precision=3)
print(rescaledX)
二值化資料
- 大於閾值設定為 1 ,小於閾值的設定為 0;
- 在生產明確值或特徵工程增加屬性的時候使用;
# 二值資料
import numpy as np
import pandas as pd
from sklearn.preprocessing import Binarizer
# 匯入資料
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pd.read_csv(filename, names=names)
# 將資料分為輸入資料和輸出結果
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
transform = Binarizer(threshold=0.0).fit(X)
# 資料轉換
newX = transform.transform(X)
# 設定資料的列印格式
np.set_printoptions(precision=3)
print(newX)