特徵預處理

2021-10-04 06:15:00 字數 3684 閱讀 9701

一、定義

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

二、方法

(一)數值型資料

標準縮放:

1、歸一化

2、標準化

3、缺失值

(二)類別型資料

one-hot編碼

(三)時間型別

時間的切分

三、sklearn特徵處理api

sklearn.preprocessing

四、歸一化

(一)原理

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

(二)目的

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

(三)公式

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

(四)sklearn歸一化api

sklearn.preprocessing.minmaxscaler

(五)minmaxscaler語法

minmaxscaler(feature_range=(0,1)…)

每個特徵縮放到給定範圍(預設[0,1])

minmaxscaler.fit_transform(x)

x:numpy array格式的資料[n_samples,n_features]

返回值:轉換後的形狀相同的array

(六)步驟

1、例項化minmaxscaler

2、通過fit_transform轉換

例如:from sklearn.preprocessing import minmaxscaler

def mm():

「」"歸一化處理

:return:none

「」"mm=minmaxscaler()

data=mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]])

print(data)

ifname==『main』:

mm()

返回值:

[[1. 0. 0. 0. ]

[0. 1. 1. 0.83333333]

[0.5 0.5 0.6 1. ]]

(七)應用場景

注意在特定場景下最大值最小值是變化的,另外,最大值與最小值非常容易受異常點影響,所以這種方法魯棒性較差,只適合傳統精確小資料場景。

五、標準化

(一)原理

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

(二)目的

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

(三)公式

注:作用於每一列,mean為平均值,σ為標準差

(四)與歸一化進行比較

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

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

(五)sklearn歸一化api

scikit-learn.preprocessing.standardscaler

(六)standardscaler語法

standardscaler(…)處理之後每列來說所有資料都聚集在均值0標準差為1附近

1、standardscaler.fit_transform(x)

x:numpy array格式的資料[n_samples,n_features]

返回值:轉換後的形狀相同的array

2、standardscaler.mean_

原始資料中每列特徵的平均值

3、standardscaler.std_

原始資料每列特徵的方差

(七)步驟

1、例項化standardscaler

2、通過fit_transform轉換

例如:from sklearn.preprocessing import minmaxscaler,standardscaler

def stand():

「」"標準化縮放

:return:none

「」"std=standardscaler()

data=std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]])

print(data)

ifname==『main』:

stand()

返回值[[-1.06904497 -1.35873244 0.98058068]

[-0.26726124 0.33968311 0.39223227]

[ 1.33630621 1.01904933 -1.37281295]]

(八)應用場景

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

六、缺失值

(一)缺失值處理方法

(二)sklearn缺失值api

sklearn.preprocessing.imputer

(三)imputer語法

imputer(missing_values=『nan』,strategy=『mean』,axis=0)完成缺失值插補

imputer.fit_transform(x)

x:numpy array格式的資料[n_samples,n_features]

返回值:轉換後的形狀相同的array

(四)步驟

1、初始化imputer,指定」缺失值」,指定填補策略,指定行或列

2、呼叫fit_transform

例如:from sklearn.preprocessing import minmaxscaler,standardscaler,imputer

import numpy as np

def im():

「」"缺失值處理

:return:none

「」"#nan,nan

im=imputer(missing_values=『nan』,strategy=『mean』,axis=0)

data=im.fit_transform([[1, 2],[np.nan, 3],[7, 6]])

print(data)

return none

ifname==『main』:

im()

(五)關於np.nan(np.nan)

1、 numpy的陣列中可以使用np.nan/np.nan來代替缺失值,屬於float型別

2、如果是檔案中的一些缺失值,可以替換成nan,通過np.array轉化成float型的陣列即可

特徵預處理,特徵選擇

統一量綱 特徵規格不一樣,不能放在一起比較。主要看模型,比如樹模型就不太需要,而計算距離之類的模型,或者神經網路就需要 主要有標準化,區間放縮,歸一化。標準化 標準化,均值為0,方差為1 from sklearn.preprocessing import standardscaler 標準化,返回值...

特徵工程之特徵預處理

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

特徵工程之特徵預處理

在前面我們分別討論了特徵工程中的特徵選擇與特徵表達,本文我們來討論特徵預處理的相關問題。主要包括特徵的歸一化和標準化,異常特徵樣本清洗與樣本資料不平衡問題的處理。由於標準化和歸一化這兩個詞經常混用,所以本文不再區別標準化和歸一化,而通過具體的標準化和歸一化方法來區別具體的預處理操作。z score標...