百面機器學習|第一章特征工程知識點

前言

如果你能找到這里糜俗,真是我的幸運~這里是藍白絳的學習筆記,本集合主要針對《百面機器學習——算法工程師帶你去面試》這本書苦蒿。主要記錄我認為重要的知識點印机,希望對大家有幫助。

第一章 特征工程

引導語

一句業(yè)界經(jīng)典的話:“Garbage in, garbage out”。對于機器學習問題,數(shù)據(jù)和特征決定了結(jié)果的上限,而模型障本、算法的選擇和優(yōu)化則是在逐步接近這個上限。
特征工程從本質(zhì)上來講响鹃,是一個表示和展現(xiàn)數(shù)據(jù)的過程驾霜。在實際工作中,特征工程旨在去除原始數(shù)據(jù)中的雜質(zhì)和冗余买置,設(shè)計更高效的特征以刻畫求解的問題與預(yù)測模型之間的關(guān)系粪糙。
本章主要討論兩種常用數(shù)據(jù)類型,結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)忿项。

  • 結(jié)構(gòu)化數(shù)據(jù)蓉冈〕俏瑁可以看作關(guān)系型數(shù)據(jù)庫的一張表,每一列都有清晰的定義寞酿,包含數(shù)值型家夺、類別型兩種基本類型;每行表示一個樣本的信息伐弹。
  • 非結(jié)構(gòu)化數(shù)據(jù)拉馋。主要包括文本、圖像惨好、音頻煌茴、視頻數(shù)據(jù),其包含的信息無法用一個簡單的數(shù)值表示日川,也沒有清晰的類別定義蔓腐。并且每條數(shù)據(jù)的大小各不相同。

注:主要從數(shù)值表示龄句、類別定義來區(qū)分合住。

1、特征歸一化

  1. 目的:消除數(shù)據(jù)特征之間的量綱影響撒璧,使得不同指標之間具有可比性
  2. 常用方法有線性函數(shù)歸一化零均值歸一化
  • 線性函數(shù)歸一化(Min-Max Scaling笨使,最大最小值歸一化)卿樱,將數(shù)據(jù)映射到[0,1]的范圍內(nèi)。
    X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}
  • 零均值歸一化(Z-Score Normalization)硫椰,將數(shù)據(jù)映射到均值為0繁调、標準差為1的分布上。
    z=\frac{x-\mu}{\sigma}
  1. 如果模型用梯度下降來進行求解靶草,數(shù)據(jù)歸一化主要對收斂速度產(chǎn)生影響蹄胰。將各個特征映射到同一個區(qū)間內(nèi),可以使得各個特征的更新速度變得更一致奕翔,容易更快地通過梯度下降找到最優(yōu)解裕寨。
  2. 通過梯度下降求解的模型通常需要歸一化,包括線性回歸派继、邏輯回歸宾袜、支持向量機、神經(jīng)網(wǎng)絡(luò)等驾窟。但對于決策樹并不適用庆猫。例如C4.5節(jié)點分裂主要依據(jù)信息增益比,而歸一化并不會改變信息增益比绅络。
    注:經(jīng)過實踐月培,確實是這樣嘁字,有可能歸一化之后反而使決策樹性能下降。

2杉畜、類別型特征

  1. 類別型特征指在有限選項內(nèi)取值的特征纪蜒。通常為字符串形式。決策樹等少數(shù)模型能直接處理字符串形式的輸入寻行,邏輯回歸霍掺、SVM等類別型特征必須處理成數(shù)值型特征才能正確工作。
  2. 處理類別型特征的方法:
  • 序號編碼拌蜘,如成績可以轉(zhuǎn)化為高杆烁、中、低三檔简卧,分別用3兔魂、2、1表示举娩,轉(zhuǎn)換后依然保留了大小關(guān)系析校。
  • one-hot編碼,通常用于處理類別間不具有大小關(guān)系的特征铜涉,如各種血型智玻,A型編碼為(1,0,0,0),B型編碼為(0,1,0,0)芙代。
    one-hot編碼需要注意:當類別取值較多時吊奢,用one-hot就會非常稀疏,可以用稀疏向量形式輸入來節(jié)省空間纹烹,目前大部分算法都接受這種輸入形式页滚。但是高維one-hot編碼會有幾個問題:1.knn中高維空間下很難有效衡量兩點的距離。2.邏輯回歸中參數(shù)數(shù)量會隨維度增高而增多铺呵,容易引起過擬合裹驰。通常只有部分維度對分類、預(yù)測有幫助片挂,因此可以配合特征選擇來降維幻林。
    注:也就是說需要酌情篩掉。
  • 二進制編碼音念,和one-hot的思想差不多滋将,它允許多位為1。本質(zhì)是利用二進制對ID進行hash映射症昏,比one-hot節(jié)省空間随闽。
  • 還有其他編碼方式:Helmert Contrast、Sum Contrast肝谭、Polynomial Contrast掘宪、Backward Difference Contrast蛾扇。

