Sklearn數(shù)據(jù)預處理與特征工程

目錄

1晴玖、數(shù)據(jù)與處理與特征工程概述

2、Sklearn數(shù)據(jù)預處理之Preprocessing & Impute

3逊笆、Sklearn特征選擇feature_selection

4、總結


1、概述:

數(shù)據(jù)預處理與特征工程是數(shù)據(jù)建模前流程激蹲,數(shù)據(jù)不給力,再好的算法都沒用江掩。數(shù)據(jù)決定了模型的上限学辱。算法只是無限逼近這個上限。

特征預處理與特征工程

Sklearn中的數(shù)據(jù)預處理和特征工程核心模塊:

模塊 preprocessing:幾乎包含數(shù)據(jù)預處理的所有內容环形。

模塊 impute:填補缺失值專用策泣。

模塊 feature_selection:包括特征選擇的各種方法實踐。


2抬吟、Sklearn數(shù)據(jù)預處理之Preprocessing & Impute

數(shù)據(jù)無量綱化:在機器學習算法實踐中萨咕,我們往往有著將數(shù)據(jù)轉換到同一規(guī)格或不同分布的數(shù)據(jù)轉換到某個特定的分布的需求,這種需求稱為將數(shù)據(jù)“無量綱化”拗军。無量綱化可以使矩陣和梯度為核心的算法中任洞,加快算法求解速度,使算法盡快收斂发侵,而在距離計算為核心的算法中交掏,無量綱化可以幫助我們提升模型精度,避免某一個取值過大的特征對距離計算公式造成影響刃鳄。(決策樹和樹的集成算法除外盅弛,不需要無量綱化,均能將任意數(shù)據(jù)處理的很好)

無量綱化可以是線性也可以是非線性的叔锐。線性無量綱化包括:中心化(Zero-centered或者Mean-subtraction)處理和縮放處理(scale)挪鹏。中心化的本質是讓所有記錄減去一個固定值,即讓樣本數(shù)據(jù)平移到某個位置愉烙√趾校縮放的本質是通過除以一個固定值,將數(shù)據(jù)固定在某一個范圍之中步责,取對數(shù)也是一種縮放處理返顺。

preprocessing.MinMaxScaler:當數(shù)據(jù)(x)按照最小值中心化后禀苦,再按極差(最大值-最小值)縮放,數(shù)據(jù)移動了最小值個單位遂鹊,并且會被收斂到【0-1】之間振乏,而這個過程叫做數(shù)據(jù)歸一化(Normalization,又稱Min-Max Scaling)秉扑,歸一化的數(shù)據(jù)服從正態(tài)分布慧邮。

公式如下:x^*=\frac{x-min(x)}{max(x)-min(x)}

preprocessing.StandardScaler:當數(shù)據(jù)(x)按均值(\mu )中心化后,再按標準差(\delta )縮放舟陆,數(shù)據(jù)就會服從均值為0误澳,方差為1的正態(tài)分布(即標準正態(tài)分布),而這個過程吨娜,就叫做數(shù)據(jù)標準化(Standardization脓匿,又稱Z-score normalization)。

公式如下:x^*=\frac{x-\mu }{\sigma }

StandardScaler和MinMaxScaler選哪個宦赠?

兩種歸一化方法的主要區(qū)別在于,如果數(shù)據(jù)集比較小米母,且相對噪聲少勾扭,數(shù)據(jù)跨度不大時,采用MinMaxScaler铁瞒,如果數(shù)據(jù)量較大妙色,維度較多,一般采用后者進行歸一化慧耍。

impute.SimpleImputer:用于缺失值處理身辨。

處理分類特征:

preprocessing.OneHotEncoder:特征專用,獨熱編碼芍碧,創(chuàng)建啞變量(處理名義變量)煌珊。

preprocessing.OrdinalEncoder:特征專用,能夠將分類特征轉換為分類數(shù)值泌豆。

preprocessing.LabelEncoder:標簽專用定庵,能夠將分類轉換為分類數(shù)值。

