特征选择与降维
特征選擇與降維
【直接從word復制過來的...格式真是慘不忍睹....以后再改吧...o(╥﹏╥)o】
參考資料:
博客
特征選擇 (feature_selection) - 會飛的蝸牛 - 博客園
官網(wǎng)
1.13. Feature selection — scikit-learn 1.0.2 documentation
知乎
機器學習中,有哪些特征選擇的工程方法? - 知乎
文章
http://dataunion.org/14072.html
周志華《機器學習》
一、目的
二、分析
·冗余特征:包含信息能從其他信息中推演出來(長,寬與面積)
·無關特征:對模型訓練沒有效果(與標簽無關)
--------《機器學習》
·假定初始的特征集合包含了所有的重要信息(可能有冗余信息),我們需要找出最好的的特征子集,(對所有子集排列組合是不可取的)那么需要考慮的問題就是:
--------- 《sklearn官方文檔》
·選擇有意義的特征
(1)特征是否發(fā)散:如果一個特征不發(fā)散,例如方差接近于0,也就是說樣本在這個特征上基本上沒有差異,這個特征對于樣本的區(qū)分并沒有什么用。
(2)特征與目標的相關性:這點比較顯見,與目標相關性高的特征,應當優(yōu)選選擇。除移除低方差法外,其他方法均從相關性考慮。
三、方法論
1 ??Filter:過濾法
先對特征集進行特征選擇,然后再訓練學習器
?
·特點:特征選擇過程與后續(xù)學習器無關,直接“過濾”特征
·方法:對各個特征進行評分,設定閾值或者待選擇閾值的個數(shù),來選擇特征。
1.1 移除低方差的特征 (Removing features with low variance):
·假設某特征的特征值只有0和1,并且在所有輸入樣本中,95%的實例的該特征取值都是1,那就可以認為這個特征作用不大。如果100%都是1,那這個特征就沒意義了。
·當特征值都是離散型變量的時候這種方法才能用,如果是連續(xù)型變量,就需要將連續(xù)變量離散化之后才能用。
·可以把它作為特征選擇的預處理,先去掉那些取值變化小的特征,然后再從接下來提到的的特征選擇方法中選擇合適的進行進一步的特征選擇。
·與標簽無關
1.2 單變量特征選擇 (Univariate feature selection)
·單變量特征選擇的原理是分別單獨的計算每個變量的某個統(tǒng)計指標,根據(jù)該指標來判斷哪些指標重要,剔除那些不重要的指標。(與標簽有關的指標)
·對于分類問題(y離散),可采用:
卡方檢驗,f_classif, mutual_info_classif,互信息
·對于回歸問題(y連續(xù)),可采用:
皮爾森相關系數(shù),f_regression, mutual_info_regression,最大信息系數(shù)
- 卡方(Chi2)檢驗:卡方檢驗是檢驗定性自變量對定性因變量的相關性
- F檢驗:用于評估兩個隨機變量的線性相關性
- Pearson相關系數(shù) (Pearson Correlation):衡量的是變量之間的線性相關性,結(jié)果的取值區(qū)間為[-1,1],-1表示完全的負相關,+1表示完全的正相關,0表示沒有線性相關
- 互信息和最大信息系數(shù) (Mutual information and maximal information coefficient (MIC)
- 距離相關系數(shù) (Distance Correlation):對P系數(shù)的改良
- 基于模型的特征排序 (Model based ranking):直接針對每個單獨的特征和標簽基于機器學習算法建立預測模型,交叉驗證計算
- Relief方法(機器學習書):給定訓練集,對每個特征,同類的“猜中近鄰”↓與不同類的“猜錯近鄰”↑,∑計算其“相關統(tǒng)計量”,設定閾值,從大到小選取“相關統(tǒng)計量”(和大于閾值)
2 Wrapper:包裹式選擇
直接把最終將要使用的學習器的性能作為特征子集的評價準則,選擇的是“量身定做”的特征子集
·特點:多個特征聯(lián)合評價,對子集進行模型訓練和評價
- LVW(拉斯維加斯方法):隨機產(chǎn)生特征子集,使用交叉驗證來估計學習器的誤差,當在新特征子集上表現(xiàn)的誤差更小,或者誤差相當?shù)奶卣鞲?#xff0c;就將新特征子集保留下來。
- 遞歸特征消除?(Recursive Feature Elimination):使用一個基模型來進行多輪訓練,每輪訓練后,移除若干權值系數(shù)的特征,再基于新的特征集進行下一輪訓練。
sklearn官方解釋:對特征含有權重的預測模型(例如,線性模型對應參數(shù)coefficients),RFE通過遞歸減少考察的特征集規(guī)模來選擇特征。首先,預測模型在原始特征上訓練,每個特征指定一個權重(0/1)。之后,那些擁有最小絕對值權重的特征被踢出特征集。如此往復遞歸,直至剩余的特征數(shù)量達到所需的特征數(shù)量。
RFECV 通過交叉驗證的方式執(zhí)行RFE,以此來選擇最佳數(shù)量的特征:對于一個數(shù)量為d的feature的集合,他的所有的子集的個數(shù)是2的d次方減1(包含空集)。指定一個外部的學習算法,比如SVM之類的。通過該算法計算所有子集的validation error。選擇error最小的那個子集作為所挑選的特征。
3 ?Embedded:嵌入法
·特點:前兩種方法,是將“子集評價”與“子集選擇”分開的,而嵌入法將兩者融為一體,在同一個優(yōu)化過程中完成,在學習訓練的過程中,自動進行了特征選擇。
·方法:先使用某些機器學習的算法和模型進行訓練,得到各個特征的權值系數(shù),根據(jù)系數(shù)從大到小選擇特征。
-------《機器學習》
對給定樣本與標簽,考慮最簡單的線性回歸模型,以平方誤差∑(y-WTX)2為損失函數(shù),那目標就是最優(yōu)化平方誤差!min∑(y-WTX)2
為了防止過擬合,會引入正則化項:
L2范數(shù):min∑(y-WTX)2 +C||W||22
L1范數(shù):min∑(y-WTX)2 +C||W||1
------- 《sklearn》
有些機器學習方法本身就具有對特征進行打分的機制,或者很容易將其運用到特征選擇任務中,例如回歸模型,SVM,決策樹,隨機森林等等。其實Pearson相關系數(shù)等價于線性回歸里的標準化回歸系數(shù)。
SelectFromModel 作為meta-transformer,能夠用于擬合后任何擁有coef_或feature_importances_ 屬性的預測模型。 如果特征對應的coef_ 或 feature_importances_ 值低于設定的閾值threshold,那么這些特征將被移除。除了手動設置閾值,也可通過字符串參數(shù)調(diào)用內(nèi)置的啟發(fā)式算法(heuristics)來設置閾值,包括:平均值(“mean”), 中位數(shù)(“median”)以及他們與浮點數(shù)的乘積,如”0.1*mean”。
------ 理解就是:設定一個最優(yōu)化目標,得到滿足此目標的W解,對特征按w從大到小排列; 當使用L1范數(shù)時,得到稀疏解,即含有w為0項
3.1基于L1(L2)的特征選擇 (L1-based feature selection)
使用L1范數(shù)作為懲罰項的線性模型(Linear models)會得到稀疏解:大部分特征對應的系數(shù)為0。
當你希望減少特征的維度以用于其它分類器時,可以通過 feature_selection.SelectFromModel 來選擇不為0的系數(shù)。特別指出,常用于此目的的稀疏預測模型有
linear_model.Lasso(回歸),
sklearn.linear_model.Lasso — scikit-learn 1.0.2 documentation
linear_model.LogisticRegression :
sklearn.linear_model.LogisticRegression — scikit-learn 1.0.2 documentation
svm.LinearSVC(分類):
sklearn.svm.LinearSVC — scikit-learn 1.0.2 documentation
對于SVM和LogisticRegression,參數(shù)C控制稀疏性:C越小,被選中的特征越少。
對于Lasso,參數(shù)alpha越大,被選中的特征越少。
實際上,L1懲罰項降維的原理在于保留多個對目標值具有同等相關性的特征中的一個,所以沒選到的特征不代表不重要。故,可結(jié)合L2懲罰項來優(yōu)化。具體操作為:若一個特征在L1中的權值為1,選擇在L2中權值差別不大且在L1中權值為0的特征構成同類集合,將這一集合中的特征平分L1中的權值。
L1恢復和壓縮感知 (L1-recovery and compressive sensing):
對于一個好的alpha值,在滿足特定條件下, Lasso 僅使用少量觀測值就能夠完全恢復出非零的系數(shù)。特別地,樣本的數(shù)量需要“足夠大”,否則L1模型的表現(xiàn)會充滿隨機性,所謂“足夠大”取決于非零系數(shù)的數(shù)量,特征數(shù)量的對數(shù),噪聲的數(shù)量,非零系數(shù)的最小絕對值以及設計矩陣X的結(jié)構。此外,設計矩陣必須擁有特定的屬性,比如不能太過相關(correlated)。 對于非零系數(shù)的恢復,還沒有一個選擇alpha值的通用規(guī)則 。alpha值可以通過交叉驗證來設置(LassoCV or LassoLarsCV),盡管這也許會導致模型欠懲罰(under-penalized):引入少量非相關變量不會影響分數(shù)預測。相反BIC (LassoLarsIC) 更傾向于設置較大的alpha值。
3.2隨機稀疏模型 (Randomized sparse models)
基于L1的稀疏模型的局限在于,當面對一組互相關的特征時,它們只會選擇其中一項特征。為了減輕該問題的影響可以使用隨機化技術,通過多次重新估計稀疏模型來擾亂設計矩陣,或通過多次下采樣數(shù)據(jù)來統(tǒng)計一個給定的回歸量被選中的次數(shù)。
==穩(wěn)定性選擇 (Stability Selection)==RandomizedLasso 實現(xiàn)了使用這項策略的Lasso,RandomizedLogisticRegression 使用邏輯回歸,適用于分類任務。要得到整個迭代過程的穩(wěn)定分數(shù),你可以使用 lasso_stability_path。
注意到對于非零特征的檢測,要使隨機稀疏模型比標準F統(tǒng)計量更有效, 那么模型的參考標準需要是稀疏的,換句話說,非零特征應當只占一小部分。
3.3基于樹的特征選擇 (Tree-based feature selection)
基于樹的預測模型(見 sklearn.tree 模塊,森林見 sklearn.ensemble 模塊)能夠用來計算特征的重要程度,因此能用來去除不相關的特征
樹模型中GBDT也可用來作為基模型進行特征選擇,使用feature_selection庫的SelectFromModel類結(jié)合GBDT模型。
四、總結(jié)
Filter:過濾法——單獨對各個特征進行評分,最快
Wrapper:包裝法——隨機選取子集,交叉檢驗根據(jù)預測效果
Embedded:嵌入法——輸入全特征,使用某些機器學習的算法和模型進行訓練,得到各個特征的權值系數(shù),根據(jù)系數(shù)從大到小選擇特征。
五、其他
·適當?shù)南∈璞阌诖鎯Α⒈阌谟柧殹⑹勾蠖鄶?shù)問題變得線性可分
·將數(shù)據(jù)變得恰當稀疏----這種稀疏不是表現(xiàn)為某一列或某一行全為0
·例如文檔分類中的詞頻統(tǒng)計
------ 那就是對每個樣本只選取字典里的項進行統(tǒng)計,可能有的有這項特征,有的沒有;感覺大部分特征矩陣本身就是稀疏表示的,字典維度的減小實際也是選特征降維的過程(公式跟Embedded有點像,只是權重表達為0和1)
? ? 2. 壓縮感知
·奈奎斯特采樣,以少量信號恢復全部信號
·采樣矩陣Y,原始矩陣X,Y=QX,Q為觀測矩陣----例:圖像壓縮
·例:客戶對書的喜好程度評分,有空白值
------ 基于部分信息恢復全部信息--矩陣補全技術(最小化核范數(shù));是不是可以用于空白值補全;與相似性假設(用戶相似度)有沒有關系?
? ? 3. 評價準則
Dash等人在總結(jié)Ben-Bassat等人、Doak等人的工作后將評價準則分為五類:距離度量(Distance Measure)、信息增益度量(Information Gain Measure)、依賴性度量(Dependence Measure)、一致性度量(Consistency Measure)和分類器錯誤率度量(Classifier Error Rate Measure)。
(1)距離度量:距離度量一般認為是差異性或者分離性的度量,常用的距離度量方法有歐式距離等。對于一個二元分類問題,對于兩個特征f1f1和f2f2,如果特征f1f1引起的兩類條件概率差異大于特征f2f2,則認為特征f1f1優(yōu)于特征f2f2。
(2)信息增益度量:特征f的信息增益定義為使用特征f的先驗不確定性與期望的后驗不確性之間的差異。若特征f1f1的信息增益大于特征f2f2的信息增益,則認為特征f1f1優(yōu)于特征f2f2。
(3)依賴性度量:依賴性度量又稱為相關性度量(Correlation Measure)、通常可采用皮爾遜相關系數(shù)(Pearson correlation coefficient)來計算特征f與類別C之間的相關度,若特征f1f1與類別C之間的相關性大于特征f2f2與類別C之間的相關性,則認為特征f1f1優(yōu)于特征f2f2。同樣也可以計算得到屬性與屬性之間的相關度,屬性與屬性之間的相關性越低越好。
(4)一致性度量:假定兩個樣本,若它們的特征值相同,且所屬類別也相同,則認為它們是一致的:否則,則稱它們不一致。一致性常用不一致率來衡量,其嘗試找出與原始特征集具有一樣辨別能力的最小的屬性子集。
(5)分類器錯誤率度量:該度量使用學習器的性能作為最終的評價閾值。它傾向于選擇那些在分類器上表現(xiàn)較好的子集。
以上5種度量方法中,距離度量(Distance Measure)、信息增益度量(Information Gain Measure)、依賴性度量(Dependence Measure)、一致性度量(Consistency Measure)常用于過濾式(filter);
分類器錯誤率度量(Classifier Error Rate Measure)則用于包裹式(wrapper)
總結(jié)
- 上一篇: 服务器物理机使用ESXI虚拟化并划分虚拟
- 下一篇: 新计算机分区,新电脑如何分区 新电脑怎么