通過一些轉換函式將特徵資料轉換成更加適合演算法模型的特徵資料的過程。
特徵的單位或者大小相差較大,或者某特徵的方差相比其他的特徵要大出幾個數量級,容易影響(支配)目標結果,使得一些演算法無法學習到其它的特徵。對資料進行標準化或者歸一化可解決此類現象
資料標準化:是消除變數間的量綱關係,從而使資料具有可比性。通過對原始資料進行變換把資料變換到均值為0,標準差為1範圍內。
公式:x』 = (x - mean)/σ
ss = standardscaler(
)#標準化資料
通過對原始資料進行變換把資料對映到(預設[0,1])之間
之所以需要將特徵規模化到一定的[0,1]範圍內,是為了對付那些標準差相當小的特徵並且保留下稀疏資料中的0值
公式:x』=(x-min(x))/(max(x)-min(x))
假如資料中有離群點,我們可以使用standardscaler進行標準化,但是標準化後的資料並不理想,因為異常點的特徵往往在標準化後容易失去離群特徵,此時就可以用robustscaler 針對離群點做標準化處理。
公式:x』=(x-median(x))/iqr(x)
iqr是interquartile range的縮寫,中文叫四分位距。對於一組樣本,我們計算出第一四分位數q1以及第三四分位數q3,iqr就是它們的差iqr=q3−q1
資料會被規模化到[-1,1]之間。也就是特徵中,所有資料都會除以最大值。這個方法對那些已經中心化均值維0或者稀疏的資料有意義。
正則化是將樣本在向量空間模型上的乙個轉換,經常被使用在分類與聚類中。
函式normalize提供了乙個快速有簡單的方式在乙個單向量上來實現這正則化的功能。正則化有l1,l2等。
data_normalized = preprocessing.normalize(data, norm=
'l2'
)
特徵的二值化是指將數值型的特徵資料轉換成布林型別的值。可以使用實用類binarizer。可以用在密集向量和稀疏矩陣上。
大於threshold的資料轉換為1,小於threshold的資料轉化為0
使用sklearn.impute中的******imputer這個類可以實現資料補充。
impleimputer(missing_values, strategy, fill_value, copy)
預設是用均值進行填補,引數如下:
missing_values: 空值的型別,預設np.nan
strategy: 可選:mean(均值), median(中位數), most_frequent(眾數), constant(用fill_value替代的數)
fill_value:以什麼值進行填補,當strategy為』constant』時可用
copy:是否建立副本
當資料是連續型,一般用均值填補。資料是分型別,用眾數填補。
from sklearn.preprocessing import onehotencoder, labelencoder
使用preprocessing中的polynomialfeatures函式實現。
比如將兩個特徵 (x_1, x_2),它的平方展開式便轉換成5個特徵(1, x_1, x_2, x_1^2, x_1x_2, x_2^2)。
from sklearn import preprocessing
import numpy as np
# 自建一組3*3的樣本
x = np.array([[
-6.,
5.,8
.],[
1.,-
9.,4
.],[
7.,3
.,-2
.]])
# 建立2次方的多項式
# 自定義e^x 轉換函式
transformer = preprocessing.functiontransformer(np.exp)
x = np.array([[
0,1]
,[2,
3]])
transformer.transform(x)
當我們拿到一批原始的資料,應該怎麼下手呢?
1、首先要明確有多少特徵,哪些是連續的,哪些是類別的。
2、檢查有沒有缺失值,對確實的特徵選擇恰當方式進行彌補,使資料完整。
3、對連續的數值型特徵進行標準化,使得均值為0,方差為1。
4、對類別型的特徵進行one-hot編碼。
5、將需要轉換成類別型資料的連續型資料進行二值化。
6、為防止過擬合或者其他原因,選擇是否要將資料進行正則化。
7、在對資料進行初探之後發現效果不佳,可以嘗試使用多項式方法,尋找非線性的關係。
8、根據實際問題分析是否需要對特徵進行相應的函式轉換。
機器學習 特徵工程 特徵預處理
定義 將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的 準確性。內容 主要有三部分 1 特徵抽取 2 特徵預處理 3 資料的降維 特徵預處理 通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料。1 包含內容 2 sklearn特徵處理api sklearn.pr...
機器學習 資料特徵預處理
資料的特徵預處理 數值型資料 標準縮放 歸一化 標準化 缺失值 類別型資料 one hot編碼 時間型別 時間的切分 歸一化處理 統計人覺得幾個特徵同等重要時,要用歸一化 目的 使得乙個特徵不會對最終結果不會造成更大影響 特點 通過對原始資料進行變換,把資料對映到 預設 0,1 之間 公式 x x ...
機器學習 資料特徵預處理
通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料 數值型資料 標準縮放 1 歸一化 2 標準化 3 缺失值 類別型資料 one hot編碼 時間型別 時間的切分 sklearn特徵處理api sklean.preprocessing 特點 通過對原始資料進行變化把資料對映到 預設為 0,1...