羅曉牧 崔曼曼
摘 要:在數(shù)據(jù)挖掘競賽中,特征選擇是最重要的環(huán)節(jié)之一,直接影響最終的比賽結(jié)果。本文通過對特征選擇的一般方法作比較,歸納和總結(jié),旨在激發(fā)學生興趣,進一步掌握機器學習一般流程的方法,提高競賽成績。
關(guān)鍵詞:機器學習;數(shù)據(jù)競賽;特征選擇
DOI:10.12249/j.issn.1005-4669.2020.27.247
基金項目:廣州中醫(yī)藥大學校級教學改革項目(A3-0433-181-427-039),廣州中醫(yī)藥大學校級混合式教學模式改革項目《機器學習導論之混合式教學》(校內(nèi)編號:2020-70-17);廣州中醫(yī)藥大學“專創(chuàng)融合”課程建設項目《機器學習導論“專創(chuàng)融合”課程建設》(校內(nèi)編號:2020-53-11)
在數(shù)據(jù)挖掘競賽中,特征選擇是從大量的特征中選出合適數(shù)量的特征的一個流程。“數(shù)據(jù)和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已“[1],由此可見其重要性。特征選擇有相當多優(yōu)點,同時也存在適用于特征選擇流程的若干技術(shù)。目前很多流行的機器學習材料,都未能給出特征工程和特征選擇的詳細論述。其主要原因是大部分機器學習算法有標準的推導過程,因而易于講解。但是在很多實際問題中,尋找和篩選特征變量并沒有普適的方法。然而,特征工程和特征選擇對于分析結(jié)果的影響,往往比之后的機器學習模型的選擇更為重要。
本文將探討比較不同特征選擇技術(shù)的不同特點,提高教學效果。通過特征選擇,可以提高機器學習系統(tǒng)的效率,例如:提高精度、使模型容易解析、縮短訓練時間、減少過擬合、增加泛化能力、容易軟件實現(xiàn)、減少模型錯誤所帶來的風險、減少變量的冗余,減少高維空間的錯誤學習行為等。特征選擇主要包括三大類方法,即過濾法(Filter)、包裝法(Wrapper)和嵌入法(Embedded)[2]。本文著重研究過濾法,由淺入深,激發(fā)學生的研究興趣。
1 最基本方法
最基本的方法,就是去除恒定的和準恒定(Quasi-constant)的特征。恒定的特征就是那些在所有的觀測變量中幾乎不變的變量,這樣的特征對于提高機器學習模型的性能幾乎沒有幫助。這是特征選擇中最容易的一步,我們可以計算變量的方差,然后設定閾值去識別恒定的特征,即方差為零的變量。去除準恒定特征也是類似的方法,只是閾值的設置需要仔細思考。
2 卡方檢測和方差檢驗
卡方檢測可以用于處理分類任務中的類別變量,是檢驗類別型變量對類別型變量的相關(guān)性??ǚ綑z測不管特征的類別,可以用于比較目標變量Y在不同特征中的分布。然而,對于數(shù)值型的特征變量,我們需要使用方差檢驗(ANOVA)計算不同特征和目標之間的F值【】。方差檢驗衡量的是我們根據(jù)目標值將不同的數(shù)值特征歸為一類時,每一類特征是否有顯著的變化。這種方法是基于F檢驗,估計兩個隨機變量的線性相關(guān)程度。這種方法假設特征與目標之間是線性關(guān)系的,同時假設變量服從高斯分布。
3 基于信息增益的方法
信息增益,或者叫信息熵,衡量的是特征對于最終目標的正確預測所提供的信息。互信息衡量X和Y兩個變量所共有的信息:在已知其中一個變量的情況下,對于減少其他變量不確定性的程度。例如,兩個變量X和Y是相互獨立的,那么知道X不會給出關(guān)于Y的任何信息,那他們的互信息為零。相反,如果X是Y的確定性函數(shù),Y也是X的確定性函數(shù),那么知道X就能確定Y,反之亦然。在這種情況下,互信息和僅僅知道X或Y的熵是一致的。兩個變量之間的互信息是非負的,可以用根據(jù)k個最近鄰域的基于熵估計的非參數(shù)方法得出互信息,用于單個變量的特征選擇。
4 相關(guān)矩陣的熱力圖
相關(guān)關(guān)系衡量的是2個或多個變量之間的線性關(guān)系。假設線性相關(guān),我們可以通過其余的特征得出某個特征。好的特征與目標變量高度相關(guān),相關(guān)的特征變量則提供了冗余的信息。所以,特征變量應該與目標相關(guān),而彼此之間無關(guān)。我們可以使用皮爾遜相關(guān)系數(shù)確定兩個變量之間的相關(guān)性。皮爾森相關(guān)系數(shù)是一種最簡單的,能幫助理解特征和響應變量之間關(guān)系的方法,衡量的是變量之間的線性相關(guān)性。皮爾遜相關(guān)系數(shù)的一個明顯缺陷是,作為特征排序機制,他只對線性關(guān)系敏感。
5 特征選擇方法的具體應用范圍
從上文可知,有多種方法可以實現(xiàn)特征選擇可供選擇,那么對于具體問題,該如何選擇正確的方法呢?在進行了最基本的去除恒定的和準恒定特征后,根據(jù)輸入變量和輸出變量的類型進行選擇,如圖1所示[3]。具體而言,有以下情況:1)數(shù)值輸入,數(shù)值輸出:這類問題類型屬于回歸預測模型。最常用的方法,就是使用相關(guān)性系數(shù),如:用于線性相關(guān)的皮爾遜(Pearson)相關(guān)系數(shù),用于非線性相關(guān)的基于排序的斯皮爾曼(Spearman)等級相關(guān)系數(shù)。2)數(shù)值輸入,類別輸出:這類問題屬于分類預測模型問題,也是最常見的分類問題。對于此類問題,最常用的也是基于相關(guān)的方法,但必須考慮分類的目標類型。對于線性模型,可以使用ANOVA相關(guān)系數(shù);對于非線性模型,可以考慮使用肯德爾(Kendall)排序方法,因為肯德爾方法已經(jīng)假設了類別變量是有序的。3)類別輸入,數(shù)值輸出:這類問題屬于輸入為類別變量的回歸預測模型問題。但這種類型比較少見,我們可以使用上面解決“數(shù)值輸入,類別輸出”問題的方法,但是輸入輸出互換。4)類別輸入,類別輸出:這類問題屬于輸入為類別變量的分類模型問題。最常用的方法是卡方檢驗,但也可以使用信息論中互信息(信息增益)的方法。事實上,互信息是可以同時應用于類別數(shù)據(jù)和數(shù)值數(shù)據(jù)的方法,換句話說,這種方法對數(shù)據(jù)類型不敏感。
在機器學習中,特征選擇并沒有最優(yōu)的方法,如同沒有最優(yōu)的算法模型。我們必須具體問題具體分析,設計出系統(tǒng)的實驗。我們必須通過不同的統(tǒng)計測量對特征變量的不同子集嘗試一系列不同的模型,然后發(fā)現(xiàn)最適合方法。基于單個特征變量統(tǒng)計特性的方法是計算上比較高效的方法,例如,可以計算相關(guān)矩陣的熱力圖,然后通過SelectKBest挑選出K個合適的特征。但是,當最終的效果不好時,也可以再使用更加復雜的方法,如遞歸特征消除法和隨機森立的特征重要性方法。包裝法和嵌入法法,對于計算性能要求較高,在時間允許的情況下也要盡量嘗試。數(shù)據(jù)挖掘競賽,就是為了培養(yǎng)學生數(shù)據(jù)處理的能力,通過適當?shù)囊龑?,拓寬知識面才是最重要的任務。
參考文獻
[1]Soledad Galli, Feature Selection for Machine Learning. https://www.udemy.com/course/feature-selection-for-machine-learning/
[2]周志華,機器學習,清華大學出版社,2016
[3]Jason Brownlee, How to Choose a Feature Selection Method For Machine Learning, https:// machinelearningmastery.com
[4]Scikit-learn. https://scikit-learn.org
通信作者
羅曉牧(1980-),男,廣東廣州人,副教授,工科博士研究生畢業(yè),研究方向:機器學習,無線傳感器網(wǎng)絡,生物信息獲取。
崔曼曼(1989-),女,河南南樂人,講師,博士,研究方向:醫(yī)療體域網(wǎng)通信技術(shù)研究、教育理論與教學方法研究。