丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社
發(fā)送

0

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

本文作者: AI研習(xí)社 2017-11-07 18:54
導(dǎo)語:這個問題是典型的特征工程(Feature Engineering)的范疇,這個領(lǐng)域的奇淫巧技實(shí)在太多。

雷鋒網(wǎng)按:本文原作者阿薩姆,本文整理自作者在知乎《如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?》問題下的回答。雷鋒網(wǎng)已獲得轉(zhuǎn)載授權(quán)。

問題詳情:

1. 特征類型混雜: 連續(xù)變量,離散變量,描述變量共存

2. 不同變量之間取值差異大: 例如有些變量取值在 0~1 但有些取值為 10000-50000

以 KDD99 網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)集為例:

KDD Cup 1999 Data

總共 41 個特征,其中 3 個 categorical,5 個 binary,剩下 33 個均為連續(xù)型特征。

下圖為訓(xùn)練集 downsample 了 5W 條數(shù)據(jù)后針對連續(xù)型特征的統(tǒng)計:

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

可見,不同特征的取值范圍差異極大,特征本身分布也是很散(似乎有點(diǎn)長尾)。

面對這樣混合的特征類型,而且特征取值范圍差異極大的情況,如何進(jìn)行有效而 reasonable 的特征選擇?

回答:

這個問題是典型的特征工程(Feature Engineering)的范疇,這個領(lǐng)域的奇淫巧技實(shí)在太多,只能粗略的說一下對這種數(shù)據(jù)類型的基本處理流程。我反對直接進(jìn)行簡單粗暴的歸一化或標(biāo)準(zhǔn)化,往往其風(fēng)險大于收益。

首先我們假設(shè),做數(shù)據(jù)處理的前提是我們不知道什么分類模型效果最好,且大部分分類器無法直接處理 “描述變量”(categorical variable)。當(dāng)然,我們知道以決策樹為原型的模型可以處理不同的數(shù)據(jù)類型,且對于變量取值范圍比較不敏感,還自帶特征選擇 (如計算節(jié)點(diǎn)分裂的基尼指數(shù))。因此很多時候在進(jìn)行復(fù)雜操作前,不妨先使用隨機(jī)森林 (Random Forest) 或其他集成學(xué)習(xí)的樹模型暴力做一下。有類似良好的特性 (能自動選擇有效特征) 的分類器還包括:

  • 特定種類的深度網(wǎng)絡(luò)。

  • L1 范數(shù)正則化后的線性模型等。

從本質(zhì)上看,上面提到的這幾種做法其實(shí)就是嵌入式特征選擇 (Embedding Feature Selection),屬于偷懶的一站式操作:) 而這個答案的重心在于將數(shù)據(jù)處理成可被一般分類器所使用的形態(tài),因?yàn)樵诤芏嗲闆r下我們無法使用這種偷懶的做法。

回答的結(jié)構(gòu)如下:

  1. 移除不必要的數(shù)據(jù),降低變量的維度。

  2. 對描述變量進(jìn)行轉(zhuǎn)化,使其適用于大部分的分類器。

  3. 分析數(shù)據(jù)之間的相關(guān)性,如共線性。如果有必要,進(jìn)行特征選擇。

  4. 歸一化和標(biāo)準(zhǔn)化。

  5. * 懶人選項(xiàng):選用適當(dāng)?shù)?(對高方差數(shù)據(jù)魯棒性好) 的分類模型。

上面這個順序的邏輯是 1. 初步降低數(shù)據(jù)維度 2. 再將描述變量轉(zhuǎn)化為其他算法可以分析的格式 3. 分析是否需要特征選擇 4. 進(jìn)行歸一化和標(biāo)準(zhǔn)化。一般而言,我們可能會根據(jù)情況選擇其中的一部分處理方法,比較靈活。

如果 1-4 對你來說太復(fù)雜,不妨先試試捷徑方法 5。

既然答主提到這個 99 年 KDD 的數(shù)據(jù),那么我就以這個數(shù)據(jù)集為例來回答。

1. 移除不必要的變量,降低數(shù)據(jù)維度

在進(jìn)行各種維度變換和復(fù)雜的處理前,一般我們希望去掉無用和低貢獻(xiàn)度的變量,這會大大降低后續(xù)的處理難度。

1.1. 移除單一取值變量 (unique value variable)

單一值變量:整個數(shù)據(jù)中該值取值恒定,因此對于模型無貢獻(xiàn)。

