熱線電話:13121318867

登錄
首頁大數據時代特征工程是什么?常用的方法有哪些?
特征工程是什么?常用的方法有哪些?
2020-07-07
收藏

“數據決定了機器學習的上限,而算法只是盡可能逼近這個上限”,這里的數據指的就是經過特征工程得到的數據。特征工程指的是把原始數據轉變為模型的訓練數據的過程,它的目的就是獲取更好的訓練數據特征,使得機器學習模型逼近這個上限。

一、特征工程概念的理解

簡單說,特征工程是能夠將數據像藝術一樣展現的技術。

本質上說,呈現給算法的數據應該能擁有基本數據的相關結構或屬性 。當做特征工程時,其實是將數據屬性轉換為數據特征的過程,屬性代表了數據的所有維度,在數據建模時,如果對原始數據的所有屬性進行學習,并不能很好的找到數據的潛在趨勢,而通過特征工程對你的數據進行預處理的話,你的算法模型能夠減少受到噪聲的干擾,這樣能夠更好的找出趨勢;

事實上,好的特征甚至能夠幫你實現使用簡單的模型達到很好的效果;

但是,對于特征工程中引用的新特征,需要驗證它的確提高了預測的準確度,而不是加入了一個無用的特征,不然只會增加算法運算的復雜度。

二、特征工程常用方法

1、時間戳處理

時間戳通常需要分離成多個維度比如年、月、日、小時、分鐘、秒鐘。但在很多的應用中,大量的信息是不需要的,因此我們在呈現時間的時候,試著保證你所提供的所有數據是你的模型所需要的,并且別忘了時區,加入你的數據源來自不同的地理數據源,別忘了利用時區將數據標準化。

2、離散型變量處理

舉一個簡單的例子,由{紅,黃,藍}組成的離散型變量,最常用的方式是吧每個變量值轉換成二元屬性,即從{0.1}取一個值,也就是常說的獨熱編碼(one-hot code)。

3、分箱/分區

有時候,將連續型變量轉換成類別呈現更有意義,同時能夠使算法減少噪聲的干擾,通過將一定范圍內的數值劃分成確定的塊。

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

4、交叉特征

交叉特征算是特征工程中非常重要的方法之一,它將兩個或更多的類別屬性組合成一個。當組合的特征要比單個特征更好時,這是一項非常有用的技術。數學上來說,是對類別特征的所有值進行交叉相乘。

假如擁有一個特征A,A有兩個可能值{A1.A2}。擁有一個特征B,存在{B1.B2}等可能值。然后,A&B之間的交叉特征如下:{(A1.B1),(A1.B2),(A2.B1),(A2.B2)},并且你可以給這些組合特征取任何名字。但是需要明白每個組合特征其實代表著A和B各自信息協同作用。

5、特征選擇

為了得到更好的模型,使用某些算法自動的選出原始特征的子集。這個過程,你不會構建或修改你擁有的特征,但是會通過修建特征來達到減少噪聲和冗余。

特征選擇算法可能會用到評分方法來排名和選擇特征,比如相關性或其他確定特征重要性的方法,更進一步的方法可能需要通過試錯,來搜素出特征子集。

還有通過構建輔助模型的方法,逐步回歸就是模型構造過程中自動執行特征選擇算法的一個實例,還有像Lasso回歸和嶺回歸等正則化方法也被歸入到特征選擇,通過加入額外的約束或者懲罰項加到已有模型(損失函數)上,以防止過擬合并提高泛化能力。

6、特征縮放

有時候,你可能會注意到某些特征比其他特征擁有高得多的跨度值。舉個例子,將一個人的收入和他的年齡進行比較,更具體的例子,如某些模型(像嶺回歸)要求你必須將特征值縮放到相同的范圍值內。通過特征縮放可以避免某些特征獲得大小非常懸殊的權重值。

7、特征提取

特征提取涉及到從原始屬性中自動生成一些新的特征集的一系列算法,降維算法就屬于這一類。特征提取是一個自動將觀測值降維到一個足夠建模的小數據集的過程。

對于列表數據,可使用的方法包括一些投影方法,像主成分分析和無監督聚類算法。

對于圖形數據,可能包括一些直線監測和邊緣檢測,對于不同領域有各自的方法。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