轉(zhuǎn) 機(jī)器學(xué)習(xí)中的數(shù)據(jù)清洗與特征處理綜述
摘要
本文轉(zhuǎn)自美團(tuán)技術(shù)團(tuán)隊(duì)(見(jiàn)轉(zhuǎn)載鏈接)描函,非常優(yōu)秀的博文锨并,該文通過(guò)一個(gè)實(shí)例來(lái)介紹特征選擇和處理上的作法聪蘸,很有借鑒意義数焊,轉(zhuǎn)發(fā)做記錄
背景
隨著美團(tuán)交易規(guī)模的逐步增大辛润,積累下來(lái)的業(yè)務(wù)數(shù)據(jù)和交易數(shù)據(jù)越來(lái)越多膨处,這些數(shù)據(jù)是美團(tuán)做為一個(gè)團(tuán)購(gòu)平臺(tái)最寶貴的財(cái)富。通過(guò)對(duì)這些數(shù)據(jù)的分析和挖掘砂竖,不僅能給美團(tuán)業(yè)務(wù)發(fā)展方向提供決策支持灵迫,也為業(yè)務(wù)的迭代指明了方向。目前在美團(tuán)的團(tuán)購(gòu)系統(tǒng)中大量地應(yīng)用到了機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘技術(shù)晦溪,例如個(gè)性化推薦瀑粥、篩選排序、搜索排序三圆、用戶(hù)建模等等狞换,為公司創(chuàng)造了巨大的價(jià)值避咆。
本文主要介紹在美團(tuán)的推薦與個(gè)性化團(tuán)隊(duì)實(shí)踐中的數(shù)據(jù)清洗與特征挖掘方法。主要內(nèi)容已經(jīng)在內(nèi)部公開(kāi)課"機(jī)器學(xué)習(xí)InAction系列"講過(guò)修噪,本博客的內(nèi)容主要是講座內(nèi)容的提煉和總結(jié)查库。
綜述
如上圖所示是一個(gè)經(jīng)典的機(jī)器學(xué)習(xí)問(wèn)題框架圖。數(shù)據(jù)清洗和特征挖掘的工作是在灰色框中框出的部分黄琼,即“數(shù)據(jù)清洗=>特征樊销,標(biāo)注數(shù)據(jù)生成=>模型學(xué)習(xí)=>模型應(yīng)用”中的前兩個(gè)步驟。
灰色框中藍(lán)色箭頭對(duì)應(yīng)的是離線(xiàn)處理部分脏款。主要工作是
- 從原始數(shù)據(jù)围苫,如文本、圖像或者應(yīng)用數(shù)據(jù)中清洗出特征數(shù)據(jù)和標(biāo)注數(shù)據(jù)撤师。
- 對(duì)清洗出的特征和標(biāo)注數(shù)據(jù)進(jìn)行處理剂府,例如樣本采樣,樣本調(diào)權(quán)剃盾,異常點(diǎn)去除腺占,特征歸一化處理,特征變化痒谴,特征組合等過(guò)程衰伯。最終生成的數(shù)據(jù)主要是供模型訓(xùn)練使用。
灰色框中綠色箭頭對(duì)應(yīng)的是在線(xiàn)處理的部分积蔚。所做的主要工作和離線(xiàn)處理的類(lèi)似嚎研,主要的區(qū)別在于
1.不需要清洗標(biāo)注數(shù)據(jù),只需要處理得到特征數(shù)據(jù)库倘,在線(xiàn)模型使用特征數(shù)據(jù)預(yù)測(cè)出樣本可能的標(biāo)簽。
2.最終生成數(shù)據(jù)的用處论矾,最終生成的數(shù)據(jù)主要用于模型的預(yù)測(cè)教翩,而不是訓(xùn)練。
在離線(xiàn)的處理部分贪壳,可以進(jìn)行較多的實(shí)驗(yàn)和迭代饱亿,嘗試不同的樣本采樣、樣本權(quán)重闰靴、特征處理方法彪笼、特征組合方法等,最終得到一個(gè)最優(yōu)的方法蚂且,在離線(xiàn)評(píng)估得到好的結(jié)果后配猫,最終將確定的方案在線(xiàn)上使用。
另外杏死,由于在線(xiàn)和離線(xiàn)環(huán)境不同泵肄,存儲(chǔ)數(shù)據(jù)捆交、獲取數(shù)據(jù)的方法存在較大的差異。例如離線(xiàn)數(shù)據(jù)獲取可以將數(shù)據(jù)存儲(chǔ)在Hadoop腐巢,批量地進(jìn)行分析處理等操作品追,并且容忍一定的失敗。而在線(xiàn)服務(wù)獲取數(shù)據(jù)需要穩(wěn)定冯丙、延時(shí)小等肉瓦,可以將數(shù)據(jù)建入索引、存入KV存儲(chǔ)系統(tǒng)等胃惜。后面在相應(yīng)的部分會(huì)詳細(xì)地介紹泞莉。
本文以點(diǎn)擊下單率預(yù)測(cè)為例,結(jié)合實(shí)例來(lái)介紹如何進(jìn)行數(shù)據(jù)清洗和特征處理蛹疯。
首先介紹下點(diǎn)擊下單率預(yù)測(cè)任務(wù)戒财,其業(yè)務(wù)目標(biāo)是提高團(tuán)購(gòu)用戶(hù)的用戶(hù)體驗(yàn),幫助用戶(hù)更快更好地找到自己想買(mǎi)的單子捺弦。這個(gè)概念或者說(shuō)目標(biāo)看起來(lái)比較虛饮寞,我們需要將其轉(zhuǎn)換成一個(gè)技術(shù)目標(biāo),便于度量和實(shí)現(xiàn)列吼。最終確定的技術(shù)目標(biāo)是點(diǎn)擊下單率預(yù)估幽崩,去預(yù)測(cè)用戶(hù)點(diǎn)擊或者購(gòu)買(mǎi)團(tuán)購(gòu)單的概率。我們將預(yù)測(cè)出來(lái)點(diǎn)擊或者下單率高的單子排在前面寞钥,預(yù)測(cè)的越準(zhǔn)確慌申,用戶(hù)在排序靠前的單子點(diǎn)擊、下單的就越多理郑,省去了用戶(hù)反復(fù)翻頁(yè)的開(kāi)銷(xiāo)蹄溉,很快就能找到自己想要的單子。離線(xiàn)我們用常用的衡量排序結(jié)果的AUC指標(biāo)您炉,在線(xiàn)的我們通過(guò)ABTest來(lái)測(cè)試算法對(duì)下單率柒爵、用戶(hù)轉(zhuǎn)化率等指標(biāo)的影響。
特征使用方案
在確定了目標(biāo)之后赚爵,下一步棉胀,我們需要確定使用哪些數(shù)據(jù)來(lái)達(dá)到目標(biāo)。需要事先梳理哪些特征數(shù)據(jù)可能與用戶(hù)是否點(diǎn)擊下單相關(guān)冀膝。我們可以借鑒一些業(yè)務(wù)經(jīng)驗(yàn)唁奢,另外可以采用一些特征選擇、特征分析等方法來(lái)輔助我們選擇窝剖。具體的特征選擇麻掸,特征分析等方法我們后面會(huì)詳細(xì)介紹。
從業(yè)務(wù)經(jīng)驗(yàn)來(lái)判斷赐纱,可能影響用戶(hù)是否點(diǎn)擊下單的因素有:
- 距離论笔,很顯然這是一個(gè)很重要的特征采郎。如果購(gòu)買(mǎi)一個(gè)離用戶(hù)距離較遠(yuǎn)的單子,用戶(hù)去消費(fèi)這個(gè)單子需要付出很多的代價(jià)狂魔。 當(dāng)然蒜埋,也并不是沒(méi)有買(mǎi)很遠(yuǎn)單子的用戶(hù),但是這個(gè)比例會(huì)比較小最楷。
- 用戶(hù)歷史行為整份,對(duì)于老用戶(hù),之前可能在美團(tuán)有過(guò)購(gòu)買(mǎi)籽孙、點(diǎn)擊等行為烈评。
- 用戶(hù)實(shí)時(shí)興趣。
- 單子質(zhì)量犯建,上面的特征都是比較好衡量的讲冠,單子質(zhì)量可能是更復(fù)雜的一個(gè)特征。
- 是否熱門(mén)适瓦,用戶(hù)評(píng)價(jià)人數(shù)竿开,購(gòu)買(mǎi)數(shù)等等。
在確定好要使用哪些數(shù)據(jù)之后玻熙,我們需要對(duì)使用數(shù)據(jù)的可用性進(jìn)行評(píng)估否彩,包括數(shù)據(jù)的獲取難度,數(shù)據(jù)的規(guī)模嗦随,數(shù)據(jù)的準(zhǔn)確率列荔,數(shù)據(jù)的覆蓋率等,
- 數(shù)據(jù)獲取難度
例如獲取用戶(hù)id不難枚尼,但是獲取用戶(hù)年齡和性別較困難贴浙,因?yàn)橛脩?hù)注冊(cè)或者購(gòu)買(mǎi)時(shí),這些并不是必填項(xiàng)署恍。即使填了也不完全準(zhǔn)確崎溃。這些特征可能是通過(guò)額外的預(yù)測(cè)模型預(yù)測(cè)的,那就存在著模型精度的問(wèn)題锭汛。 - 數(shù)據(jù)覆蓋率
數(shù)據(jù)覆蓋率也是一個(gè)重要的考量因素,例如距離特征袭蝗,并不是所有用戶(hù)的距離我們都能獲取到唤殴。PC端的就沒(méi)有距離,還有很多用戶(hù)禁止使用它們的地理位置信息等到腥。
用戶(hù)歷史行為朵逝,只有老用戶(hù)才會(huì)有行為。
用戶(hù)實(shí)時(shí)行為乡范,如果用戶(hù)剛打開(kāi)app配名,還沒(méi)有任何行為啤咽,同樣面臨著一個(gè)冷啟動(dòng)的問(wèn)題。 - 數(shù)據(jù)的準(zhǔn)確率
單子質(zhì)量渠脉,用戶(hù)性別等宇整,都會(huì)有準(zhǔn)確率的問(wèn)題。
特征獲取方案
Ok芋膘,在選定好要用的特征之后鳞青,我們需要考慮一個(gè)問(wèn)題。就是這些數(shù)據(jù)從哪可以獲任蟆臂拓?只有獲取了這些數(shù)據(jù)我們才能用上。否則习寸,提一個(gè)不可能獲取到的特征胶惰,獲取不到,提了也是白提霞溪。
下面就介紹下特征獲取方案孵滞。
離線(xiàn)特征獲取方案
離線(xiàn)可以使用海量的數(shù)據(jù),借助于分布式文件存儲(chǔ)平臺(tái)威鹿,例如HDFS等剃斧,使用例如MapReduce,Spark等處理工具來(lái)處理海量的數(shù)據(jù)等忽你。在線(xiàn)特征獲取方案
在線(xiàn)特征比較注重獲取數(shù)據(jù)的延時(shí)幼东,由于是在線(xiàn)服務(wù),需要在非常短的時(shí)間內(nèi)獲取到相應(yīng)的數(shù)據(jù)科雳,對(duì)查找性能要求非常高根蟹,可以將數(shù)據(jù)存儲(chǔ)在索引、kv存儲(chǔ)等糟秘。而查找性能與數(shù)據(jù)的數(shù)據(jù)量會(huì)有矛盾简逮,需要折衷處理,我們使用了特征分層獲取方案尿赚,如下圖所示散庶。
出于性能考慮。在粗排階段,使用更基礎(chǔ)的特征莽龟,數(shù)據(jù)直接建入索引矾缓。精排階段,再使用一些個(gè)性化特征等须教。
特征與標(biāo)注數(shù)據(jù)清洗
在了解特征數(shù)據(jù)放在哪兒、怎樣獲取之后斩芭。下一步就是考慮如何處理特征和標(biāo)注數(shù)據(jù)了轻腺。下面3節(jié)都是主要講的特征和標(biāo)注處理方法
標(biāo)注數(shù)據(jù)清洗
首先介紹下如何清洗特征數(shù)據(jù)乐疆,清洗特征數(shù)據(jù)方法可以分為離線(xiàn)清洗和在線(xiàn)清洗兩種方法。
- 離線(xiàn)清洗數(shù)據(jù)
離線(xiàn)清洗優(yōu)點(diǎn)是方便評(píng)估新特征效果贬养,缺點(diǎn)是實(shí)時(shí)性差挤土,與線(xiàn)上實(shí)時(shí)環(huán)境有一定誤差。對(duì)于實(shí)時(shí)特征難以訓(xùn)練得到恰當(dāng)?shù)臋?quán)重煤蚌。 - 在線(xiàn)清洗數(shù)據(jù)
在線(xiàn)清洗優(yōu)點(diǎn)是實(shí)時(shí)性強(qiáng)耕挨,完全記錄的線(xiàn)上實(shí)際數(shù)據(jù),缺點(diǎn)是新特征加入需要一段時(shí)間做數(shù)據(jù)積累尉桩。
樣本采樣與樣本過(guò)濾
特征數(shù)據(jù)只有在和標(biāo)注數(shù)據(jù)合并之后筒占,才能用來(lái)做為模型的訓(xùn)練。下面介紹下如何清洗標(biāo)注數(shù)據(jù)蜘犁。主要是數(shù)據(jù)采樣和樣本過(guò)濾翰苫。
數(shù)據(jù)采樣,例如對(duì)于分類(lèi)問(wèn)題:選取正例这橙,負(fù)例奏窑。對(duì)于回歸問(wèn)題,需要采集數(shù)據(jù)屈扎。對(duì)于采樣得到的樣本埃唯,根據(jù)需要,需要設(shè)定樣本權(quán)重鹰晨。當(dāng)模型不能使用全部的數(shù)據(jù)來(lái)訓(xùn)練時(shí)墨叛,需要對(duì)數(shù)據(jù)進(jìn)行采樣,設(shè)定一定的采樣率模蜡。采樣的方法包括隨機(jī)采樣漠趁,固定比例采樣等方法。
除了采樣外忍疾,經(jīng)常對(duì)樣本還需要進(jìn)行過(guò)濾闯传,包括
- 1.結(jié)合業(yè)務(wù)情況進(jìn)行數(shù)據(jù)的過(guò)濾,例如去除crawler抓取卤妒,spam甥绿,作弊等數(shù)據(jù)。
-
2.異常點(diǎn)檢測(cè)则披,采用異常點(diǎn)檢測(cè)算法對(duì)樣本進(jìn)行分析共缕,常用的異常點(diǎn)檢測(cè)算法包括
- 偏差檢測(cè),例如聚類(lèi)收叶,最近鄰等骄呼。
- ** 基于統(tǒng)計(jì)的異常點(diǎn)檢測(cè)算法**
例如極差共苛,四分位數(shù)間距判没,均差蜓萄,標(biāo)準(zhǔn)差等,這種方法適合于挖掘單變量的數(shù)值型數(shù)據(jù)澄峰。全距(Range)嫉沽,又稱(chēng)極差,是用來(lái)表示統(tǒng)計(jì)資料中的變異量數(shù)(measures of variation) 俏竞,其最大值與最小值之間的差距绸硕;四分位距通常是用來(lái)構(gòu)建箱形圖,以及對(duì)概率分布的簡(jiǎn)要圖表概述魂毁。 - 基于距離的異常點(diǎn)檢測(cè)算法玻佩,主要通過(guò)距離方法來(lái)檢測(cè)異常點(diǎn),將數(shù)據(jù)集中與大多數(shù)點(diǎn)之間距離大于某個(gè)閾值的點(diǎn)視為異常點(diǎn)席楚,主要使用的距離度量方法有絕對(duì)距離 ( 曼哈頓距離 ) 咬崔、歐氏距離和馬氏距離等方法。
- 基于密度的異常點(diǎn)檢測(cè)算法烦秩,考察當(dāng)前點(diǎn)周?chē)芏瓤逅梗梢园l(fā)現(xiàn)局部異常點(diǎn),例如LOF算法
特征分類(lèi)
在分析完特征和標(biāo)注的清洗方法之后只祠,下面來(lái)具體介紹下特征的處理方法兜蠕,先對(duì)特征進(jìn)行分類(lèi),對(duì)于不同的特征應(yīng)該有不同的處理方法抛寝。
根據(jù)不同的分類(lèi)方法熊杨,可以將特征分為(1)Low level特征和High level特征。(2)穩(wěn)定特征與動(dòng)態(tài)特征墩剖。(3)二值特征猴凹、連續(xù)特征、枚舉特征岭皂。
Low level特征是較低級(jí)別的特征郊霎,主要是原始特征,不需要或者需要非常少的人工處理和干預(yù)爷绘,例如文本特征中的詞向量特征书劝,圖像特征中的像素點(diǎn),用戶(hù)id土至,商品id等购对。Low level特征一般維度比較高,不能用過(guò)于復(fù)雜的模型陶因。High level特征是經(jīng)過(guò)較復(fù)雜的處理骡苞,結(jié)合部分業(yè)務(wù)邏輯或者規(guī)則、模型得到的特征,例如人工打分解幽,模型打分等特征贴见,可以用于較復(fù)雜的非線(xiàn)性模型。Low level 比較針對(duì)性躲株,覆蓋面小片部。長(zhǎng)尾樣本的預(yù)測(cè)值主要受high level特征影響。 高頻樣本的預(yù)測(cè)值主要受low level特征影響霜定。
穩(wěn)定特征是變化頻率(更新頻率)較少的特征档悠,例如評(píng)價(jià)平均分,團(tuán)購(gòu)單價(jià)格等望浩,在較長(zhǎng)的時(shí)間段內(nèi)都不會(huì)發(fā)生變化辖所。動(dòng)態(tài)特征是更新變化比較頻繁的特征,有些甚至是實(shí)時(shí)計(jì)算得到的特征磨德,例如距離特征奴烙,2小時(shí)銷(xiāo)量等特征∑收牛或者叫做實(shí)時(shí)特征和非實(shí)時(shí)特征切诀。針對(duì)兩類(lèi)特征的不同可以針對(duì)性地設(shè)計(jì)特征存儲(chǔ)和更新方式,例如對(duì)于穩(wěn)定特征搔弄,可以建入索引幅虑,較長(zhǎng)時(shí)間更新一次,如果做緩存的話(huà)顾犹,緩存的時(shí)間可以較長(zhǎng)倒庵。對(duì)于動(dòng)態(tài)特征,需要實(shí)時(shí)計(jì)算或者準(zhǔn)實(shí)時(shí)地更新數(shù)據(jù)炫刷,如果做緩存的話(huà)擎宝,緩存過(guò)期時(shí)間需要設(shè)置的較短。
二值特征主要是0/1特征浑玛,即特征只取兩種值:0或者1绍申,例如用戶(hù)id特征:目前的id是否是某個(gè)特定的id,詞向量特征:某個(gè)特定的詞是否在文章中出現(xiàn)等等顾彰。連續(xù)值特征是取值為有理數(shù)的特征极阅,特征取值個(gè)數(shù)不定,例如距離特征涨享,特征取值為是0~正無(wú)窮筋搏。枚舉值特征主要是特征有固定個(gè)數(shù)個(gè)可能值,例如今天周幾厕隧,只有7個(gè)可能值:周1奔脐,周2俄周,...,周日髓迎。在實(shí)際的使用中栈源,我們可能對(duì)不同類(lèi)型的特征進(jìn)行轉(zhuǎn)換,例如將枚舉特征或者連續(xù)特征處理為二值特征竖般。枚舉特征處理為二值特征技巧:將枚舉特征映射為多個(gè)特征,每個(gè)特征對(duì)應(yīng)一個(gè)特定枚舉值茶鹃,例如今天周幾涣雕,可以把它轉(zhuǎn)換成7個(gè)二元特征:今天是否是周一,今天是否是周二闭翩,...挣郭,今天是否是周日。連續(xù)值處理為二值特征方法:先將連續(xù)值離散化(后面會(huì)介紹如何離散化)疗韵,再將離散化后的特征切分為N個(gè)二元特征兑障,每個(gè)特征代表是否在這個(gè)區(qū)間內(nèi)。
特征處理與分析
在對(duì)特征進(jìn)行分類(lèi)后蕉汪,下面介紹下對(duì)特征常用的處理方法流译。包括1.特征歸一化,離散化者疤,缺省值處理福澡。2.特征降維方法。3.特征選擇方法等驹马。
特征歸一化革砸,離散化,缺省值處理
主要用于單個(gè)特征
的處理糯累。
歸一化
不同的特征有不同的取值范圍算利,在有些算法中,例如線(xiàn)性模型或者距離相關(guān)的模型像聚類(lèi)模型泳姐、knn模型等效拭,特征的取值范圍會(huì)對(duì)最終的結(jié)果產(chǎn)生較大影響,例如二元特征的取值范圍為[0胖秒,1]允耿,而距離特征取值可能是[0,正無(wú)窮)扒怖,在實(shí)際使用中會(huì)對(duì)距離進(jìn)行截?cái)嘟衔鏪0,3000000]盗痒,但是這兩個(gè)特征由于取值范圍不一致導(dǎo)致了模型可能會(huì)更偏向于取值范圍較大的特征蚂蕴,為了平衡取值范圍不一致的特征低散,需要對(duì)特征進(jìn)行歸一化處理,將特征取值歸一化到[0骡楼,1]區(qū)間熔号。常用的歸一化方法包括1.函數(shù)歸一化,通過(guò)映射函數(shù)將特征取值映射到[0鸟整,1]區(qū)間引镊,例如最大最小值歸一化方法,是一種線(xiàn)性的映射篮条。還有通過(guò)非線(xiàn)性函數(shù)的映射弟头,例如log函數(shù)等。2.分維度歸一化涉茧,可以使用最大最小歸一化方法赴恨,但是最大最小值選取的是所屬類(lèi)別的最大最小值,即使用的是局部最大最小值伴栓,不是全局的最大最小值伦连。3.排序歸一化,不管原來(lái)的特征取值是什么樣的钳垮,將特征按大小排序惑淳,根據(jù)特征所對(duì)應(yīng)的序給予一個(gè)新的值。離散化
在上面介紹過(guò)連續(xù)值的取值空間可能是無(wú)窮的饺窿,為了便于表示和在模型中處理汛聚,需要對(duì)連續(xù)值特征進(jìn)行離散化處理。常用的離散化方法包括等值劃分和等量劃分短荐。等值劃分是將特征按照值域進(jìn)行均分倚舀,每一段內(nèi)的取值等同處理。例如某個(gè)特征的取值范圍為[0忍宋,10]痕貌,我們可以將其劃分為10段,[0糠排,1)舵稠,[1,2)入宦,...哺徊,[9,10)乾闰。等量劃分是根據(jù)樣本總數(shù)進(jìn)行均分落追,每段等量個(gè)樣本劃分為1段。例如距離特征涯肩,取值范圍[0轿钠,3000000]巢钓,現(xiàn)在需要切分成10段,如果按照等比例劃分的話(huà)疗垛,會(huì)發(fā)現(xiàn)絕大部分樣本都在第1段中症汹。使用等量劃分就會(huì)避免這種問(wèn)題,最終可能的切分是[0贷腕,100)背镇,[100,300)泽裳,[300瞒斩,500),..诡壁,[10000,3000000]荠割,前面的區(qū)間劃分比較密妹卿,后面的比較稀疏。缺省值處理
有些特征可能因?yàn)闊o(wú)法采樣或者沒(méi)有觀(guān)測(cè)值而缺失蔑鹦,例如距離特征夺克,用戶(hù)可能禁止獲取地理位置或者獲取地理位置失敗,此時(shí)需要對(duì)這些特征做特殊的處理嚎朽,賦予一個(gè)缺省值铺纽。缺省值如何賦予,也有很多種方法哟忍。例如單獨(dú)表示狡门,眾數(shù),平均值等锅很。
特征降維
在介紹特征降維之前其馏,先介紹下特征升維。在機(jī)器學(xué)習(xí)中爆安,有一個(gè)VC維理論叛复。根據(jù)VC維理論,VC維越高扔仓,打散能力越強(qiáng)褐奥,可容許的模型復(fù)雜度越高。在低維不可分的數(shù)據(jù)翘簇,映射到高維是可分撬码。可以想想版保,給你一堆物品耍群,人腦是如何對(duì)這些物品進(jìn)行分類(lèi)义桂,依然是找出這些物品的一些特征,例如:顏色蹈垢,形狀慷吊,大小,觸感等等曹抬,然后根據(jù)這些特征對(duì)物品做以歸類(lèi)溉瓶,這其實(shí)就是一個(gè)先升維,后劃分的過(guò)程谤民。比如我們?nèi)四X識(shí)別香蕉堰酿。可能首先我們發(fā)現(xiàn)香蕉是黃色的张足。這是在顏色這個(gè)維度的一個(gè)切分触创。但是很多東西都是黃色的啊,例如哈密瓜为牍。那么怎么區(qū)分香蕉和哈密瓜呢哼绑?我們發(fā)現(xiàn)香蕉形狀是彎曲的。而哈密瓜是圓形的碉咆,那么我們就可以用形狀來(lái)把香蕉和哈密瓜劃分開(kāi)了抖韩,即引入一個(gè)新維度:形狀,來(lái)區(qū)分疫铜。這就是一個(gè)從“顏色”一維特征升維到二維特征的例子茂浮。
那問(wèn)題來(lái)了,既然升維后模型能力能變強(qiáng)壳咕,那么是不是特征維度越高越好呢席揽?為什么要進(jìn)行特征降維&特征選擇?主要是出于如下考慮:1. 特征維數(shù)越高谓厘,模型越容易過(guò)擬合驹尼,此時(shí)更復(fù)雜的模型就不好用。2. 相互獨(dú)立的特征維數(shù)越高庞呕,在模型不變的情況下新翎,在測(cè)試集上達(dá)到相同的效果表現(xiàn)所需要的訓(xùn)練樣本的數(shù)目就越大。 3. 特征數(shù)量增加帶來(lái)的訓(xùn)練住练、測(cè)試以及存儲(chǔ)的開(kāi)銷(xiāo)都會(huì)增大地啰。4.在某些模型中,例如基于距離計(jì)算的模型KMeans讲逛,KNN等模型亏吝,在進(jìn)行距離計(jì)算時(shí),維度過(guò)高會(huì)影響精度和性能盏混。5.可視化分析的需要蔚鸥。在低維的情況下惜论,例如二維,三維止喷,我們可以把數(shù)據(jù)繪制出來(lái)馆类,可視化地看到數(shù)據(jù)。當(dāng)維度增高時(shí)弹谁,就難以繪制出來(lái)了乾巧。在機(jī)器學(xué)習(xí)中,有一個(gè)非常經(jīng)典的維度災(zāi)難**的概念预愤。用來(lái)描述當(dāng)空間維度增加時(shí)沟于,分析和組織高維空間,因體積指數(shù)增加而遇到各種問(wèn)題場(chǎng)景植康。例如旷太,100個(gè)平均分布的點(diǎn)能把一個(gè)單位區(qū)間以每個(gè)點(diǎn)距離不超過(guò)0.01采樣;而當(dāng)維度增加到10后销睁,如果以相鄰點(diǎn)距離不超過(guò)0.01小方格采樣單位超一單位超正方體供璧,則需要10^20 個(gè)采樣點(diǎn)。
正是由于高維特征有如上描述的各種各樣的問(wèn)題榄攀,所以我們需要進(jìn)行特征降維和特征選擇等工作嗜傅。特征降維常用的算法有PCA金句,LDA等檩赢。特征降維的目標(biāo)是將高維空間中的數(shù)據(jù)集映射到低維空間數(shù)據(jù),同時(shí)盡可能少地丟失信息违寞,或者降維后的數(shù)據(jù)點(diǎn)盡可能地容易被區(qū)分
** PCA算法**
通過(guò)協(xié)方差矩陣的特征值分解能夠得到數(shù)據(jù)的主成分贞瞒,以二維特征為例,兩個(gè)特征之間可能存在線(xiàn)性關(guān)系(例如運(yùn)動(dòng)的時(shí)速和秒速度)趁曼,這樣就造成了第二維信息是冗余的军浆。PCA的目標(biāo)是發(fā)現(xiàn)這種特征之間的線(xiàn)性關(guān)系,并去除挡闰。LDA算法
考慮label乒融,降維后的數(shù)據(jù)點(diǎn)盡可能地容易被區(qū)分
特征選擇
特征選擇的目標(biāo)是尋找最優(yōu)特征子集。特征選擇能剔除不相關(guān)(irrelevant)或冗余(redundant )的特征摄悯,從而達(dá)到減少特征個(gè)數(shù)赞季,提高模型精確度,減少運(yùn)行時(shí)間的目的奢驯。另一方面申钩,選取出真正相關(guān)的特征簡(jiǎn)化模型,協(xié)助理解數(shù)據(jù)產(chǎn)生的過(guò)程瘪阁。
特征選擇的一般過(guò)程如下圖所示:
主要分為產(chǎn)生過(guò)程撒遣,評(píng)估過(guò)程邮偎,停止條件和驗(yàn)證過(guò)程。
特征選擇-產(chǎn)生過(guò)程和生成特征子集方法
-
完全搜索(Complete)
- 廣度優(yōu)先搜索( Breadth First Search )
廣度優(yōu)先遍歷特征子空間义黎。枚舉所有組合禾进,窮舉搜索,實(shí)用性不高轩缤。 - 分支限界搜索( Branch and Bound )
窮舉基礎(chǔ)上加入分支限界命迈。例如:剪掉某些不可能搜索出比當(dāng)前最優(yōu)解更優(yōu)的分支。
其他火的,如定向搜索 (Beam Search )壶愤,最優(yōu)優(yōu)先搜索 ( Best First Search )等
- 廣度優(yōu)先搜索( Breadth First Search )
-
啟發(fā)式搜索(Heuristic)
- 序列前向選擇( SFS , Sequential Forward Selection )
從空集開(kāi)始馏鹤,每次加入一個(gè)選最優(yōu)征椒。 - 序列后向選擇( SBS , Sequential Backward Selection )
從全集開(kāi)始湃累,每次減少一個(gè)選最優(yōu)勃救。 - 增L去R選擇算法 ( LRS , Plus-L Minus-R Selection )
從空集開(kāi)始治力,每次加入L個(gè)蒙秒,減去R個(gè),選最優(yōu)(L>R)或者從全集開(kāi)始宵统,每次減去R個(gè)晕讲,增加L個(gè),選最優(yōu)(L<R)马澈。
- 序列前向選擇( SFS , Sequential Forward Selection )
其他如雙向搜索( BDS 瓢省, Bidirectional Search ),序列浮動(dòng)選擇( Sequential Floating Selection )等
- 隨機(jī)搜索(Random)
- 隨機(jī)產(chǎn)生序列選擇算法(RGSS痊班, Random Generation plus Sequential Selection)
隨機(jī)產(chǎn)生一個(gè)特征子集勤婚,然后在該子集上執(zhí)行SFS與SBS算法。 - 模擬退火算法( SA涤伐, Simulated Annealing )
以一定的概率來(lái)接受一個(gè)比當(dāng)前解要差的解馒胆,而且這個(gè)概率隨著時(shí)間推移逐漸降低 - 遺傳算法( GA, Genetic Algorithms )
通過(guò)交叉凝果、突變等操作繁殖出下一代特征子集祝迂,并且評(píng)分越高的特征子集被選中參加繁殖的概率越高。
- 隨機(jī)產(chǎn)生序列選擇算法(RGSS痊班, Random Generation plus Sequential Selection)
隨機(jī)算法共同缺點(diǎn):依賴(lài)隨機(jī)因素豆村,有實(shí)驗(yàn)結(jié)果難重現(xiàn)液兽。
特征選擇-有效性分析
對(duì)特征的有效性進(jìn)行分析,得到各個(gè)特征的特征權(quán)重,根據(jù)是否與模型有關(guān)可以分為****1.與模型相關(guān)特征權(quán)重四啰,使用所有的特征數(shù)據(jù)訓(xùn)練出來(lái)模型宁玫,看在模型中各個(gè)特征的權(quán)重,由于需要訓(xùn)練出模型柑晒,模型相關(guān)的權(quán)重與此次學(xué)習(xí)所用的模型比較相關(guān)欧瘪。不同的模型有不同的模型權(quán)重衡量方法。例如線(xiàn)性模型中匙赞,特征的權(quán)重系數(shù)等佛掖。2.與模型無(wú)關(guān)特征權(quán)重。主要分析特征與label的相關(guān)性涌庭,這樣的分析是與這次學(xué)習(xí)所使用的模型無(wú)關(guān)的芥被。與模型無(wú)關(guān)特征權(quán)重分析方法包括(1)交叉熵,(2)Information Gain坐榆,(3)Odds ratio拴魄,(4)互信息,(5)KL散度等
特征監(jiān)控
在機(jī)器學(xué)習(xí)任務(wù)中席镀,特征非常重要匹中。
- 個(gè)人經(jīng)驗(yàn),80%的效果由特征帶來(lái)豪诲。下圖是隨著特征數(shù)的增加顶捷,最終模型預(yù)測(cè)值與實(shí)際值的相關(guān)系數(shù)變化。
對(duì)于重要的特征進(jìn)行監(jiān)控與有效性分析屎篱,了解模型所用的特征是否存在問(wèn)題服赎,當(dāng)某個(gè)特別重要的特征出問(wèn)題時(shí),需要做好備案芳室,防止災(zāi)難性結(jié)果专肪。需要建立特征有效性的長(zhǎng)效監(jiān)控機(jī)制
我們對(duì)關(guān)鍵特征進(jìn)行了監(jiān)控刹勃,下面特征監(jiān)控界面的一個(gè)截圖堪侯。通過(guò)監(jiān)控我們發(fā)現(xiàn)有一個(gè)特征的覆蓋率每天都在下降,與特征數(shù)據(jù)提供方聯(lián)系之后荔仁,發(fā)現(xiàn)特征數(shù)據(jù)提供方的數(shù)據(jù)源存在著問(wèn)題伍宦,在修復(fù)問(wèn)題之后,該特征恢復(fù)正常并且覆蓋率有了較大提升乏梁。
- 在發(fā)現(xiàn)特征出現(xiàn)異常時(shí)次洼,我們會(huì)及時(shí)采取措施,對(duì)服務(wù)進(jìn)行降級(jí)處理遇骑,并聯(lián)系特征數(shù)據(jù)的提供方盡快修復(fù)卖毁。對(duì)于特征數(shù)據(jù)生成過(guò)程中缺乏監(jiān)控的情況也會(huì)督促做好監(jiān)控,在源頭解決問(wèn)題。
機(jī)器學(xué)習(xí)InAction系列講座介紹:結(jié)合美團(tuán)在機(jī)器學(xué)習(xí)上的實(shí)踐亥啦,我們進(jìn)行一個(gè)實(shí)戰(zhàn)(InAction)系列的介紹(帶“機(jī)器學(xué)習(xí)InAction系列”標(biāo)簽的5篇文章)炭剪,介紹機(jī)器學(xué)習(xí)在解決問(wèn)題的實(shí)戰(zhàn)中所需的基本技術(shù)、經(jīng)驗(yàn)和技巧翔脱。本文主要介紹了數(shù)據(jù)清洗與特征處理奴拦,其他四篇文章主要介紹了機(jī)器學(xué)習(xí)解決問(wèn)題流程和模型訓(xùn)練、模型優(yōu)化等工作届吁。
參考
《elements of statistical learning》
http://en.wikipedia.org/wiki/Supervised_learning
http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html
http://zh.wikipedia.org/zh-cn/維數(shù)災(zāi)難
http://www.cs.waikato.ac.nz/ml/weka/
http://blog.csdn.net/lihaifeng555/article/details/4543752
http://blog.csdn.net/abcjennifer/article/details/8002329
http://www.cnblogs.com/leftnoteasy/archive/2011/01/08/lda-and-pca-machine-learning.html
原文地址:http://tech.meituan.com/machinelearning-data-feature-process.html