機器學習項目中特征工程的5個優(yōu)秀實踐
隨著時間的推移,我們通過各種不同的技術和方法,確認在機器學習項目中什么是有效的,什么是無效的。以下總結了5個步驟希望對你有幫助。
生成簡單的特征
當?shù)谝淮伍_始建模過程時,嘗試生成盡可能多的簡單特征,嘗試生成不需要花很長時間編碼的特征。例如,與其訓練Word2vec模型,不如先實現(xiàn)一個簡單的詞袋,它用最少的代碼生成數(shù)千個特性。一開始就想使用任何可測量為特征的東西,因為沒有明確的方法可以提前知道一個或多個特征組合是否對預測有用。
id也可以是特征(如果需要的話)
將ID添加為特性集的一部分可能聽起來很愚蠢,因為唯一的ID可能不會對模型的泛化做出太多貢獻。然而,包含id使從業(yè)者能夠創(chuàng)建一個在一般情況下具有一種行為而在其他情況下具有不同行為的模型。
例如,假設我們想根據(jù)描述某個位置的一些特征對某個位置進行預測。通過將位置的id作為特征集的一部分,我們將能夠為一個一般位置添加更多的訓練示例,并訓練模型在其他特定位置表現(xiàn)不同。
減少基數(shù)(如果可能的話)
作為一般經(jīng)驗法則,如果我們有一些具有許多不同獨特值的分類特征(比如超過12個),我們應該只在希望模型根據(jù)該功能做出不同行為時才使用該功能。例如,在美國有50個州,因此你可以考慮使用一個稱為“州”的特征,如果你希望模型的期望行為在加利福尼亞是一種方式,在佛羅里達是另一種方式。
另一方面,如果我們不需要一個依賴于“州”特性的行為不同的模型,那么我們最好減少“州”特性的基數(shù)。
注意計數(shù)的問題
在某些情況下,隨著時間的推移,總數(shù)大致保持在相同的范圍內(nèi)——如果文檔長度沒有隨著時間的推移而增加或減少,例如詞袋(BoW)就是這種情況。
計數(shù)可能導致問題的實例。 例如,在一個場景中,我們具有一個特哼,可以統(tǒng)計用戶自訂閱服務以來進行的呼叫次數(shù)。 如果提供訂閱服務的公司已經(jīng)存在很長時間了,那么單純的統(tǒng)計會看到他們撥打了很多電話。
隨著數(shù)據(jù)的增長,今天不那么頻繁的值在將來可能會變得越來越頻繁。所以處理這類的問題需要增加時間窗口
進行特征選擇
以下是只在絕對必要時才執(zhí)行特性選擇的一些理由;
模型必須是可解釋的,所以最好保留最重要的特性
有嚴格的硬件要求
沒有太多的時間來執(zhí)行大量的實驗和/或為生產(chǎn)環(huán)境重建模式
在多個模型訓練之間會有預期的分布變化