如下圖所示,在除了預(yù)測值 (Target) 以外的 41 個值中,有兩個變量 num_outbound_cmds 和 is_host_login 在整個數(shù)據(jù)集中取值唯一,應(yīng)該被移除。于是我們成功的去掉了兩個無用變量,此時也就不用思考這兩個變量對于整體取值范圍的影響。

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

1.2. 移除低方差 (low variance) 的變量

和單一取值的變量相似,低方差的變量雖然取值不唯一,但整體的變化很小。我們可以通過人為設(shè)定閾值 (threshold) 來去除這種變量。以一個變量只有兩個取值為例,我們可以設(shè)定閾值來去掉低方差的變量。

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

如上圖所示,此處所調(diào)用的 Sklearn 的 API 還有一個作用就是自動移除單一取值的數(shù)據(jù),一舉兩得。

更多資料請移步 Sklearn 官方文檔: 1.13. Feature selection

2. 轉(zhuǎn)化描述變量 (convert categorical var to numeric)

如上文描述的,我們在不假設(shè)分類器的前提下,必須對描述變量轉(zhuǎn)化為數(shù)字類型變量,因?yàn)榇蟛糠炙惴o法直接處理描述變量。

描述變量一般分兩種,其轉(zhuǎn)換方法不同:

1. 有序變量。比如小學(xué),初中,高中,大學(xué)。又比如非常滿意,滿意,不滿意,極不滿意。這類變量中的可取值之間都有一種順序關(guān)系,因此不能單純的用獨(dú)熱編碼 (One-hot Encoding) 來轉(zhuǎn)化,因?yàn)樵谵D(zhuǎn)化過程中會失去順序信息。在這種情況下可以由如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?來轉(zhuǎn)換, N 代表該變量可取的值得總數(shù)。此處也要注意,不是每種順序?qū)γ總€問題都是有意義的。比如假設(shè)一個變量可以取三個值:“頭等艙”,“商務(wù)艙”,“經(jīng)濟(jì)艙”,對于票價而言是有順序的,但對于到達(dá)時間,這三者是無序的。

2. 無序變量。比如一個公司有三個部門: 研發(fā),測試,HR。

  • 在分類問題中我們可以簡單的使用獨(dú)熱編碼進(jìn)行轉(zhuǎn)化。

  • 若在聚類問題中,我們一般希望度量其差異性,比較常見的是 Value Difference Metrics (VDM) 這一類。說白了就是直接看兩個點(diǎn)的這個維度是否相同,若有 N 個無序變量,我們一般構(gòu)建一個如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?的矩陣來描述差異度(Degree of Difference)。

3. 變量相關(guān)性分析及特征選擇

在進(jìn)行建模前,可以快速的查看變量之間的相關(guān)性,這對下一步的是否進(jìn)行特征選擇有比較重要的意義。我們假設(shè)在這一步的時候,已經(jīng)去除了多余變量且所有描述變量都轉(zhuǎn)化為了數(shù)字型變量。

3.1. 相關(guān)性圖譜 (correlation matrix)

計算變量之間的相關(guān)性可以得到一個矩陣,用于描述每兩個變量這件的相關(guān)性 (-1 代表負(fù)相關(guān),0 代表無關(guān),1 代表正相關(guān))。在可視化后 KDD99 數(shù)據(jù)的相關(guān)性圖譜后可得到下圖。

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

做相關(guān)性圖譜的原因是為了看一下是否存在大量的共線性 (colinearity)。 最極端的特例就是雖然特征很多,但事實(shí)上之間互相關(guān)聯(lián)性很強(qiáng),存在強(qiáng)線性關(guān)系,對于模型幫助不大。

以 KDD 的數(shù)據(jù)為例,我們可以看出變量間存在一些共線性,但并不算是極端嚴(yán)重。這告訴我們可以兩個可以嘗試的方法來處理這些變量:

  • 特征選擇 (feature selection)

  • 維度壓縮 (dimensionality reduction), 例如主成分分析 (PCA)

如果我們足夠幸運(yùn),看到了零共線性 (現(xiàn)實(shí)情況是不會發(fā)生的) 或者低共線性,我們大可以暫時跳過特征選擇。當(dāng)然,略過特征選擇的風(fēng)險是某個變量可能和我們要去預(yù)測的事情完全無關(guān)。

3.2. 特征選擇

特征選擇是一個很大的話題,簡單說就是從多個變量中選擇出一部分對于分類比較重要的特征,拋棄冗余變量 (redundant variables)。

