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