機(jī)器學(xué)習(xí)筆記---特征工程

轉(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é)查库。

綜述

image.png

如上圖所示是一個(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ì)有矛盾简逮,需要折衷處理,我們使用了特征分層獲取方案尿赚,如下圖所示散庶。

image.png

出于性能考慮。在粗排階段,使用更基礎(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ò)程如下圖所示:

image.png

主要分為產(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 )等
  • 啟發(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)马澈。

其他如雙向搜索( 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ī)算法共同缺點(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ù)變化。
image.png

對(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ù)正常并且覆蓋率有了較大提升乏梁。

image.png

  • 在發(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末错妖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疚沐,更是在濱河造成了極大的恐慌暂氯,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亮蛔,死亡現(xiàn)場(chǎng)離奇詭異株旷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尔邓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)晾剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人梯嗽,你說(shuō)我怎么就攤上這事齿尽。” “怎么了灯节?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵循头,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我炎疆,道長(zhǎng)卡骂,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任形入,我火速辦了婚禮全跨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亿遂。我一直安慰自己浓若,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布蛇数。 她就那樣靜靜地躺著挪钓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耳舅。 梳的紋絲不亂的頭發(fā)上碌上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼馏予。 笑死蔓纠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吗蚌。 我是一名探鬼主播腿倚,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蚯妇!你這毒婦竟也來(lái)了敷燎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤箩言,失蹤者是張志新(化名)和其女友劉穎硬贯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陨收,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饭豹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了务漩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拄衰。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖饵骨,靈堂內(nèi)的尸體忽然破棺而出翘悉,到底是詐尸還是另有隱情,我是刑警寧澤居触,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布妖混,位于F島的核電站,受9級(jí)特大地震影響轮洋,放射性物質(zhì)發(fā)生泄漏制市。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一弊予、第九天 我趴在偏房一處隱蔽的房頂上張望祥楣。 院中可真熱鬧,春花似錦块促、人聲如沸荣堰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至薇搁,卻和暖如春斋扰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工传货, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屎鳍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓问裕,卻偏偏與公主長(zhǎng)得像逮壁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粮宛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容