- 機器學習實戰:基于Sophon平臺的機器學習理論與實踐
- 星環科技人工智能平臺團隊
- 2360字
- 2020-01-07 16:02:42
2.1.2 數值特征
數值類型的數據可能有各種來源,例如地點或人的地理位置、商品的價格、傳感器的讀數、流量計數等。盡管數值類型的數據可能滿足大部分數學模型的輸入格式,但特征工程仍然是必需的工作。一組好的特征不僅可以對數據的內在特性以及顯著方面進行描述,而且可以與模型的假設更加契合。因此,對原始數據進行適當的變換是數值特征工程的基礎。
對于數值特征而言,數據的量綱是需要檢查的第一個要素。在某些場景下可能只有數值的正負性包含重要信息,而換一個場景則可能需要知道一個粗粒度的數值大小關系。這類檢查對于累計某些計數類的特征尤為重要,比如統計網站每天的訪問次數以及餐館獲得的評論總量等。
接下來,需要考慮數值特征的規模,比如:數值的取值范圍(最大值和最小值)是多少?數值跨越多少個數量級?等等。對輸入特征進行平滑變換的模型通常對輸入的取值范圍較為敏感。比如線性模型,輸出與輸入呈線性比例縮放的關系;其他的例子包括K-Means聚類、KNN、使用RBF核的SVM,以及所有采用了歐式距離的模型。對于這類模型,通常需要對輸入特征進行歸一化,以保證輸出在一個期望的取值區間中。
另一方面,基于空間劃分的樹模型(決策樹、梯度提升樹、隨機森林)對數值特征的取值范圍并不敏感。由于決策樹模型(二叉樹)是由輸入數值特征以及階躍函數(step function,比如判斷數值是否大于40)構成的,最終結果都會轉化成二進制形式。然而,如果輸入數值的規模會隨著時間的增長而增長,比如該特征是某種變量的累計數,那么最終數值將會落在樹模型最大的一個分支內。對于這種情形,就需要周期性地對輸入進行縮放調整。
數值特征的分布也是一個需要考慮的重要因素,比如線性回歸模型假定誤差的分布服從高斯分布。在一些特殊的情形下,預測目標可能會跨多個數量級,此時誤差的高斯分布假定就不再成立了。解決這一問題的方法之一是進行數值變換,比如對數變換可以將不同量級的數值調整到合適的范圍內。
最后,多個數值特征還可以進行組合,比如加權累計等。復雜特征通??梢愿鼮橛行У夭东@原始數據中的重要信息,使得模型更加簡潔,更易于訓練和評估,并得到更好的預測結果。下面我們將介紹在Sophon中實現的幾種常用數值特征的處理方法,所有支持的方法詳見Sophon的使用手冊。
二值化
將數值特征轉換為二值特征0或1。在機器學習領域,二值化的目的是對定量的特征進行“是與否”的劃分,以剔除冗余信息。以某在線聽歌網站預測用戶對某一首歌的喜好程度為例(如圖2-5所示),用戶數據中包含用戶實際聽某首歌的次數這一數值特征,數值較大的聽歌計數意味著用戶喜歡這首歌,反之亦然。然而,從數據直方圖來看,99%的用戶的聽歌次數是24或更低,但也有一些是數以千計,最大為9667。用戶有不同的聽歌習慣。有些人可能把他們最喜歡的歌曲放在無限循環的列表中,而其他人可能只在特殊的場合欣賞它們。很難說一首歌聽20次的人一定比聽10次的人喜歡兩倍。對于這一特征,更合理的表示是使聽歌計數二值化,比方說記所有大于5次的值為1,否則記0。換句話說,如果用戶聽一首歌超過5次,那么我們將其視為用戶喜歡的歌曲。于是,模型不需要考慮原始聽歌計數的取值量級差異,使用二值化后的度量能夠更好地表達用戶的偏好(如圖2-5所示)。

圖2-5 用戶實際聽某首歌的直方圖
數值分桶
分桶或者分箱可以理解為將連續特征值轉換為離散特征值的過程。離散化對于線性模型來說是非常有幫助的,原因是它可以將目標值表示為特征值的線性組合形式,轉化為離散化之后的特征向量里的每個元素之間的線性組合。這樣離散化后的向量的每個分量都有一個權重,并引入了非線性,提升了模型擬合能力。在Sophon中實現了4種分桶方法:分位數離散化、MDLP、ChiMerge以及指定區間的特征分桶。具體原理可以參考算子的說明文檔。
還是沿用之前的聽歌計數特征為例,對于許多模型來說,這種跨越數個量級的原始特征是難以處理的。比如在線性模型中,相同的一組線性系數必須應用到特征的所有可能取值。另外,這類特征也可能導致無監督學習方法失效,比如K-Means聚類。它使用歐式距離來測量樣本之間的相似性,于是數據特征中異常大的聽歌計數將超過所有其他樣本的相似性,這可能會導致相似性度量無效。
解決方案是將數值特征離散化,也就是將聽歌計數按數量進行分組。比如0~5次記為不喜歡,用0表示;6~20次記為一般喜歡,用1表示;21~100次為比較喜歡,用2表示;超過100次記為非常喜歡,用3表示。于是,與二值化類似,分桶是使用多個分位點將數據映射到更多的離散值之上。
對數變換
對數變換是處理具有重尾分布的正值數值特征的有力工具。重尾分布指的是在尾部范圍內的概率比高斯分布的概率大。以網絡新聞流行度數據集為例,根據網絡新聞文章的特征(包括單詞數等)來預測文章的分享數(流行程度)。文章的單詞數就是一種典型的長尾特征,而長尾特征是重尾特征的一個子類型。
圖2-6比較了對數變換前后的文章單詞數量的直方圖。Y 軸現在都在正常(線性)尺度上。對數變換前,原始特征集中在X軸低值區域,是明顯的長尾分布,而X 取值在2000以上時則視為離群值。對數變換后,除了長度為零的文章(無內容)的離群值,直方圖更類似于高斯分布。

圖2-6 對數變換前后的文章單詞數量的直方圖
特征縮放與歸一化
某些特征的值是有上下界的,比如經緯度。而其他數值特征(如聽歌計數)則可能會不斷增加,直至無窮大。對輸入特征進行平滑變換的模型,比如線性回歸、邏輯回歸或其他包含矩陣運算的模型,都會受到輸入數值范圍的影響。另外,基于樹的模型對數值范圍不太敏感。如果你的模型對輸入特征的數值范圍敏感,則需要進行特征縮放。顧名思義,特征縮放會更改特征值的數值范圍,有時人們也稱其為特征歸一化或標準化。Sophon中實現了三種類型的特征縮放方法:
? minMax縮放:將數據按比例縮放到 [min, max]的區間,通常是 [0,1]。
? maxAbs縮放:將數據縮放到 [-1,1]區間。
? Standard縮放:將數據縮放為0均值、單位標準差的形式。
- 亮劍.NET:.NET深入體驗與實戰精要
- 程序設計缺陷分析與實踐
- 網絡安全管理實踐
- 電氣控制與PLC技術應用
- Mastering GitLab 12
- Hands-On Data Warehousing with Azure Data Factory
- Serverless Design Patterns and Best Practices
- Advanced Deep Learning with Keras
- 工業機器人應用系統三維建模
- 歐姆龍PLC應用系統設計實例精解
- Appcelerator Titanium Smartphone App Development Cookbook(Second Edition)
- Microsoft 365 Mobility and Security:Exam Guide MS-101
- 這樣用Word!
- 從實踐中學嵌入式Linux操作系統
- Apache Spark Machine Learning Blueprints