三者區(qū)別:獨熱編碼主要處理無序的名義變量踪危,而OrdinalEncoder主要處理有距變量(變量取值之間有一定的計算關系)蔬浙,LabelEncoder處理有序分類變量。

處理連續(xù)型特征:二值化與分段(分箱)

sklearn.preprocessing.Binarizer : 根據(jù)閾值將數(shù)據(jù)二值化為(0或1)贞远,用于處理連續(xù)型變量畴博。

preprocessing.KBinsDiscretizer:這是將連續(xù)型的變量劃分為分類變量的類,能夠將連續(xù)型變量排序分箱后編碼蓝仲。


3俱病、Sklearn特征選擇feature_selection

Filter過濾法:過濾法的主要對象是需要遍歷特征或升維的算法們蜜唾,而過濾法的主要目的是在維持算法表現(xiàn)的前提下,幫助算法降低它們的計算成本庶艾。

1袁余、方差過濾(VarianceThreshold) :通過特征本身的方差來篩選特征的類。比如:特征本身的方差較小咱揍,表示這個特征上基本上沒有差異颖榜,或許大部分特征值都相同,說明這個特征對樣本區(qū)分沒什么作用煤裙。因此要消除方差為0的特征掩完。

說明:方差過濾法有可能將有效特征過濾掉,導致模型效果變差硼砰;方差過濾的閾值一般設置比較小的值且蓬,對明顯不重要的特征進行預篩選,然后繼續(xù)選擇其他更優(yōu)的特征選擇方法繼續(xù)消減特征數(shù)量题翰。

2恶阴、相關性過濾:方差選擇之后,就是特征相關性問題了豹障。我們希望選擇與標簽相關性強的特征冯事,這樣的特征能夠為我們提供大量信息。如果特征與標簽無關血公,不僅會白白浪費計算內存昵仅,還有可能為模型引入噪音。在Sklearn中有三種常用的方法來判斷特征與標簽之間的相關性:卡方累魔,F(xiàn)檢驗摔笤,互信息。

? ? a垦写、卡方過濾:卡方過濾是專門針對離散型標簽(即分類問題)的相關性過濾吕世。卡方檢驗類feature_selection.chi2計算每個非負特征和標簽之間的卡方統(tǒng)計量梯澜,并依照卡方統(tǒng)計量由高到低為特征排名寞冯。再結合feature_selection.SelectKBest這個可以輸入“評分標準”來選出前K個分數(shù)最高的特征的類,我們可以借此去除最可能獨立于標簽晚伙,與我們分類無關的標簽吮龄。

? ? 卡方檢驗的本質:是推測兩組數(shù)據(jù)之間的差異,其檢驗原假設是“兩組數(shù)據(jù)是相互獨立的”咆疗±熘悖卡方檢驗返回卡方值和P值兩個統(tǒng)計量。其中卡方值很難界定有效范圍午磁,我們一般使用P值尝抖,0.05或0.01作為判斷邊界:我們希望選擇卡方值很大毡们,p值小于0.05的特征,即和標簽是相關的特征昧辽。

? ? b衙熔、F檢驗:又稱ANOVA,方差齊性檢驗搅荞,是用來捕捉每個特征與標簽之間的線性關系的過濾方法红氯。

F檢驗在數(shù)據(jù)服從正態(tài)分布時效果會非常穩(wěn)定,因此在使用F檢驗時咕痛,會先將數(shù)據(jù)轉換成服從正態(tài)分布的方式痢甘。F檢驗的本質上是尋找兩組數(shù)據(jù)之間的線性關系。返回F和P兩個統(tǒng)計量茉贡,和卡方檢驗一樣我們希望選取P值小于0.05或0.01的特征塞栅,這些特征與標簽是有顯著線性相關的。

? ??c腔丧、互信息:互信息法是用來捕捉每個特征與標簽之間的任意關系(包括線性和非線性關系)的過濾方法放椰。與F檢驗類似,既可以做分類又可以做回歸悔据。參數(shù)和用法與F檢驗一模一樣庄敛,但功能更強大,互信息既可以檢測出線性關系科汗,也可以找出非線性關系。