3、高維組合特征的處理

  1. 目的:提高復(fù)雜關(guān)系的擬合能力魏滚。
  2. 組合特征是指把一階離散特征兩兩組合镀首,構(gòu)成高階組合特征。
    注:注意是離散特征鼠次。
    例如將語言(中文更哄、英文);劇集類型(電影腥寇、電視劇)兩個一階離散特征組合為二階特征成翩,則有中文電影、中文電視劇赦役、英文電影麻敌、英文電視劇四種類型。
    假設(shè)數(shù)據(jù)的特征向量為X=(x_1,x_2,...,x_k)掂摔,則有
    Y=sigmoid\sum_i\sum_j w_{ij}<x_i,x_j>如上面的問題术羔,則w的維度為2*2=4。
  3. 當引入ID類型的特征時乙漓,通常需要降維级历。如推薦問題,通常有如下的組合特征:
是否點擊 uid=1,item id=1 uid=2,item id=1 uid=2,item id=1 ... uid=m,item id=n
0 1 0 ... 0 0
1 0 1 ... 0 0
... ... ... ... ... ...

如上表叭披,則要學習的參數(shù)規(guī)模為m\times n鱼喉,參數(shù)規(guī)模太大,一種行之有效的方法是經(jīng)用戶和物品分別用k維的低維向量表示(k遠小于m和n)趋观,則參數(shù)的規(guī)模變?yōu)?img class="math-inline" src="https://math.jianshu.com/math?formula=m%5Ctimes%20k%2Bn%5Ctimes%20k" alt="m\times k+n\times k" mathimg="1">。實際是矩陣分解锋边。

4皱坛、組合特征

簡單地將特征兩兩組合容易存在參數(shù)過多過擬合等問題豆巨。本節(jié)提供了一種基于決策樹的組合特征尋找方法剩辟。
例如一個點擊預(yù)測問題:輸入特征有年齡、性別往扔、用戶類型(試用期/付費)贩猎、物品類型(護膚/食品)。我們構(gòu)造一個決策樹如下:

1-4 基于決策樹的特征組合方法.jpg

從根節(jié)點到葉節(jié)點的每條路徑都可以看成一種特征組合的方式萍膛。根據(jù)上面建立的決策樹吭服,我們有4條路徑。則可以得到以下樣本的編碼方式蝗罗。

是否點擊 年齡 性別 用戶類型 物品類型 編碼
28 免費 護膚 (1,1,0,0)
36 付費 食品 (0,0,1,1)

如第一條樣本艇棕,滿足圖上的下面的兩條路徑蝌戒,則可編碼為(1,1,0,0)。
注:感覺這種方式確實是組合特征降維的比較好的方式沼琉,但是問題是首先要建立一顆樹北苟。

5、文本表示模型

  1. 詞袋模型和N-gram模型
  • 詞袋模型是最基礎(chǔ)的文本表示模型打瘪。是將文章以詞為單位切分開友鼻,忽略詞的出現(xiàn)順序,將文章表示成一個長向量闺骚,每一維代表一個單詞彩扔,該維的權(quán)重表示重要程度。常用TF-IDF來計算權(quán)重葛碧。(注意逆文檔頻率是要取log對數(shù)的)
  • N-gram是指有些詞組不能拆開借杰,那么由這n個詞組成的詞組(N-gram)也作為一個單獨的特征放到向量表示中,構(gòu)成N-gram模型进泼。

注:總的來說就是蔗衡,TF-IDF是詞袋模型中的一種計算權(quán)重的方法,N-gram是一種為了解決詞組不可分的一種方法乳绕,也屬于詞袋模型绞惦,最后依然要用詞袋模型來表示。

  1. 主題模型
    詞袋模型和N-gram模型無法識別兩個不同的詞或詞組具有相同的主題洋措,主題模型可以將具有相同主題的詞或詞組映射到同一維度上济蝉,映射到的這一維度表示某個主題。主題模型是一種特殊的概率圖模型菠发,后面第六章第五節(jié)會講王滤。
  2. 詞嵌入
    詞嵌入是一類將詞向量化的模型的統(tǒng)稱,核心思想是將每個詞都映射到低維空間(K=50~300)上的一個稠密向量滓鸠。K維空間的每一維也可以看作一個隱含的主題雁乡,但沒有主題模型那樣直觀。

