譯者 | 朱先忠
審校 | 重樓
引言
你一定聽說過“garbage in, garbage out(輸入的垃圾數(shù)據(jù)會導(dǎo)致輸出的垃圾結(jié)果)”這句諺語,這句話在訓(xùn)練機(jī)器學(xué)習(xí)模型時確實(shí)適用。如果我們使用不相關(guān)的數(shù)據(jù)來訓(xùn)練機(jī)器學(xué)習(xí)模型,那么即使是最好的機(jī)器學(xué)習(xí)算法也無濟(jì)于事。相反,即使使用簡單的機(jī)器學(xué)習(xí)算法,使用精心設(shè)計(jì)的有意義的特征也可以獲得卓越的性能。那么,我們?nèi)绾尾拍軇?chuàng)建這些有意義的特征,從而最大限度地提高我們模型的性能呢?答案是特征工程。
當(dāng)使用傳統(tǒng)的機(jī)器學(xué)習(xí)算法,如回歸、決策樹、支持向量機(jī)和其他需要數(shù)字輸入的算法時,特征工程尤其重要。然而,創(chuàng)建這些數(shù)字輸入可不僅僅是關(guān)于數(shù)據(jù)技能的問題。這是一個需要創(chuàng)造力和領(lǐng)域知識的過程,而且它擁有與科學(xué)一樣多的藝術(shù)特征。
從廣義上講,我們可以將特征工程分為兩個部分:1)創(chuàng)建新的特征;2)處理這些特征,使其在所使用的機(jī)器學(xué)習(xí)算法中進(jìn)一步優(yōu)化。在本文中,我們將討論特征工程的這兩個組成部分相關(guān)的跨區(qū)段、結(jié)構(gòu)化、非NLP數(shù)據(jù)集等內(nèi)容。
創(chuàng)建新特征
原始數(shù)據(jù)收集可能會讓人筋疲力盡,而且在這項(xiàng)任務(wù)結(jié)束時,我們可能太累了,以至于無法投入更多的時間和精力來創(chuàng)建其他特征。但這正是我們必須抵制直接投入到模型訓(xùn)練的誘惑的地方。我向你保證,這種做法是非常有價(jià)值的!
在這個轉(zhuǎn)折點(diǎn)上,我們應(yīng)該停下來問問自己,“如果我根據(jù)我的領(lǐng)域知識手動進(jìn)行預(yù)測,哪些特征會幫助我做好工作呢?”問這個問題可能會為我們的模型創(chuàng)造新的有意義的特征開辟可能性;否則,我們的模型可能會錯過這些特征。一旦我們考慮了我們可能從中受益的其他特征,那么我們就可以利用以下技術(shù)從原始數(shù)據(jù)中創(chuàng)建新的特征。
1.聚合
顧名思義,這種技術(shù)可以幫助我們組合多個數(shù)據(jù)點(diǎn),以創(chuàng)建更全面的視圖。我們通常使用計(jì)數(shù)、求和、平均值、最小值、最大值、百分位數(shù)、標(biāo)準(zhǔn)差和變異系數(shù)等標(biāo)準(zhǔn)函數(shù)對連續(xù)數(shù)字?jǐn)?shù)據(jù)進(jìn)行聚合運(yùn)算。每個函數(shù)可以捕獲不同的信息元素,使用的最佳函數(shù)取決于具體的使用場景。通常,我們可以在特定的時間或事件窗口上應(yīng)用聚合技術(shù),這在特定問題的上下文中是極其有意義的。
讓我們舉一個例子,我們想預(yù)測給定的信用卡交易是否是欺詐性的。對于這個使用場景,我們無疑可以使用特定于交易的特征,但除了這些特征之外,我們還可以從創(chuàng)建聚合的客戶級特征中受益,如:
- 客戶在過去五年中成為欺詐受害者的次數(shù):一個客戶以前曾多次成為欺詐受害者,更有可能再次成為欺詐受害者。因此,使用這種聚合的客戶級視圖可以提供適當(dāng)?shù)念A(yù)測信號。
- 最后五筆交易金額的中位數(shù):通常,當(dāng)信用卡受損時,欺詐者可能會嘗試進(jìn)行多次小數(shù)額交易來測試信用卡。現(xiàn)在,小數(shù)額交易非常常見,可能不是欺詐的跡象,但如果我們在短時間內(nèi)連續(xù)看到許多此類交易,這可能表明信用卡受損。對于這樣的情況,我們可以考慮創(chuàng)建一個將最后幾筆交易金額考慮在內(nèi)的聚合特征。
上圖顯示了單個交易金額情況。我們可以看到,孤立的小數(shù)額交易并不罕見,也不表明存在欺詐;然而,連續(xù)多次小數(shù)額交易卻是欺詐的跡象。下圖顯示了最后五筆交易金額的滾動中位數(shù),只有在存在多筆連續(xù)小數(shù)額交易的模式時,才會返回低值。在這種情況下,底部聚合視圖可以使用交易金額作為特征來區(qū)分合法的小數(shù)額交易和存在欺詐的小數(shù)額交易事務(wù)。
2.差異和比率
在許多類型的問題中,集合模式的變化對于預(yù)測或異常檢測是非常有價(jià)值的信號。其中,差異和比率是表示數(shù)字特征變化的有效技術(shù)。就像聚合一樣,我們也可以在問題的上下文中在有意義的時間窗口內(nèi)應(yīng)用這些技術(shù)。
示例:
- 過去1小時內(nèi)新商戶交易的百分比與過去30天內(nèi)新商戶成交的百分比之間的差異:快速連續(xù)的高百分比新商戶交易本身可能表明存在欺詐風(fēng)險(xiǎn),但是,當(dāng)我們看到這種行為與客戶的歷史行為相比發(fā)生了變化時,這將成為一個更加明顯的信號。
- 當(dāng)天的交易次數(shù)與最近30天的每日交易次數(shù)中位數(shù)的比率:當(dāng)信用卡被破壞時,它可能會在較短的時間窗口內(nèi)發(fā)生許多交易,這可能不符合過去的信用卡使用情況。當(dāng)前一天的交易計(jì)數(shù)與最后30天的中間每日的交易計(jì)數(shù)的比率顯著提高可能意味著存在欺詐性使用模式。
從上表中我們可以看出,給定日期的高交易計(jì)數(shù)本身可能并不意味著存在異常交易行為。相反,基于比率的特征可以促進(jìn)客戶當(dāng)前交易行為與其過去交易行為之間的比較,從而可以更有效地捕捉異常。
3.年齡編碼
我們可以使用年齡計(jì)算技術(shù),通過獲取兩個時間戳或日期之間的差異,將日期或時間戳特征轉(zhuǎn)換為數(shù)字特征。如果與特征值相關(guān)聯(lián)的保有期可以是用于預(yù)測的有價(jià)值的信號,則我們也可以使用該技術(shù)將某些非數(shù)字特征轉(zhuǎn)換為有意義的數(shù)字特征。
示例:
- 信用卡上次使用后的天數(shù):長期處于休眠狀態(tài)的信用卡上的突然交易可能與高欺詐風(fēng)險(xiǎn)有關(guān)。我們可以通過計(jì)算自上次使用信用卡以來的日期與當(dāng)前交易日期之間的時間差來計(jì)算這一特征。
- 自客戶的設(shè)備首次使用以來的天數(shù):如果我們看到來自新設(shè)備的交易,它可能比客戶使用時間更長的設(shè)備進(jìn)行的交易風(fēng)險(xiǎn)更大。我們可以創(chuàng)建一個特征,將設(shè)備的使用年限指示為客戶首次使用該設(shè)備的日期與當(dāng)前交易日期之間的差異。
上表顯示了一個年齡編碼的示例。在這里,我們創(chuàng)建了一個新的數(shù)字類型的特征“Days since transaction device first used(自交易設(shè)備首次使用以來的天數(shù))”,作為客戶設(shè)備首次使用日期和當(dāng)前交易日期之間的天數(shù)差。
4.指示器編碼
指示器或布爾特征具有二進(jìn)制值{1,0}或{True,F(xiàn)alse}。指示器特征是一種非常常見的數(shù)據(jù)類型,用于表示各種類型的二進(jìn)制信息。在某些情況下,我們可能已經(jīng)具有數(shù)字形式的二進(jìn)制特征,而在其他情況下,它們可能具有非數(shù)字值。要使用非數(shù)字二進(jìn)制特征進(jìn)行模型訓(xùn)練,我們所要做的就是將它們映射到數(shù)字值。
除了這些常見的情況和指示器特征的使用之外,我們還可以利用指示器編碼作為一種工具來表示非數(shù)字?jǐn)?shù)據(jù)點(diǎn)之間的比較。這個屬性使它特別強(qiáng)大,因?yàn)樗鼮槲覀儨y量非數(shù)字特征的變化創(chuàng)造了一種方式。
示例:
- 最近登錄事件期間驗(yàn)證失敗:最近登錄失敗事件可能與更高的欺詐交易風(fēng)險(xiǎn)有關(guān)。在這種情況下,原始數(shù)據(jù)可能具有特征值“Yes”或“No”;我們在這里所要做的就是將這些值映射到1或0。
- 與上次交易相比,國家的位置發(fā)生了變化:國家位置的變化可能表明信用卡受損。在這里,創(chuàng)建一個表示非數(shù)字特征為“國家位置”變化的指示器特征將捕獲此國家變化信息。
上表顯示了一個指示器編碼的示例。在這里,我們通過將客戶的當(dāng)前交易國家與他們以前的交易國家進(jìn)行比較,創(chuàng)建了一個新的數(shù)字特征“Country change from previous transaction(從上次交易以來的國家變化)”。
5.獨(dú)熱編碼
如果我們的特征數(shù)據(jù)是分類形式的,無論是數(shù)字的還是非數(shù)字的都可以應(yīng)用獨(dú)熱編碼技術(shù)。其中,數(shù)字分類形式是指包含非連續(xù)或非測量數(shù)據(jù)的數(shù)字?jǐn)?shù)據(jù),如地理區(qū)域代碼、商店ID和其他此類數(shù)據(jù)。獨(dú)熱編碼技術(shù)可以將這些特征轉(zhuǎn)換為一組指示器特征,我們可以在訓(xùn)練機(jī)器學(xué)習(xí)模型時使用這些指示器特征。對分類特征應(yīng)用獨(dú)熱編碼將為該分類變量中的每個類別創(chuàng)建一個新的二進(jìn)制特征。由于新特征的數(shù)量隨著類別數(shù)量的增加而增加,因此該技術(shù)適用于類別數(shù)量較少的特征,尤其是當(dāng)我們有較小的數(shù)據(jù)集時。其中一條標(biāo)準(zhǔn)經(jīng)驗(yàn)法則建議,如果我們每個類別至少有十條記錄,就應(yīng)該應(yīng)用這項(xiàng)技術(shù)。
示例:
- 交易性購買類別:某些類型的購買類別可能與較高的欺詐風(fēng)險(xiǎn)相關(guān)。由于購買類別名稱是文本數(shù)據(jù),我們可以應(yīng)用獨(dú)熱編碼技術(shù)將此特征轉(zhuǎn)換為一組數(shù)字指示器特征。如果有十個不同的采購類別名稱,獨(dú)熱編碼將創(chuàng)建十個新的指示器特征,每個采購類別名稱對應(yīng)一個指示器特征。
- 設(shè)備類型:在線交易可以通過幾種不同類型的設(shè)備進(jìn)行,如iPhone、Android手機(jī)、Windows PC和Mac。其中一些設(shè)備更容易受到惡意軟件的影響,或者欺詐者很容易訪問,因此可能與更高的欺詐風(fēng)險(xiǎn)有關(guān)。要以數(shù)字形式包括設(shè)備類型信息,我們可以對設(shè)備類型應(yīng)用獨(dú)熱編碼,這將為每個設(shè)備類型創(chuàng)建一個新的指示器特征。
上表顯示了獨(dú)熱編碼的示例。在這里,我們通過將獨(dú)熱編碼技術(shù)應(yīng)用于非數(shù)字分類特征“Device Type(設(shè)備類型)”,創(chuàng)建了一組新的數(shù)字指示器特征。
6.目標(biāo)編碼
目標(biāo)編碼技術(shù)適用于應(yīng)用獨(dú)熱編碼的相同類型的特征;但是,與獨(dú)熱編碼器相比,這種技術(shù)存在一些優(yōu)點(diǎn)和缺點(diǎn)。當(dāng)類別的數(shù)量很大時(基數(shù)很高),使用獨(dú)熱編碼將不樂觀地增加特征的數(shù)量,這可能導(dǎo)致模型過擬合。在這種情況下,目標(biāo)編碼可能是一種有效的技術(shù),但前提是我們正在研究監(jiān)督學(xué)習(xí)問題。這是一種將每個類別值映射到該類別目標(biāo)的預(yù)期值的技術(shù)。如果處理具有連續(xù)目標(biāo)的回歸問題,那么此計(jì)算將類別映射到該類別的平均目標(biāo)值。在二進(jìn)制目標(biāo)的分類問題的情況下,目標(biāo)編碼將把類別映射到該類別的正事件概率。與獨(dú)熱編碼不同,這種技術(shù)的優(yōu)點(diǎn)是不增加特征的數(shù)量。但是,這種技術(shù)也存在缺點(diǎn),就是它只能應(yīng)用于監(jiān)督學(xué)習(xí)問題。應(yīng)用這項(xiàng)技術(shù)也可能使模型容易受到過擬合的影響,特別是在某些類別的觀測數(shù)量較低的情況下。
示例:
- 商戶名稱:針對某些商戶的交易可能存在欺詐行為??赡苡谐汕先f這樣的商家,每個商家都有不同的欺詐交易風(fēng)險(xiǎn)。對包含商家名稱的特征應(yīng)用獨(dú)熱編碼可能會引入數(shù)千個新特征,這是不可取的。在這種情況下,目標(biāo)編碼可以在不增加特征數(shù)量的情況下幫助捕獲商家的欺詐風(fēng)險(xiǎn)信息。
- 交易郵政編碼:就像商家一樣,在不同郵政編碼中進(jìn)行的交易可能代表不同的欺詐風(fēng)險(xiǎn)水平。盡管郵政編碼中存在數(shù)值,但它們不是連續(xù)的測量變量,不應(yīng)按原樣在模型中使用。相反,我們可以通過應(yīng)用目標(biāo)編碼等技術(shù)來合并與每個郵政編碼相關(guān)的欺詐風(fēng)險(xiǎn)信息。
上表給出了目標(biāo)編碼的示例。在這里,我們通過將目標(biāo)編碼技術(shù)應(yīng)用于非數(shù)字分類特征“Merchant Name(商戶姓名)”,創(chuàng)建了一個新的數(shù)字特征“Merchant Name target encoding(商戶姓名目標(biāo)編碼)”。顧名思義,這種技術(shù)依賴于目標(biāo)值來計(jì)算新的特征值。
一旦我們從原始數(shù)據(jù)中創(chuàng)建了新特性,下一步就是對它們進(jìn)行處理,以獲得最佳的模型性能。我們通過下一節(jié)中討論的特征處理來實(shí)現(xiàn)這一點(diǎn)。
特征處理
特征處理是指一系列數(shù)據(jù)處理步驟,以確保機(jī)器學(xué)習(xí)模型符合預(yù)期的數(shù)據(jù)。雖然在使用某些機(jī)器學(xué)習(xí)算法時需要其中一些處理步驟,但其他步驟確保我們在所考慮的特征和機(jī)器學(xué)習(xí)算法之間達(dá)成良好的一致性。在本節(jié)中,讓我們討論一些常見的特征處理步驟以及為什么需要它們。
1.異常值處理
一些機(jī)器學(xué)習(xí)算法,特別是回歸模型等參數(shù)算法,會受到異常值的嚴(yán)重影響。這些機(jī)器學(xué)習(xí)算法試圖適應(yīng)異常值,嚴(yán)重影響模型參數(shù)并損害整體性能。要處理異常值,我們必須首先識別它們。我們可以通過應(yīng)用某些經(jīng)驗(yàn)法則來檢測特定特征的異常值,例如絕對值大于平均值加三個標(biāo)準(zhǔn)差,或者一個值在最接近的須值之外(最接近的四分位數(shù)加四分位數(shù)間距值的1.5倍)。一旦我們確定了特定特征中的異常值,我們就可以使用以下一些技術(shù)來處理異常值:
- 刪除:我們可以刪除至少有一個異常值的觀測值。如果我們的數(shù)據(jù)在不同特征之間存在太多的異常值,我們可能會失去許多觀測結(jié)果。
- 替換:我們可以用平均值替換異常值,例如給定特征的平均值、中值和模數(shù)。
- 特征轉(zhuǎn)換或標(biāo)準(zhǔn)化:我們可以使用對數(shù)轉(zhuǎn)換或特征標(biāo)準(zhǔn)化(如下文中所述的)來減少異常值的大小。
- 封頂和截底:我們可以將超出某個值的異常值替換為該值,例如,將第99個百分位數(shù)以上的所有值替換為第99個百分點(diǎn)值,將第1個百分位以下的所有值都替換為第1個百分點(diǎn)值。
上圖顯示了檢測單變量異常值的兩種常用技術(shù)。我們可以看到,這兩種技術(shù)可以產(chǎn)生不同的異常值集。如果數(shù)據(jù)遵循正態(tài)分布,則應(yīng)使用均值+3的標(biāo)準(zhǔn)差技術(shù)。注意,基于箱形圖的技術(shù)一般來說更通用些,可以應(yīng)用于任何分布的數(shù)據(jù)。
注意,有一些技術(shù)可以檢測多變量異常值(關(guān)于多個特征的異常值)的觀測值,但它們更復(fù)雜,通常不會在機(jī)器學(xué)習(xí)模型訓(xùn)練方面增加太多的價(jià)值。還要注意的是,在使用大多數(shù)非參數(shù)機(jī)器學(xué)習(xí)模型(如支持向量機(jī))和基于樹的算法(如決策樹、隨機(jī)森林和XGBoost)時,不需要考慮異常值。
2.缺失值處理
缺失數(shù)據(jù)在真實(shí)世界的數(shù)據(jù)集中非常常見。除了XGBoost這樣的少數(shù)算法外,大多數(shù)傳統(tǒng)的機(jī)器學(xué)習(xí)算法都不允許在訓(xùn)練數(shù)據(jù)集中丟失值。因此,修復(fù)缺失值是機(jī)器學(xué)習(xí)建模中的常規(guī)任務(wù)之一。目前,已經(jīng)存在幾種技術(shù)可以處理缺失的值;然而,在實(shí)現(xiàn)任何技術(shù)之前,重要的是要了解丟失數(shù)據(jù)的原因,或者至少要知道數(shù)據(jù)是否隨機(jī)丟失。
如果數(shù)據(jù)不是隨機(jī)丟失的,這意味著某些亞組更有可能存在丟失的數(shù)據(jù),那么輸入這些數(shù)據(jù)的值可能很困難,尤其是在幾乎沒有可用數(shù)據(jù)的情況下。如果數(shù)據(jù)隨機(jī)丟失,我們可以使用接下來描述的一些常見處理技術(shù)。它們都有各自的優(yōu)缺點(diǎn),但是由我們自己來決定什么方法最適合我們的使用場景。
- 刪除觀測值:我們可以刪除至少有一個缺失特征值的觀測值。然而,如果我們的數(shù)據(jù)在不同的特征中有太多的缺失值,那么我們最終可能會失去許多觀測結(jié)果。
- 刪除特征:如果一個特征存在大量缺失值,我們可以選擇把這一特征徹底刪除掉。
- 用平均值替換:我們可以使用平均值,如給定特征的平均值、中值和模值來替換缺失的值。這種方法實(shí)施起來很簡單,但可能無法為所有類型的觀測提供良好的估計(jì)。例如,高欺詐風(fēng)險(xiǎn)交易可能具有與低欺詐風(fēng)險(xiǎn)交易金額不同的平均交易金額,并且使用總體平均值來代替缺失的高欺詐風(fēng)險(xiǎn)的交易金額可能不是一個好的替換方案。
- 最大似然、多重輸入、K個最近鄰:這些是更復(fù)雜的方法,考慮了與數(shù)據(jù)集中其他特征的關(guān)系,可以提供比總體平均值更準(zhǔn)確的估計(jì)。然而,實(shí)現(xiàn)這些方法卻需要額外的建模或算法實(shí)現(xiàn)。
上表顯示了缺失值處理中常用技術(shù)的應(yīng)用。
3.縮放
通常,我們在機(jī)器學(xué)習(xí)模型中使用的特征具有不同的范圍。如果我們在不縮放的情況下使用它們,則具有大絕對值的特征將主導(dǎo)預(yù)測結(jié)果。相反,為了給每個特征一個公平的機(jī)會來為預(yù)測結(jié)果做出貢獻(xiàn),我們必須將所有特征放在同一尺度上。兩種最常見的縮放技術(shù)是:
- 規(guī)一化:此縮放技術(shù)將特征值限制在0和1之間。為了應(yīng)用歸一化,我們減去最小特征值,并將其除以該特征的范圍(最小值和最大值之間的差)。如果我們的一些特征有尖銳的偏斜或有一些極端的異常值,那么歸一化可能不是一種好的技術(shù)。
- 標(biāo)準(zhǔn)化:該技術(shù)將特征數(shù)據(jù)分布轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布。我們可以通過減去平均值并除以標(biāo)準(zhǔn)差來實(shí)現(xiàn)這項(xiàng)技術(shù)。如果特征具有尖銳的偏斜或一些極端的異常值,則通常優(yōu)選這種技術(shù)。
請注意,基于樹的算法,如決策樹、隨機(jī)森林、XGBoost和其他算法,可以處理未縮放的數(shù)據(jù),并且在使用這些算法時不需要縮放。
上表顯示了兩種常用特征縮放技術(shù)的應(yīng)用情況。
上圖顯示了原始、標(biāo)準(zhǔn)化和標(biāo)準(zhǔn)化特征值之間的比例差異。正如我們所看到的,縮放不會影響數(shù)據(jù)分布的形狀。
4.降維
今天,我們擁有大量的數(shù)據(jù),我們可以構(gòu)建大量的特征集合來訓(xùn)練我們的模型。對于大多數(shù)算法來說,擁有更多的特征是好的,因?yàn)檫@意味著將提供更多的選項(xiàng)來提高模型性能。然而,并非所有算法都是如此?;诰嚯x度量的算法受到維數(shù)災(zāi)難——隨著特征數(shù)量的大幅增加,兩個觀測值之間的距離值變得毫無意義。因此,要使用依賴于距離度量的算法,我們應(yīng)該確保不使用大量特征。
如果我們的數(shù)據(jù)集擁有大量的特征,那么,如果我們不知道保留哪些特征和丟棄哪些特征的話,我們可以使用主成分分析(PCA)等技術(shù)。PCA技術(shù)能夠?qū)⑴f特征集轉(zhuǎn)換為新特征集。它會創(chuàng)建新的特征,使得具有最高特征值的特征捕獲來自舊特征的大部分信息。然后,我們可以只保留前幾個新特征,并丟棄其余的特征。
其他統(tǒng)計(jì)技術(shù),如關(guān)聯(lián)分析和特征選擇算法,可以用于監(jiān)督學(xué)習(xí)問題,以減少特征的數(shù)量。然而,它們通常不會捕獲與PCA對相同數(shù)量的特征所捕獲的信息水平相同的信息。
上表顯示了主成分分析在特征降維中的應(yīng)用。正如我們所看到的,前三個特征捕獲了原始數(shù)據(jù)集中超過87%的信息。在這種情況下,我們可以選擇忽略兩個特征(f4和f5),以獲得小于13%的信息損失。要保留的特征數(shù)量和要消除的特征數(shù)量將因問題而異,具體取決于各種因素。
5.向正態(tài)分布的轉(zhuǎn)換
這種措施是一個例外,因?yàn)樗贿m用于目標(biāo),而不適用于特征。此外,大多數(shù)機(jī)器學(xué)習(xí)算法對目標(biāo)的分布沒有任何限制,但某些算法,如線性回歸,要求目標(biāo)正態(tài)地分布。線性回歸假設(shè)所有數(shù)據(jù)點(diǎn)的誤差值對稱且集中在零附近(就像正態(tài)分布的形狀一樣),正態(tài)分布目標(biāo)變量確保滿足這一假設(shè)。
我們可以通過繪制直方圖來了解目標(biāo)的分布情況。像Shapiro-Wilk檢驗(yàn)這樣的統(tǒng)計(jì)檢驗(yàn)通過檢驗(yàn)這一假設(shè)來告訴我們正態(tài)性。如果我們的目標(biāo)不是正態(tài)分布的,我們可以嘗試各種變換,如對數(shù)變換、平方變換、平方根變換等,以檢查哪些變換使目標(biāo)分布正態(tài)。還有一種Box-Cox變換,它嘗試多個參數(shù)值,我們可以選擇一個最能將目標(biāo)的分布變換為正態(tài)的參數(shù)值。
上圖顯示了原始目標(biāo)數(shù)據(jù)的三種轉(zhuǎn)換。在這種特定情況下,我們可以看到,日志轉(zhuǎn)換最能將原始數(shù)據(jù)分布轉(zhuǎn)換為正態(tài)分布。
注意:雖然我們可以以任何順序在特征中實(shí)現(xiàn)特征處理步驟,但我們必須徹底考慮它們的應(yīng)用順序。例如,使用均值替換的缺失值處理可以在異常值檢測之前或之后實(shí)現(xiàn)。然而,用于替換的平均值可能會有所不同,這取決于我們是在異常值處理之前還是之后處理缺失值。本文中概述的特征處理序列按問題對后續(xù)處理步驟的影響順序處理這些問題。因此,遵循這個順序通常對解決大多數(shù)問題是有效的。
結(jié)論
正如引言中所提到的,特征工程是機(jī)器學(xué)習(xí)的一個維度,它使我們能夠在特殊程度上控制模型的性能。為了充分利用特征工程的潛力,我們在本文中學(xué)習(xí)了各種技術(shù),這些技術(shù)可以幫助我們創(chuàng)建新的特征并對其進(jìn)行處理,以優(yōu)化機(jī)器學(xué)習(xí)模型。無論您選擇使用本文中的哪些特征工程原理和技術(shù),我們在此特別強(qiáng)調(diào)的是要理解機(jī)器學(xué)習(xí)不僅僅是要求算法找出模式。也就是說,我們通過提供算法所真正需要的數(shù)據(jù)類型,最終使算法能夠有效地完成其工作。
最后,除非另有說明;否則,本文所有圖片均由作者本人提供。
譯者介紹
朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。
原文標(biāo)題:Feature Engineering for Machine Learning,作者:Sumit Makashir
鏈接:
https://towardsdatascience.com/feature-engineering-for-machine-learning-eb2e0cff7a30。