互信息的返回值是“每個特征與目標之間的互信息量的估計”绷雏,這個估計量在【0-1】之間头滔,為0表示兩個變量獨立,為1表示兩個變量完全相關涎显。

Embedded嵌入法:嵌入法是一種基于算法自己做決定選擇某些重要度高的特征(通過相關性過濾無關特征和通過方差過濾掉無區(qū)分度特征)坤检,因此嵌入法是過濾法的進化版。

feature_selection.SelectFromModel

過濾法使用統(tǒng)計量可以使用統(tǒng)計知識和常識查找范圍過濾特征期吓,而嵌入法通過權值系數(shù)很難界定特征的重要度閾值早歇,并且其計算速度也會和應用的算法有很大的關系。如果采用計算量大讨勤,計算緩慢的算法箭跳,嵌入法本身也會非常耗時耗力。并且潭千,特征選擇過后谱姓,還是需要自己來評估模型。

Wrapper包裝法:包裝法也是一個特征選擇和算法訓練同時進行的方法刨晴,與嵌入法十分相似屉来,它也是依賴于算法自身的選擇路翻,比如coef_屬性或feature_importances_屬性來完成特征選擇。但不同的是茄靠,我們往往使用一個目標函數(shù)作為黑盒來幫助我們選取特征茂契,而不是自己輸入某個評估指標或統(tǒng)計量的閾值。

feature_selection.RFE

包裝法效果是所有特征選擇方法中最利于提升模型表現(xiàn)的慨绳,它可以使用很少特征達到很優(yōu)秀的效果掉冶。除此之外,在特征數(shù)目相同時儡蔓,包裝法和嵌入法的效果能夠匹敵郭蕉,不過它比嵌入法算得更見緩慢,所以也不適用于太大型的數(shù)據(jù)喂江。相比之下召锈,包裝法是最能保證模型效果的特征選擇方法。


4获询、總結:經驗來說涨岁,過濾法更快速,但更粗糙吉嚣。包裝法和嵌入法更精確梢薪,比較適合具體到算法去調整,但計算量比較大尝哆,運行時間長秉撇。當數(shù)據(jù)量很大的時候,優(yōu)先使用方差過濾和互信息法調整秋泄,再上其他特征選擇方法琐馆。使用邏輯回歸時,優(yōu)先使用嵌入法恒序。使用支持向量機時瘦麸,優(yōu)先使用包裝法。迷茫的時候歧胁,從過濾法走起滋饲,看具體數(shù)據(jù)具體分析。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末喊巍,一起剝皮案震驚了整個濱河市屠缭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玄糟,老刑警劉巖勿她,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阵翎,居然都是意外死亡逢并,警方通過查閱死者的電腦和手機之剧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砍聊,“玉大人背稼,你說我怎么就攤上這事〔r颍” “怎么了蟹肘?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長俯树。 經常有香客問我帘腹,道長,這世上最難降的妖魔是什么许饿? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任阳欲,我火速辦了婚禮,結果婚禮上陋率,老公的妹妹穿的比我還像新娘球化。我一直安慰自己,他們只是感情好瓦糟,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布筒愚。 她就那樣靜靜地躺著,像睡著了一般菩浙。 火紅的嫁衣襯著肌膚如雪巢掺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天劲蜻,我揣著相機與錄音址遇,去河邊找鬼。 笑死斋竞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秃殉。 我是一名探鬼主播坝初,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钾军!你這毒婦竟也來了鳄袍?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤吏恭,失蹤者是張志新(化名)和其女友劉穎拗小,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體樱哼,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡哀九,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年剿配,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阅束。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡呼胚,死狀恐怖,靈堂內的尸體忽然破棺而出息裸,到底是詐尸還是另有隱情蝇更,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布呼盆,位于F島的核電站年扩,受9級特大地震影響,放射性物質發(fā)生泄漏访圃。R本人自食惡果不足惜厨幻,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挽荠。 院中可真熱鬧克胳,春花似錦、人聲如沸圈匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跃赚。三九已至笆搓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纬傲,已是汗流浹背满败。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叹括,地道東北人算墨。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像汁雷,于是被迫代替她去往敵國和親净嘀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348