天天看點

快速掌握特征建構的常用方法

在之前格物彙的文章中,我們介紹了工業資料預處理的方法以及特征工程的基本知識,今天要帶大家來了解如何做特征建構。

特征建構常用方法

特征建構的常用方法是屬性分割和結合,這一般根據我們具體的問題所決定。我們通過具體的應用場景來看看:

時間列處理

時間戳屬性通常需要分離成多個次元比如年、月、日、小時、分鐘、秒鐘。通常時間序列資料會含有一定的趨勢和周期性,這時需要我們去建構趨勢因子和周期因子。

快速掌握特征建構的常用方法

分解類别屬性

一些屬性是類别型而不是數值型,舉一個簡單的例子,由{紅,綠、藍}組成的顔色屬性,最常用的方式是把每個類别屬性轉換成二進制屬性,即從{0,1}取一個值。是以基本上增加的屬性等于相應數目的類别,并且對于你資料集中的每個執行個體,隻有一個是1(其他的為0),這也就是獨熱(one-hot)編碼方式。我們在前面的文章中介紹過了,在此不再贅述。

分箱和分區

有時候,将數值型屬性轉換成類别呈現更有意義,同時能使算法減少噪聲的幹擾,通過将一定範圍内的數值劃分成确定的塊。舉個例子,我們預測一個人是否擁有某款衣服,這裡年齡是一個确切的因子。其實年齡組是更為相關的因子,是以我們可以将年齡分布劃分成1-10,11-18,19-25,26-40等年齡段,分别表示 幼兒,青少年,青年,中年四個年齡組,讓相近的年齡組表現出相似的屬性。此外,我們還可以對分箱,分區做一些統計量字段作為資料的特征。

快速掌握特征建構的常用方法

隻有在了解屬性的領域知識的基礎,确定屬性能夠劃分成簡潔的範圍時分區才有意義。即所有的數值落入一個分區時能夠呈現出共同的特征。在實際應用中,當你不想讓你的模型總是嘗試區分值之間是否太近時,分區能夠避免出現過拟合。例如,如果你所感興趣的是将一個城市作為整體,這時你可以将所有落入該城市的次元值進行整合成一個整體。分箱也能減小小錯誤的影響,通過将一個給定值劃入到最近的塊中。如果劃分範圍的數量和所有可能值相近,或對你來說準确率很重要的話,此時分箱就不适合了。

交叉特征

交叉特征是特征工程中重要的方法之一,交叉特征是一種很獨特的方式,它将兩個或更多的類别屬性組合成一個。當組合的特征要比單個特征更好時,這是一項非常有用的技術。數學上來說,是對類别特征的所有可能值進行交叉相乘。當然我們不僅僅會去查找交叉項關系,還可以去尋找更加複雜的二次項,三次項乃至更複雜的關系,這根據問題求解的需要決定。

快速掌握特征建構的常用方法

經度與緯度的組合便是交叉特征的應用執行個體,一個相同的經度對應了地圖上很多的地方,緯度也是一樣。但是一旦你将經度和緯度組合到一起,它們就代表了地理上特定的一塊區域,區域中每一部分是擁有着類似的特性。

小結

一般我們會收集與問題相關的資料作為我們的特征,但是這些特征有時不足以解釋我們的問題,我們還是會通過特征建構來增加解釋能力。這其實是對資料進行升維操作,總的來說,特征建構可以給我們的模型提供一些關鍵的資訊,來解決模型解釋能力不足的情況。但如果我們收集的資料包含了過多的特征,如何對這些特征進行提純呢?請繼續關注格物彙,我們将在之後的文章中詳細講解。

本文作者:格創東智 OT團隊(轉載請注明作者及來源)

繼續閱讀