6糜俗、Word2Vec

  1. Word2Vec是2013年提出的踱稍,是目前最常用的詞嵌入模型之一。它實際是一種淺層的神經(jīng)網(wǎng)絡(luò)模型悠抹,有兩種網(wǎng)絡(luò)結(jié)構(gòu):CBOW(Continues Bag of Words)和Skip-gram珠月。
    COBW根據(jù)上下文出現(xiàn)的詞語來預(yù)測當前詞的生成概率,Skip-gram根據(jù)當前詞來預(yù)測上下文中各詞的生成概率楔敌。結(jié)構(gòu)如下圖:
    1-6 Word2Vec的兩種網(wǎng)絡(luò)結(jié)構(gòu).jpg

    圖中w(t)即當前詞啤挎,w(t-2)w(t-1)卵凑、w(t+1)侵浸、w(t+2)即上下文中出現(xiàn)的詞旺韭,所謂的滑動窗口大小就是上下文取詞個數(shù),為2掏觉。
  2. CBOW的訓練方式:模型有輸入層区端、映射層、輸出層澳腹。
  • 輸入層是one-hot編碼的上下文詞织盼,如果詞匯表中單詞總數(shù)為N,則輸入層的詞表示即為N維one-hot向量酱塔。
  • 映射層(隱含層)有K個隱含單元沥邻,即我們要得到的K維詞嵌入向量,這里就是K個隱含單元羊娃。映射層的值由輸入層的N維向量和N\times K維權(quán)重矩陣計算得到唐全。
    注:CBOW模型需要將輸入詞計算的隱含單元值求和,比Skip-gram多這一部分蕊玷。
  • 輸出層向量的值由隱含層的K維向量和K\times N維向量計算得到邮利,輸出也是N維向量。但是這里的輸出向量并不能保證所有維度加起來為1(one-hot編碼加起來就為1)垃帅,要通過Softmax激活函數(shù)進行歸一化延届。
  • 訓練的目標是使得語料庫中所有單詞的整體生成概率最大化∶吵希可以用反向傳播方庭,沿梯度更優(yōu)的方向更新權(quán)重,但是由于Softmax存在歸一化項酱固,推導出來的迭代公式需要對詞匯表中所有單詞進行遍歷(畢竟是N維詞向量)械念,所以每次迭代過程非常緩慢。有Hierarchical Softmax和Negative Sampling兩種改進方法运悲。
  • 得到訓練出來的各詞對應(yīng)的向量:訓練得到的維度為N\times KK\times N的矩陣龄减,可以選擇任意一個作為N個詞的K維詞向量。
  1. Word2Vec和LDA的區(qū)別和聯(lián)系:
  • LDA利用文檔中單詞的共現(xiàn)關(guān)系來對單詞按主題聚類扇苞,可以理解為將“文檔-單詞”矩陣分解為“文檔-主題”和“主題-單詞”兩個概率分布。但Word2Vec更多融入了上下文共現(xiàn)的特征寄纵,是對“上下文-單詞”矩陣進行學習鳖敷。
  • 主題模型通過一定的結(jié)構(gòu)調(diào)整可以基于“上下文-單詞”單詞矩陣進行主題推理,詞嵌入方法也可以根據(jù)“文檔-單詞”矩陣學習出詞的隱含向量表示程拭。
  • 最大的區(qū)別是模型本身定踱。主題模型是一種基于概率圖模型的生成式模型,其似然函數(shù)可以寫成若干條件概率連乘的形式恃鞋,其中包括需要推測的隱含變量(即主題)崖媚。詞嵌入一般表達為神經(jīng)網(wǎng)絡(luò)的形式亦歉,似然函數(shù)定義在網(wǎng)絡(luò)的輸出之上,需要通過學習網(wǎng)絡(luò)的權(quán)重得到單詞的稠密向量表示畅哑。

