機器學習 特徵工程 特徵預處理

2021-10-10 19:32:57 字數 3282 閱讀 9586

定義:將原始資料轉換為更好地代表**模型的潛在問題的特徵的過程,從而提高了對未知資料的**準確性。

內容:主要有三部分:

1、特徵抽取

2、特徵預處理

3、資料的降維

特徵預處理:通過特定的統計方法(數學方法)將資料轉換成演算法要求的資料。

1、包含內容

2、sklearn特徵處理api:

sklearn.preprocessing

1、特點

通過對原始資料進行變換把資料對映到[0, 1](預設)之間

2、公式

x ′=

x−mi

nmax

−min

x'=\frac

x′=max

−min

x−mi

n​x ′′

=x′(

mx−m

i)+m

ix''=x'(mx-mi)+mi

x′′=x′

(mx−

mi)+

mi作用於每一列,max為一列的最大值,min為一列的最小值,那麼x』'為最終結果,mx,mi分別為指定區間值預設mx為1,mi為0。

3、目的

使得某乙個特徵對最終結果不會造成太大影響

4、缺點

當有異常點時,對最大值最小值影響太大,所以這種方法的魯棒性較差,只適合傳統精確小資料場景。

5、sklearn歸一化api

sklearn.preprocessing.minmaxscaler

6、歸一化步驟:

例項化minmaxscaler 。

通過fit_transform轉換。

from sklearn.preprocessing import minmaxscaler

# 歸一化處理

defmm()

: mm = minmaxscaler(

) data = mm.fit_transform([[

90,2,

10,40]

,[60,

4,15,

45],[

75,3,

13,46]

])print

(data)

return

none

if __name__ ==

"__main__"

: mm(

)

1、特點

通過對原始資料進行變換把資料變換到均值為0,方差為1範圍內。

2、公式

x ′=

x−me

an

σx'=\frac

x′=σx−

mean​va

r=(x

1−me

an)2

+(x2

−mea

n)2+

...n

(每個特

徵的樣本

數)

var=\frac

var=n(

每個特徵

的樣本數

)(x1

​−me

an)2

+(x2

​−me

an)2

+...​σ=

va

r\sigma=\sqrt

σ=var​

作用於每一列,mean為平均值,σ

\sigma

σ為標準差,var為方差。其中,方差考量資料的穩定性。

3、sklearn特徵化api

scikit-learn.preprocessing.standardscaler

4、總結:在已有樣本足夠多的情況下比較穩定,適合現代嘈雜大資料場景

5、歸一化與標準化對比

對於歸一化來說:如果出現異常點,影響了最大值和最小值,那麼結果顯然會發生改變。

對於標準化來說:如果出現異常點,由於具有一定資料量,少量的異常點對於平均值的影響並不大,從而方差改變較小。

6、標準化步驟

例項化standardscaler。

通過fit_transform轉換。

from sklearn.preprocessing import standardscaler

# 標準化縮放

defstand()

: std = standardscaler(

) data = std.fit_transform([[

1.,-

1.,3

.],[

2.,4

.,2.

],[4

.,6.

,-1.

]])print

(data)

return

none

if __name__ ==

"__main__"

: stand(

)

如何處理資料中的缺失值?

1、刪除:如果每行或者每列資料缺失值達到一定比例,建議放棄整行或者整列。

2、插補:可以通過缺失值每行或者每列的平均值、中位數來填充。

sklearn缺失值api:

sklearn.preprocessing.imputer imputer語法:

from sklearn.impute import ******imputer

import numpy as np

# 缺失值處理

defim()

: im = ******imputer(missing_values=np.nan, strategy=

'mean'

) data = im.fit_transform([[

1,2]

,[np.nan,3]

,[7,

6]])

print

(data)

return

none

if __name__ ==

"__main__"

: im(

)

機器學習特徵工程之特徵預處理

通過特定的統計方法 數學方法 講資料轉換成演算法要求的資料。數值型資料 歸一化標準化 缺失值類別型資料 one hot編碼 時間型別 時間的切分 在對資料進行異常值 缺失值 資料轉換等處理後,我們需要從當前資料集中選出有意義的特徵,然後輸入到演算法模型中進行訓練。對資料集進行特徵選擇主要基於以下幾方...

機器學習 特徵預處理

通過一些轉換函式將特徵資料轉換成更加適合演算法模型的特徵資料的過程。特徵的單位或者大小相差較大,或者某特徵的方差相比其他的特徵要大出幾個數量級,容易影響 支配 目標結果,使得一些演算法無法學習到其它的特徵。對資料進行標準化或者歸一化可解決此類現象 資料標準化 是消除變數間的量綱關係,從而使資料具有可...

特徵工程之特徵預處理

概念 特徵預處理是什麼呢?特徵預處理是通過統計方法 數學方法 將資料轉換成演算法要求的資料,所以特徵預處理也叫做資料預處理。下面是幾種資料預處理的方法 1 數值型資料 標準縮放 1 歸一化2 標準化 2 類別型資料 one hot編碼 3 時間類別 時間的劃分 下面介紹歸一化和標準化歸一化 歸一化 ...