顧亞文
摘要:本文從數值型數據、分類型數據、文本與圖像這四大最常見的數據源出發,嘗試講解部分常用特征工程方法,然后介紹了降維和特征選擇這兩大特征工程主題中的通用方法。本文從特征工程的視角看待機器學習問題,希望讀者能更全面的了解機器學習的流程。
關鍵詞:常用特征工程;數據處理;降維;特征選擇
中圖分類號:TU74 文獻標識碼:A 文章編號:1007-9416(2020)02-0217-02
0 引言
機器學習中有一句經典的話叫做“特征工程決定了機器學習的上限,而模型和算法只是在逼近這個上限”,可見特征工程地位非常高。然而,特征工程更多是一個實踐中發展起來的方法論,很少有中文文章專門描述此問題。本論文以數值型數據、分類型數據、文本和圖像四大數據源為例,描述對這些數據的常用特征工程手段,并在最后描述降維與特征選擇的常用方法。由于特征工程本身的復雜性,本論文更多針對于方法的作用和其有效的原因,不會對方法的實現過程做細致的講解,具體的實現手段讀者可自行翻閱更加專業的資料。
1 常見數據源中的特征工程
1.1 對數值的特征工程
特征工程的目標是將雜亂的源數據轉換成合理的數值型特征傳給機器學習模型,然而將源數據中的數值直接傳給模型是不可取的。
最主要的原因是源數據中數值的尺度跨度較大,而如K均值距離等依賴歐幾里得距離、使用梯度下降的主流模型等都極易受尺度的變化影響。針對此問題,可以考慮使用區間量化,如固定寬度分箱或分位數分箱。此外特征縮放或歸一化也是一種緩解此問題的方法。
另一方面,一般來講大多數傳統模型都更偏向于正態分布的輸入,而在現實生活中,重尾分布可能更加常見。針對于此,常用的手段有指數變換,其中最常用的是Box-Cox變換。
單個特征的表達能力有限,傳統的模型無法自行對特征進行組合,所以交互特征是一種常用的簡單模型堆疊方法,比如使用兩個特征的乘積組成一個新的特征,將新特征與原特征一并送入模型,可能很大程度上提高最終的結果。后面提到的神經網絡作為一種復雜的模型堆疊方法,甚至可以自行提取源數據中的特征。
1.2 對分類變量的特征工程
與數值型編碼不同,分類變量由于本身沒有大小關系,不能簡單的使用實數表示。對分類變量而言,最簡單的編碼方式是獨熱編碼,除此外,有時會用虛擬編碼或效果編碼來降低維度。
在企業級應用中有時類別的數目會非常多,比如將某電商平臺的每個用戶分為一類,此時使用上述編碼方式計算量就非常龐大,此時一者可以使用簡單的模型如邏輯回歸或支持向量機,另一方面可以壓縮特征。常用的方式有特征散列化,將每一類映射以特殊的映射方式到一個較小的區間里,然后用一個較小的向量表示原有類。另一種方法是采用分箱計數,不對分類變量進行編碼,而是直接計算分類變量的值與要預測的目標變量之間的相關統計量,直接將一個向量壓縮為一個實數,然而由于輸入與目標變量相關聯,存在可能的數據泄漏問題。
分類變量中有一類特殊的偏序回歸問題,即每一類之間存在著一種有序關系。對于此類問題,常用的手段是考慮排錯序的代價。從特征工程的角度來講,即對每一類以其代價編碼[1]。
1.3 對文本數據的特征工程
對文本提取特征是自然語言處理中的一個基礎問題,其發展日新月異,我們在本篇論文只簡單介紹一些最基本的對文本的特征工程方法。
元素袋(Bag-of-words)是一個簡單有效的啟發式方法,可將一個文本文檔轉換為一個扁平向量,易于模型處理,然而其完全沒有考慮語義,所以離正確的文本語義理解還相去甚遠。N元詞袋是一個簡單的改進,消耗更多計算資源的同時也提高了效果。
文本本身有一些固有特性值得考慮:一方面文本中有大量沒有實際含義的停用詞,這些詞可以直接被忽略掉;另一方面高頻詞可能并不會有什么分類效果,而罕見詞可能會增加模型開銷并帶來重尾分布,因此這兩類也可以直接過濾掉;此外,英文單詞有大量的時態語態,這些可能對處理的問題都沒有什么作用,因此對文本中的詞進行詞干提取是一個有效的操作。
對元素袋的一個最重要的改進可能是tf-idf方法,其考慮如果某單詞出現在很多文檔中,可能其意義就不大,而通過特征縮放突出強調有意義的單詞。對線性模型來講,可能消除沒有意義的特征,同時加快模型解的收斂速度,另一方面,它對過擬合問題更加敏感。
1.4 對圖像的特征工程
圖像可能是最受研究的源數據,針對圖像的特征工程研究可謂浩浩蕩蕩。計算機視覺目前仍是最受歡迎的研究方向之一,圖像語義的研究目前還在飛速發展中。然而,針對圖像分類這一最簡單的問題,可能已經定格在SIFT這一類基于梯度的方法和卷積神經網絡上了。下面我們簡單描述SIFT方法和卷積神經網絡。
由于單個像素不攜帶圖像的語義信息,研究者考慮采用圖像梯度即相鄰像素的差異作為特征,而SIFT方法是其中集大成者,在這之后的方法多數只是對其在效率上的改進。SIFT算法的實質是在不同的尺度空間上查找關鍵點,并計算出關鍵點的方向。其主要分為四步:尺度空間極值檢測、關鍵點定位、關鍵點方向確定、關鍵點特征描述。
然而,手動提取的特征可能依舊無法與機器自動提取特征相比,卷積神經網絡作為現有分類準確率最高的方法,在有大量訓練樣本的情況下,是更優秀的特征提取方法。然而,由于現實中大量的訓練樣本并不常見,所以SIFT特征仍最為常用。然而,近年的研究表明,在超大數據庫[2]上訓練的神經網絡模型具有較好的普適性,據此進一步衍生出了如無監督神經網絡圖像檢索等方法[3]。
2 降維與特征選擇
在特征工程中有一些通用的方法,幾乎在任何機器學習問題上都可以考慮能否一試,其中最重要的兩類就是降維和特征選擇,下面我們對其做簡要的描述。
2.1 降維
針對線性數據,常用的降維方式是主成分分析(PCA)。眾所周知,任意矩陣都可以進行奇異值分解,截斷奇異值分解是矩陣在弗羅貝尼烏斯范數意義下的最優近似。主成分分析可以借助奇異值分解完成,其核心就是使用少數不相關的變量來代替相關的變量,用來表示數據,并且要求能夠保存數據中的大部分信息。
對非線性數據,主成分分析不能很好的映射。通常來說,我們將圖片、音頻等信息看作一個低維流形,由于流形間相近的元素可以近似看作一個平面,此時可以通過聚類[4]來進行降維,將一個流形切割成多個自平面,繼而達到降維的效果。最常用的聚類方法是K-means方法。由于K-means方法固有的一些缺陷,在其后的研究者對其提出很多改進措施,比較有效的方法有X-means,K-means++,K-MC 2[5]等。
2.2 特征選擇
特征選擇是一個對現有特征進行改進的方法。對一堆雜亂的源數據,研究人員基于領域知識或者直覺提取出一些有效的特征,然而這些特征可能會互相冗余或者部分特征可能毫無作用,此時就需要對現有特征進行特征選擇。
常用的特征選擇方式有三類。第一類是最簡單的過濾式方法:通過某個判斷標準,如皮爾遜相關系數[6]或互信息等,對每一個特征進行排序,將得分較差的變量剔除掉。這樣做很節省計算資源,然而很可能將有用的變量一并剔除掉了。第二類方法是打包方法:對整個集合作為整體進行評估,然后按照貪心的方式逐步剔除集合中的元素。也可以從空集出發按照貪心方式逐步擴充。這樣考慮到了特征與特征間的關聯性,但當觀測數據較少時容易過擬合,而當特征數量較多時,計算的時間較長。最后一種方式是嵌入式方法:其核心思路是讓模型自己去選擇特征。比如正則化方式,使用L1正則可以得到稀疏結果;又或者深度學習,訓練的過程也是提取特征的過程。這種方法可能唯一的缺陷是我們必須要事先知道什么樣的選擇是好的選擇,也就是必須給模型一個正確的方向。
3 結語
本篇論文簡要的描述了一些最常用的基礎特征工程方法,新接觸此領域的讀者可以借助于本論文的分析了解此領域,也可以借助于參考文獻等信息詳細的了解本論文所提及的各種方法。就如文章開始所說的那樣,特征工程是一個實踐中發展出來的方法論,本文所涉及到的內容僅為本領域中最基礎的部分,在面對一個具體問題時,除了這些常用的方法,領域知識和反復的嘗試可能更是必不可少的。
參考文獻
[1] Diaz R,Marathe A.Soft Labels for Ordinal Regression[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2019:4738-4747.
[2] Krizhevsky A,Sutskever I,Hinton G E. Imagenet classification with deep convolutional neural networks[C].Advances in neural information processing systems,2012:1097-1105.
[3] Xu J,Shi C,Qi C,et al.Unsupervised part-based weighting aggregation of deep convolutional features for image retrieval[C].Thirty-Second AAAI Conference on Artificial Intelligence,2018.
[4] Jain A K.Data clustering:50 years beyond K-means[J].Pattern recognition letters,2010,31(8):651-666.
[5] Bachem O,Lucic M,Hassani S H,et al.Approximate k-means++ in sublinear time[C].Thirtieth AAAI Conference on Artificial Intelligence,2016.
[6] Benesty J,Chen J,Huang Y,et al.:Pearson correlation coefficient[M].Noise reduction in speech processing:Springer,2009:1-4.
A Preliminary Analysis of? Basic Feature Engineering
GU Ya-wen
(Jinken College of? Technolog, Institute of? Information Engineering and Digitial Art, Nanjing? Jiangsu? 211156)
Abstract:Starting from the four most common data sources of numerical data, categorized data, text and image, this paper attempts to explain some common feature engineering methods, and then introduces the general methods of dimension reduction and feature selection. This paper describes machine learning from the perspective of feature engineering, hoping that readers can have a more comprehensive understanding of the process of machine learning.
Key words:commonly used feature engineering; data processing; dimension reduction; feature selection