7肴楷、圖像數(shù)據(jù)不足時的處理方法

  1. 一個模型能提供的信息一般來源于兩個方面:一是訓練數(shù)據(jù)中蘊含的信息;二是模型的形成過程中(包括構(gòu)造荠呐、學習赛蔫、推理等)人提供的先驗信息
  2. 訓練不足時則要提供更多先驗信息泥张。先驗信息作用在模型上呵恢,如讓模型采用特定的內(nèi)在結(jié)構(gòu)條件假設(shè)或添加一些約束條件媚创。先驗信息也可以作用在數(shù)據(jù)集上渗钉,如根據(jù)特定的先驗假設(shè)調(diào)整變換擴展數(shù)據(jù)集钞钙,讓其展現(xiàn)出更多更有用的信息鳄橘。
  3. 圖像分類任務(wù)中,訓練數(shù)據(jù)不足的問題主要表現(xiàn)在過擬合方面歇竟,處理方法可以分為兩類:
  • 基于模型的方法:主要是采用降低過擬合風險的措施挥唠,包括簡化模型(將非線性模型簡化為線性模型)、添加約束項以縮小假設(shè)空間(L1/L2正則項)焕议、集成學習宝磨、Dropout超參數(shù)等。
  • 基于數(shù)據(jù)的方法:主要通過數(shù)據(jù)擴充(Data Augmentation盅安,數(shù)據(jù)增強)唤锉,對原始數(shù)據(jù)進行適當變換以達到擴充數(shù)據(jù)集的效果。
    具體到圖像分類别瞭,有四種變換方法:(1)隨機旋轉(zhuǎn)窿祥、平移、縮放蝙寨、裁減晒衩、填充、左右翻轉(zhuǎn)等墙歪,對應(yīng)不同角度的觀察結(jié)果听系。(2)對像素添加噪聲擾動,如椒鹽噪聲虹菲、高斯白噪聲等靠胜。(3)顏色變換。(4)改變亮度、清晰度浪漠、對比度陕习、銳度等。
  1. 除了在圖像空間進行變換址愿,還可以對圖像進行特征提取该镣,然后在圖像的特征空間內(nèi)進行變換,利用一些通用的數(shù)據(jù)擴充或上采樣技術(shù)如SMOTE等進行擴充必盖。這些都是一些啟發(fā)式的變換方法拌牲,還可以通過GAN等生成模型合成新樣本,還可以借助其他模型或數(shù)據(jù)來進行遷移學習歌粥。

小結(jié)

本章干貨還是很多的塌忽,表述非常清晰,非常易懂失驶。之前沒有弄懂的東西土居,比如Word2Vec的訓練過程,讓我終于了解了結(jié)構(gòu)和訓練方法嬉探。但是特征工程還有非常多的技巧擦耀,特征選擇也還有更多的方法,還要多學習其他方法涩堤。

結(jié)尾

如果您發(fā)現(xiàn)我的文章有任何錯誤眷蜓,或?qū)ξ业奈恼掠惺裁春玫慕ㄗh,請聯(lián)系我胎围!如果您喜歡我的文章吁系,請點喜歡~*我是藍白絳,感謝你的閱讀白魂!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末汽纤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子福荸,更是在濱河造成了極大的恐慌蕴坪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敬锐,死亡現(xiàn)場離奇詭異背传,居然都是意外死亡,警方通過查閱死者的電腦和手機台夺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門径玖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谒养,你說我怎么就攤上這事挺狰。” “怎么了买窟?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵丰泊,是天一觀的道長。 經(jīng)常有香客問我始绍,道長瞳购,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任亏推,我火速辦了婚禮学赛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吞杭。我一直安慰自己盏浇,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布芽狗。 她就那樣靜靜地躺著绢掰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪童擎。 梳的紋絲不亂的頭發(fā)上滴劲,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音顾复,去河邊找鬼班挖。 笑死,一個胖子當著我的面吹牛芯砸,可吹牛的內(nèi)容都是我干的萧芙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乙嘀,長吁一口氣:“原來是場噩夢啊……” “哼末购!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起虎谢,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盟榴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婴噩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擎场,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年几莽,在試婚紗的時候發(fā)現(xiàn)自己被綠了迅办。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡章蚣,死狀恐怖站欺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤矾策,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布磷账,位于F島的核電站,受9級特大地震影響贾虽,放射性物質(zhì)發(fā)生泄漏逃糟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一蓬豁、第九天 我趴在偏房一處隱蔽的房頂上張望绰咽。 院中可真熱鬧,春花似錦地粪、人聲如沸取募。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矛辕。三九已至,卻和暖如春付魔,著一層夾襖步出監(jiān)牢的瞬間聊品,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工几苍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翻屈,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓妻坝,卻偏偏與公主長得像伸眶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子刽宪,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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