統(tǒng)計學(xué)習(xí)中一般用子集搜索 (subset),包括全搜索 (exhaustive search),貪心算法類搜索 (正向搜索,逆向搜索,和從兩邊同時搜索)。

機(jī)器學(xué)習(xí)中一般有三種特征選擇:

  1. 過濾式 (filter): 其實(shí)我們剛才查看相關(guān)性圖譜就是一種過濾式搜索的思路。在這種方法中,我們僅通過評價不同變量之間的統(tǒng)計相關(guān)性來進(jìn)行特征選擇,如 Chi Squared 和 Pearson。

  2. 包裹式 (wrapper): 和過濾式不同,包裹式特征選擇引入了分類器,通過評估不同的變量在相同分類器下的表現(xiàn)來選擇最優(yōu)的變量。注意,選擇出的 "最優(yōu)變量" 可能僅僅在當(dāng)前分類器下表現(xiàn)好,后續(xù)使用其他分類器效果很難保證。

  3. 嵌入式 (embedding): 思路是建立分類器的同時選擇有效的變量,文章開頭處提到的 L1 正則化和很多決策樹模型都有這個特質(zhì)。

3.3. 降維: 主成分分析 (PCA) 和流形學(xué)習(xí) (manifold learning)

以本題中的 KDD 數(shù)據(jù)為例,或許降維是一個比特征選擇更加劃算的做法。主成分分析即將高維數(shù)據(jù)投射到一個低維空間中來壓縮和合并。

在非線性降維領(lǐng)域,流形學(xué)習(xí) (manifold learning) 現(xiàn)在正大行其道,有興趣的朋友可以關(guān)注一下。

此處必須提醒大家 PCA 和大部分流形學(xué)習(xí)都要求數(shù)據(jù)的歸一化,我們稍后會簡單介紹。

4. 歸一化 (Normalization) 和標(biāo)準(zhǔn)化 (Standardization)

歸一化和標(biāo)準(zhǔn)化是兩種常見的數(shù)據(jù)轉(zhuǎn)換方法,但這兩種方法有一定的風(fēng)險,我并不推薦一上來就先進(jìn)行歸一化或者標(biāo)準(zhǔn)化。這類數(shù)據(jù)轉(zhuǎn)化方法存在的意義有很多,比較常見的應(yīng)用是統(tǒng)距離度量 (distance estimation) 時的范圍。簡單來說,以 KNN 為例,我們計算兩個數(shù)據(jù)點(diǎn)的相似度為其幾何距離,那么如果不同變量的可取值區(qū)間不同甚至相差巨大,那么可能會有部分變量有過大的影響力。

歸一化和標(biāo)準(zhǔn)化的目標(biāo)都是將元數(shù)據(jù)投射到一個規(guī)范區(qū)間中,如 [0,1] 。給出一個最簡單的標(biāo)準(zhǔn)化例子,假設(shè)原數(shù)據(jù) [1,2,3,4,5]通過一種最簡單的轉(zhuǎn)化如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?為 [0,0.25,0.5,0.75,1] 。由此可見我們可以人為的控制數(shù)據(jù)的投射范圍,但不可避免的數(shù)據(jù)中的一部分信息可能會遺失。

相關(guān)的算法還有很多且資料很多,不在此贅述,如主成分分析中使用的 z-score 規(guī)范化: 如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

5. 什么模型對于高方差且變量類型復(fù)合比較友善?

像我在答案開頭提到的,比較穩(wěn)定的是以決策樹為基學(xué)習(xí)器的集成學(xué)習(xí):

  • 在分類問題中,不妨先試試隨機(jī)森林 (Random Forests)。

  • 回歸問題中可以試試 Gradient Boosted Tree Regression。

這一類模型都可以很好的做到降低高方差、處理非線性關(guān)系、選擇有效特征。對于 KDD99 的比賽,如果那個時候已經(jīng)有了隨機(jī)森林 (2001 年的論文) 的話,可能冠軍會是 Breiman 吧:)

祝大家煉丹愉快 (?????)


不靈叔@雷鋒網(wǎng)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

如何有效處理特征范圍差異大且類型不一的數(shù)據(jù)?

分享:
相關(guān)文章

編輯

聚焦數(shù)據(jù)科學(xué),連接 AI 開發(fā)者。更多精彩內(nèi)容,請?jiān)L問:yanxishe.com
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說