顧亞文
摘要:本文從數(shù)值型數(shù)據(jù)、分類型數(shù)據(jù)、文本與圖像這四大最常見的數(shù)據(jù)源出發(fā),嘗試講解部分常用特征工程方法,然后介紹了降維和特征選擇這兩大特征工程主題中的通用方法。本文從特征工程的視角看待機器學(xué)習(xí)問題,希望讀者能更全面的了解機器學(xué)習(xí)的流程。
關(guān)鍵詞:常用特征工程;數(shù)據(jù)處理;降維;特征選擇
中圖分類號:TU74 文獻標(biāo)識碼:A 文章編號:1007-9416(2020)02-0217-02
0 引言
機器學(xué)習(xí)中有一句經(jīng)典的話叫做“特征工程決定了機器學(xué)習(xí)的上限,而模型和算法只是在逼近這個上限”,可見特征工程地位非常高。然而,特征工程更多是一個實踐中發(fā)展起來的方法論,很少有中文文章專門描述此問題。本論文以數(shù)值型數(shù)據(jù)、分類型數(shù)據(jù)、文本和圖像四大數(shù)據(jù)源為例,描述對這些數(shù)據(jù)的常用特征工程手段,并在最后描述降維與特征選擇的常用方法。由于特征工程本身的復(fù)雜性,本論文更多針對于方法的作用和其有效的原因,不會對方法的實現(xiàn)過程做細致的講解,具體的實現(xiàn)手段讀者可自行翻閱更加專業(yè)的資料。
1 常見數(shù)據(jù)源中的特征工程
1.1 對數(shù)值的特征工程
特征工程的目標(biāo)是將雜亂的源數(shù)據(jù)轉(zhuǎn)換成合理的數(shù)值型特征傳給機器學(xué)習(xí)模型,然而將源數(shù)據(jù)中的數(shù)值直接傳給模型是不可取的。
最主要的原因是源數(shù)據(jù)中數(shù)值的尺度跨度較大,而如K均值距離等依賴歐幾里得距離、使用梯度下降的主流模型等都極易受尺度的變化影響。針對此問題,可以考慮使用區(qū)間量化,如固定寬度分箱或分位數(shù)分箱。此外特征縮放或歸一化也是一種緩解此問題的方法。
另一方面,一般來講大多數(shù)傳統(tǒng)模型都更偏向于正態(tài)分布的輸入,而在現(xiàn)實生活中,重尾分布可能更加常見。針對于此,常用的手段有指數(shù)變換,其中最常用的是Box-Cox變換。
單個特征的表達能力有限,傳統(tǒng)的模型無法自行對特征進行組合,所以交互特征是一種常用的簡單模型堆疊方法,比如使用兩個特征的乘積組成一個新的特征,將新特征與原特征一并送入模型,可能很大程度上提高最終的結(jié)果。后面提到的神經(jīng)網(wǎng)絡(luò)作為一種復(fù)雜的模型堆疊方法,甚至可以自行提取源數(shù)據(jù)中的特征。
1.2 對分類變量的特征工程
與數(shù)值型編碼不同,分類變量由于本身沒有大小關(guān)系,不能簡單的使用實數(shù)表示。對分類變量而言,最簡單的編碼方式是獨熱編碼,除此外,有時會用虛擬編碼或效果編碼來降低維度。
在企業(yè)級應(yīng)用中有時類別的數(shù)目會非常多,比如將某電商平臺的每個用戶分為一類,此時使用上述編碼方式計算量就非常龐大,此時一者可以使用簡單的模型如邏輯回歸或支持向量機,另一方面可以壓縮特征。常用的方式有特征散列化,將每一類映射以特殊的映射方式到一個較小的區(qū)間里,然后用一個較小的向量表示原有類。另一種方法是采用分箱計數(shù),不對分類變量進行編碼,而是直接計算分類變量的值與要預(yù)測的目標(biāo)變量之間的相關(guān)統(tǒng)計量,直接將一個向量壓縮為一個實數(shù),然而由于輸入與目標(biāo)變量相關(guān)聯(lián),存在可能的數(shù)據(jù)泄漏問題。
分類變量中有一類特殊的偏序回歸問題,即每一類之間存在著一種有序關(guān)系。對于此類問題,常用的手段是考慮排錯序的代價。從特征工程的角度來講,即對每一類以其代價編碼[1]。
1.3 對文本數(shù)據(jù)的特征工程
對文本提取特征是自然語言處理中的一個基礎(chǔ)問題,其發(fā)展日新月異,我們在本篇論文只簡單介紹一些最基本的對文本的特征工程方法。
元素袋(Bag-of-words)是一個簡單有效的啟發(fā)式方法,可將一個文本文檔轉(zhuǎn)換為一個扁平向量,易于模型處理,然而其完全沒有考慮語義,所以離正確的文本語義理解還相去甚遠。N元詞袋是一個簡單的改進,消耗更多計算資源的同時也提高了效果。
文本本身有一些固有特性值得考慮:一方面文本中有大量沒有實際含義的停用詞,這些詞可以直接被忽略掉;另一方面高頻詞可能并不會有什么分類效果,而罕見詞可能會增加模型開銷并帶來重尾分布,因此這兩類也可以直接過濾掉;此外,英文單詞有大量的時態(tài)語態(tài),這些可能對處理的問題都沒有什么作用,因此對文本中的詞進行詞干提取是一個有效的操作。
對元素袋的一個最重要的改進可能是tf-idf方法,其考慮如果某單詞出現(xiàn)在很多文檔中,可能其意義就不大,而通過特征縮放突出強調(diào)有意義的單詞。對線性模型來講,可能消除沒有意義的特征,同時加快模型解的收斂速度,另一方面,它對過擬合問題更加敏感。
1.4 對圖像的特征工程
圖像可能是最受研究的源數(shù)據(jù),針對圖像的特征工程研究可謂浩浩蕩蕩。計算機視覺目前仍是最受歡迎的研究方向之一,圖像語義的研究目前還在飛速發(fā)展中。然而,針對圖像分類這一最簡單的問題,可能已經(jīng)定格在SIFT這一類基于梯度的方法和卷積神經(jīng)網(wǎng)絡(luò)上了。下面我們簡單描述SIFT方法和卷積神經(jīng)網(wǎng)絡(luò)。
由于單個像素不攜帶圖像的語義信息,研究者考慮采用圖像梯度即相鄰像素的差異作為特征,而SIFT方法是其中集大成者,在這之后的方法多數(shù)只是對其在效率上的改進。SIFT算法的實質(zhì)是在不同的尺度空間上查找關(guān)鍵點,并計算出關(guān)鍵點的方向。其主要分為四步:尺度空間極值檢測、關(guān)鍵點定位、關(guān)鍵點方向確定、關(guān)鍵點特征描述。
然而,手動提取的特征可能依舊無法與機器自動提取特征相比,卷積神經(jīng)網(wǎng)絡(luò)作為現(xiàn)有分類準(zhǔn)確率最高的方法,在有大量訓(xùn)練樣本的情況下,是更優(yōu)秀的特征提取方法。然而,由于現(xiàn)實中大量的訓(xùn)練樣本并不常見,所以SIFT特征仍最為常用。然而,近年的研究表明,在超大數(shù)據(jù)庫[2]上訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型具有較好的普適性,據(jù)此進一步衍生出了如無監(jiān)督神經(jīng)網(wǎng)絡(luò)圖像檢索等方法[3]。
2 降維與特征選擇
在特征工程中有一些通用的方法,幾乎在任何機器學(xué)習(xí)問題上都可以考慮能否一試,其中最重要的兩類就是降維和特征選擇,下面我們對其做簡要的描述。
2.1 降維
針對線性數(shù)據(jù),常用的降維方式是主成分分析(PCA)。眾所周知,任意矩陣都可以進行奇異值分解,截斷奇異值分解是矩陣在弗羅貝尼烏斯范數(shù)意義下的最優(yōu)近似。主成分分析可以借助奇異值分解完成,其核心就是使用少數(shù)不相關(guān)的變量來代替相關(guān)的變量,用來表示數(shù)據(jù),并且要求能夠保存數(shù)據(jù)中的大部分信息。
對非線性數(shù)據(jù),主成分分析不能很好的映射。通常來說,我們將圖片、音頻等信息看作一個低維流形,由于流形間相近的元素可以近似看作一個平面,此時可以通過聚類[4]來進行降維,將一個流形切割成多個自平面,繼而達到降維的效果。最常用的聚類方法是K-means方法。由于K-means方法固有的一些缺陷,在其后的研究者對其提出很多改進措施,比較有效的方法有X-means,K-means++,K-MC 2[5]等。
2.2 特征選擇
特征選擇是一個對現(xiàn)有特征進行改進的方法。對一堆雜亂的源數(shù)據(jù),研究人員基于領(lǐng)域知識或者直覺提取出一些有效的特征,然而這些特征可能會互相冗余或者部分特征可能毫無作用,此時就需要對現(xiàn)有特征進行特征選擇。
常用的特征選擇方式有三類。第一類是最簡單的過濾式方法:通過某個判斷標(biāo)準(zhǔn),如皮爾遜相關(guān)系數(shù)[6]或互信息等,對每一個特征進行排序,將得分較差的變量剔除掉。這樣做很節(jié)省計算資源,然而很可能將有用的變量一并剔除掉了。第二類方法是打包方法:對整個集合作為整體進行評估,然后按照貪心的方式逐步剔除集合中的元素。也可以從空集出發(fā)按照貪心方式逐步擴充。這樣考慮到了特征與特征間的關(guān)聯(lián)性,但當(dāng)觀測數(shù)據(jù)較少時容易過擬合,而當(dāng)特征數(shù)量較多時,計算的時間較長。最后一種方式是嵌入式方法:其核心思路是讓模型自己去選擇特征。比如正則化方式,使用L1正則可以得到稀疏結(jié)果;又或者深度學(xué)習(xí),訓(xùn)練的過程也是提取特征的過程。這種方法可能唯一的缺陷是我們必須要事先知道什么樣的選擇是好的選擇,也就是必須給模型一個正確的方向。
3 結(jié)語
本篇論文簡要的描述了一些最常用的基礎(chǔ)特征工程方法,新接觸此領(lǐng)域的讀者可以借助于本論文的分析了解此領(lǐng)域,也可以借助于參考文獻等信息詳細的了解本論文所提及的各種方法。就如文章開始所說的那樣,特征工程是一個實踐中發(fā)展出來的方法論,本文所涉及到的內(nèi)容僅為本領(lǐng)域中最基礎(chǔ)的部分,在面對一個具體問題時,除了這些常用的方法,領(lǐng)域知識和反復(fù)的嘗試可能更是必不可少的。
參考文獻
[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