sklearn中的資料預處理

2021-08-03 16:19:44 字數 2598 閱讀 5514

在sklearn中有這麼幾個常用的預處理方法。另外為了將資料預處理的各個階段連線起來還可以使用pipeline。類功能

說明standardscaler

無量綱化

標準化,基於特徵矩陣的列,將特徵值轉換至服從標準正態分佈

minmaxscaler

無量綱化

區間縮放,基於最大最小值,將特徵值轉換到[0, 1]區間上

normalizer

歸一化基於特徵矩陣的行,將樣本向量轉換為「單位向量」

binarizer

二值化基於給定閾值,將定量特徵按閾值劃分

onehotencoder

啞編碼將定性資料編碼為定量資料

imputer

缺失值計算

計算缺失值,缺失值可填充為均值等

polynomialfeatures

多項式資料轉換

多項式資料轉換

functiontransformer

自定義單元資料轉換

使用單變元的函式來轉換資料函式來轉換資料

首先準備資料

from sklearn.datasets import load_iris

iris = load_iris()

train_data = iris.data

target_data = iris.target

然後是sklearn的具體實現

"""

缺失值計算

"""#缺失值計算,返回值為計算缺失值後的資料

#引數missing_value為缺失值的表示形式,預設為nan

#引數strategy為缺失值填充方式,預設為mean(均值)

from sklearn.preprocessing import imputer

imputer().fit_transform(train_data)

""" 無量綱化

"""#1.標準化

#根據【均值】和【標準差】調整

from sklearn.preprocessing import standardscaler

standardscaler().fit_transform(train_data)

#2.區間縮放

#利用最大最小值縮放

#區間縮放,返回值為縮放到[0, 1]區間的資料

from sklearn.preprocessing import minmaxscaler

minmaxscaler().fit_transform(train_data)

#3.正則化

#正則化和標準化的區別是正則化是根據【特徵均值】和【特徵值標準差】調整

from sklearn.preprocessing import normalizer

normalizer().fit_transform(train_data)

""" 對定量特徵二值化

"""#主要是閾值設定 threshold=n

#閾值設定為3,返回值為二值化後的資料

from sklearn.preprocessing import binarizer

binarizer(threshold=3).fit_transform(train_data)

""" 對定性特徵啞編碼

todo iris資料都是定量的,沒必要做

"""#啞編碼,對iris資料集的目標值,返回值為啞編碼後的資料

from sklearn.preprocessing import onehotencoder

onehotencoder().fit_transform(target_data.reshape((1,-1)))

""" 分類特徵數值化

"""from sklearn.preprocessing import labelencoder

le = labelencoder()

data_pd['l1_index'] = le.fit_transform(data_pd['l1'])

data_pd['topk_word_index'] = le.fit_transform(data_pd['topk_word'])

""" 資料變換

"""#1.多項式轉換

#引數degree為度,預設值為2

from sklearn.preprocessing import polynomialfeatures

polynomialfeatures().fit_transform(train_data)

#2.自定義轉換函式

#第乙個引數是單變元函式

#本例為對數函式的資料變換

from numpy import log1p

from sklearn.preprocessing import functiontransformer

functiontransformer(log1p).fit_transform(train_data)

注:

基於樹的方法是不需要進行特徵的歸一化,例如隨機森林,bagging 和 boosting等。

基於引數的模型或基於距離的模型,都是要進行特徵的歸一化。

sklearn 資料預處理

公式為 x mean std 計算時對每個屬性 每列分別進行。將資料按期屬性 按列進行 減去其均值,並處以其方差。得到的結果是,對於每個屬性 每列來說所有資料都聚集在0附近,方差為1。實現時,有兩種不同的方式 該語言能直接將給定的資料進行。from sklearn import preprocess...

sklearn的資料預處理

sklearn是乙個比較常用的機器學習庫,其中的sklearn.preprocessing包含了常用的預處理函式,一般在kaggle等資料競賽 拿到資料的時候,首先要觀察資料特徵,分布等資訊,然後進行資料預處理。資料預處理有利於計算機進行計算。原始資料存在的問題 1.存在缺失值 2.存在異常點及雜訊...

sklearn中常用資料預處理方法

normalize x,norm l2 axis 1,copy true,return norm false scale input vectors individually to unit norm vector length 範化是將不同變化範圍的值對映到相同的固定範圍,常見的是 0,1 此時也...