日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习之降维(特征选择与特征提取)

發(fā)布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之降维(特征选择与特征提取) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、降維技術(shù)主要分為兩大類:特征選擇和特征提取。

基本概念:特征選擇:我們可以選出原始特征的一個子集。特征提取:通過現(xiàn)有信息進(jìn)行推演,構(gòu)造出一個新的特征子空間。
為什么要降維
? ?(1)數(shù)據(jù)的多重共線性導(dǎo)致解的空間不穩(wěn)定, 維度災(zāi)難,模型復(fù)雜,導(dǎo)致模型的泛化能力弱;
? ?(2)高維空間樣本具有稀疏性,導(dǎo)致模型比較難找到數(shù)據(jù)特征;
? ?(3)過多的變量會妨礙模型查找規(guī)律;
? ?(4)有時特征矩陣過大, 導(dǎo)致計算量比較大,訓(xùn)練時間長的問題。
降維的目的
? ?(1)減少特征屬性的個數(shù),剔除不相關(guān)或冗余特征,減少特征個數(shù),提高模型精確度,減少運行時間。
? ?(2)確保特征屬性之間是相互獨立的

1、特征選擇

? ? sklearn.feature_selection :模塊中的類可以用來對樣本集進(jìn)行 feature selection(特征選擇)和 dimensionality reduction(降維),這將會提高學(xué)習(xí)器的準(zhǔn)確度或者增強它們在高維數(shù)據(jù)集上的性能。
? ? 特征選擇的功能:減少特征數(shù)量、降維,使模型泛化能力更強,減少過擬合;增強對特征和特征值之間的理解。
? ? 下面是sklearn中的幾種常見的特征選擇方法:各個方法的使用鏈接,中文的。

1.1、去掉取值變化小的特征:(Removing features with low variance),

? ?此方法只有在特征為離散型變量時才使用,如果是連續(xù)則要離散化。某特征的特征值只有0和1,若95%的樣本在該特征的取值都為1,那么該特征就沒什么意義,也就是變化比較小。但實際中,很少有這樣的特征,一般將它作為特征選擇的預(yù)處理,然后再用其他方法進(jìn)行選擇。
? ?VarianceThreshold:是特征選擇中的一項基本方法。它會移除所有方差不滿足閾值的特征。默認(rèn)設(shè)置下,它將移除所有方差為0的特征,即那些在所有樣本中數(shù)值完全相同的特征。

1.2、單變量特征選擇:(Univariate feature selection) ,

? ?通過基于單變量的統(tǒng)計測試來選擇最好的特征。它可以當(dāng)做是評估器的預(yù)處理步驟。衡量它們與響應(yīng)變量之間的關(guān)系,根據(jù)得分扔掉不好的特征。如:在回歸和分類中,可以使用卡方檢驗等方式對也特征進(jìn)行測試。這種方法有許多改進(jìn)的版本、變種。
? ?(1)Pearson相關(guān)系數(shù) Pearson Correlation:能幫助理解特征和響應(yīng)變量之間關(guān)系衡量的是變量之間的線性相關(guān)性,結(jié)果的取值區(qū)間為[-1,1],-1表示完全的負(fù)相關(guān)(這個變量下降,那個就會上升),+1表示完全的正相關(guān),0表示沒有線性相關(guān)。作為特征排序機制時,只對線性關(guān)系敏感。Scipy的 pearsonr 方法能夠同時計算相關(guān)系數(shù)和p-value。
? ?(2)互信息和最大信息系數(shù) (Mutual information and maximal information coefficient (MIC) ):互信息系數(shù):能夠很好地度量各種相關(guān)性,計算復(fù)雜,不過很多toolkit都包含此工具(例如sklearn的MINE),得到相關(guān)性就可以排序選擇特征了。最大信息系數(shù)尋找一種最優(yōu)的離散化方式,然后把互信息取值轉(zhuǎn)換成一種度量方式,取值區(qū)間在[0,1],通常變量要先離散化。
? ?(3)距離相關(guān)系數(shù) (Distance correlation):Pearson相關(guān)系數(shù)是0,我們也不能斷定這兩個變量是獨立的(有可能是非線性相關(guān));但如果距離相關(guān)系數(shù)是0,那么我們就可以說這兩個變量是獨立的。
? ?(4)基于學(xué)習(xí)模型的特征排序 (Model based ranking):構(gòu)建單個特征的模型,通過模型的準(zhǔn)確性為特征排序,借此選擇特征。當(dāng)選擇到了目標(biāo)特征之后,再用來訓(xùn)練最終的模型。
? ?思路:先選擇機器學(xué)習(xí)算法,再針對每個單獨的特征和響應(yīng)變量建立預(yù)測模型。某個特征和響應(yīng)變量之間的關(guān)系是:(1)線性的:其實Pearson相關(guān)系數(shù)等價于線性回歸里的標(biāo)準(zhǔn)化回歸系數(shù)。(2)非線性的:可以用基于樹的方法(決策樹、隨機森林)、或者擴展的線性模型等。基于樹的方法比較易于使用,因為他們對非線性關(guān)系的建模比較好,并且不需要太多的調(diào)試。但要注意過擬合問題,因此樹的深度最好不要太大,再就是運用交叉驗證。注意:該基于學(xué)習(xí)模型,是針對單獨特征和響應(yīng)變量之間的模型,下面的就是基于機器學(xué)習(xí)模型的方法1.3,1.4。

1.3、線性模型和正則化:

? ?1.2中的單變量特征選擇方法獨立的衡量每個特征與響應(yīng)變量之間的關(guān)系,另一種主流的特征選擇方法是基于機器學(xué)習(xí)模型的方法。有些機器學(xué)習(xí)方法本身就具有對特征進(jìn)行打分的機制,或者很容易將其運用到特征選擇任務(wù)中,例如回歸模型,SVM,決策樹,隨機森林等等。
? ?(1)線性模型:用回歸模型的系數(shù)w來選擇特征。越是重要的特征在模型中對應(yīng)的系數(shù)就會越大,而跟輸出變量越是無關(guān)的特征對應(yīng)的系數(shù)就會越接近于0。在噪音不多的數(shù)據(jù)上,或者是數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于特征數(shù)的數(shù)據(jù)上,如果特征之間相對來說是比較獨立的,那么即便是運用最簡單的線性回歸模型也一樣能取得非常好的效果。邏輯回歸同理。
? ?(2)正則化模型:正則化就是把額外的約束或者懲罰項加到已有模型(損失函數(shù))上,以防止過擬合并提高泛化能力。損失函數(shù)由原來的E(X,Y)變?yōu)镋(X,Y)+alpha||w||,w是模型系數(shù)組成的向量,||·||一般是L1或者L2范數(shù),alpha是一個可調(diào)的參數(shù),控制著正則化的強度。當(dāng)用在線性模型上時,已有損失函數(shù)后加L1正則化稱為Lasso、已有損失函數(shù)后加L2正則化稱為Ridge regression、已有損失函數(shù)后加L1正則化和L2正則化稱為Elastic Net。
? ?(2.1)、L1正則化/Lasso:L1正則化將系數(shù)w的l1范數(shù)作為懲罰項加到損失函數(shù)上,由于正則項非零,這就迫使那些弱的特征所對應(yīng)的系數(shù)變成0。因此L1正則化往往會使學(xué)到的模型很稀疏(系數(shù)w經(jīng)常為0),L1正則方法具有稀疏解的特性,因此天然具備特征選擇的特性,稀疏解他們的許多系數(shù)為 0。 當(dāng)目標(biāo)是降低使用另一個分類器的數(shù)據(jù)集的維度, 它們可以與feature_selection.SelectFromModel 一起使用來選擇非零系數(shù)。
? ?(2.2)L2正則化/Ridge regression:L2正則化對于特征選擇來說一種穩(wěn)定的模型,不像L1正則化那樣,系數(shù)會因為細(xì)微的數(shù)據(jù)變化而波動。所以L2正則化和L1正則化提供的價值是不同的,L1沒有選到的特征不代表不重要,原因是連個具有高相關(guān)性的特征可能只保留了一個,如果要確定哪個特征重要應(yīng)再通過L2正則方法交叉檢驗。
? ?(2.3)ElasticNet :是一種使用L1和L2先驗作為正則化矩陣的線性回歸模型.這種組合用于只有很少的權(quán)重非零的稀疏模型,比如:Lasso, 但是又能保持Ridge 的正則化屬性。當(dāng)多個特征和另一個特征相關(guān)的時候彈性網(wǎng)絡(luò)非常有用。Lasso 傾向于隨機選擇其中一個,而彈性網(wǎng)絡(luò)更傾向于選擇兩個,具體來說,應(yīng)該分別使用L1和L2擬合,如果兩個特征在L2中系數(shù)相接近,在L1中一個系數(shù)為0一個系數(shù)不為0,那么其實這兩個特征都應(yīng)該保留,原因是L1對于強相關(guān)特征只會保留一個。。

1.4、 隨機森林

? ?隨機森林具有準(zhǔn)確率高、魯棒性好、易于使用等優(yōu)點,這使得它成為了目前最流行的機器學(xué)習(xí)算法之一。隨機森林提供了兩種特征選擇的方法:mean decrease impurity和mean decrease accuracy。可以用sklearn中在訓(xùn)練了RandomForestClassifier后,通過feature_importances來得到這些內(nèi)容。根據(jù)重要程度給不同特征賦予不同的重要等級。無須做標(biāo)準(zhǔn)化或歸一化處理。還可以設(shè)定閾值的基礎(chǔ)上進(jìn)行特征選擇。
(1)平均不純度減少 mean decrease impurity
? ?隨機森林由多個決策樹構(gòu)成。決策樹中的每一個節(jié)點都是關(guān)于某個特征的條件,為的是將數(shù)據(jù)集按照不同的響應(yīng)變量一分為二。利用不純度可以確定節(jié)點(最優(yōu)條件),對于分類問題,通常采用 基尼不純度 或者 信息增益 ,對于回歸問題,通常采用的是 方差 或者最小二乘擬合。當(dāng)訓(xùn)練決策樹的時候,可以計算出每個特征減少了多少樹的不純度。對于一個決策樹森林來說,可以算出每個特征平均減少了多少不純度,并把它平均減少的不純度作為特征選擇的值。
(2)平均精確率減少 Mean decrease accuracy
? ?另一種常用的特征選擇方法就是直接度量每個特征對模型精確率的影響。主要思路是打亂每個特征的特征值順序,并且度量順序變動對模型的精確率的影響。很明顯,對于不重要的變量來說,打亂順序?qū)δP偷木_率影響不會太大,但是對于重要的變量來說,打亂順序就會降低模型的精確率。

1.5、兩種頂層特征選擇算法

? ?之所以叫做頂層,是因為他們都是建立在基于模型的特征選擇方法基礎(chǔ)之上的,例如回歸和SVM,在不同的子集上建立模型,然后匯總最終確定特征得分。
(1) 穩(wěn)定性選擇 Stability selection
? ?穩(wěn)定性選擇是一種基于二次抽樣和選擇算法相結(jié)合較新的方法,選擇算法可以是回歸、SVM或其他類似的方法。它的主要思想是在不同的數(shù)據(jù)子集和特征子集上運行特征選擇算法,不斷的重復(fù),最終匯總特征選擇結(jié)果,比如可以統(tǒng)計某個特征被認(rèn)為是重要特征的頻率(被選為重要特征的次數(shù)除以它所在的子集被測試的次數(shù))。理想情況下,重要特征的得分會接近100%。稍微弱一點的特征得分會是非0的數(shù),而最無用的特征得分將會接近于0。sklearn在 隨機lasso 和 隨機邏輯回歸 中有對穩(wěn)定性選擇的實現(xiàn)。
(2)遞歸特征消除 Recursive feature elimination (RFE)
? ?遞歸特征消除的主要思想是反復(fù)的構(gòu)建模型(如SVM或者回歸模型)然后選出最好的(或者最差的)的特征(可以根據(jù)系數(shù)來選),把選出來的特征放到一邊,然后在剩余的特征上重復(fù)這個過程,直到所有特征都遍歷了。這個過程中特征被消除的次序就是特征的排序。因此,這是一種尋找最優(yōu)特征子集的貪心算法。RFE的穩(wěn)定性很大程度上取決于在迭代的時候底層用哪種模型。例如,假如RFE采用的普通的回歸,沒有經(jīng)過正則化的回歸是不穩(wěn)定的,那么RFE就是不穩(wěn)定的;假如采用的是Ridge,而用Ridge正則化的回歸是穩(wěn)定的,那么RFE就是穩(wěn)定的。Sklearn提供了 RFE 包,可以用于特征消除,還提供了 RFECV ,可以通過交叉驗證來對的特征進(jìn)行排序。

1.6、總結(jié)

? ?(1)對于理解數(shù)據(jù)、數(shù)據(jù)的結(jié)構(gòu)、特點來說,單變量特征選擇是個非常好的選擇。盡管可以用它對特征進(jìn)行排序來優(yōu)化模型,但由于它不能發(fā)現(xiàn)冗余(例如假如一個特征子集,其中的特征之間具有很強的關(guān)聯(lián),那么從中選擇最優(yōu)的特征時就很難考慮到冗余的問題)。
? ?(2)正則化的線性模型對于特征理解和特征選擇來說是非常強大的工具。L1正則化能夠生成稀疏的模型,對于選擇特征子集來說非常有用;相比起L1正則化,L2正則化的表現(xiàn)更加穩(wěn)定,由于有用的特征往往對應(yīng)系數(shù)非零,因此L2正則化對于數(shù)據(jù)的理解來說很合適。由于響應(yīng)變量和特征之間往往是非線性關(guān)系,可以采用basis expansion的方式將特征轉(zhuǎn)換到一個更加合適的空間當(dāng)中,在此基礎(chǔ)上再考慮運用簡單的線性模型。
? ?(3)隨機森林是一種非常流行的特征選擇方法,它易于使用,一般不需要feature engineering、調(diào)參等繁瑣的步驟,并且很多工具包都提供了平均不純度下降方法。它的兩個主要問題,1是重要的特征有可能得分很低(關(guān)聯(lián)特征問題),2是這種方法對特征變量類別多的特征越有利(偏向問題)。盡管如此,這種方法仍然非常值得在你的應(yīng)用中試一試。
? ?(4)特征選擇在很多機器學(xué)習(xí)和數(shù)據(jù)挖掘場景中都是非常有用的。在使用的時候要弄清楚自己的目標(biāo)是什么,然后找到哪種方法適用于自己的任務(wù)。當(dāng)選擇最優(yōu)特征以提升模型性能的時候,可以采用交叉驗證的方法來驗證某種方法是否比其他方法要好。當(dāng)用特征選擇的方法來理解數(shù)據(jù)的時候要留心,特征選擇模型的穩(wěn)定性非常重要,穩(wěn)定性差的模型很容易就會導(dǎo)致錯誤的結(jié)論。對數(shù)據(jù)進(jìn)行二次采樣然后在子集上運行特征選擇算法能夠有所幫助,如果在各個子集上的結(jié)果是一致的,那就可以說在這個數(shù)據(jù)集上得出來的結(jié)論是可信的,可以用這種特征選擇模型的結(jié)果來理解數(shù)據(jù)。

1.7、Tips

? ?什么是卡方檢驗?用方差來衡量某個觀測頻率和理論頻率之間差異性的方法
? ?什么是皮爾森卡方檢驗?這是一種最常用的卡方檢驗方法,它有兩個用途:1是計算某個變量對某種分布的擬合程度,2是根據(jù)兩個觀測變量的Contingency table來計算這兩個變量是否是獨立的。主要有三個步驟:第一步用方差和的方式來計算觀測頻率和理論頻率之間卡方值;第二步算出卡方檢驗的自由度(行數(shù)-1乘以列數(shù)-1);第三步比較卡方值和對應(yīng)自由度的卡方分布,判斷顯著性。
? ?什么是p-value?簡單地說,p-value就是為了驗證假設(shè)和實際之間一致性的統(tǒng)計學(xué)意義的值,即假設(shè)檢驗。有些地方叫右尾概率,根據(jù)卡方值和自由度可以算出一個固定的p-value,
? ?什么是響應(yīng)變量(response value)?簡單地說,模型的輸入叫做explanatroy variables,模型的輸出叫做response variables,其實就是要驗證該特征對結(jié)果造成了什么樣的影響

2、特征提取:

? ?前面講了特征選擇,下面講一下特征抽取來降維,可理解為:盡可能多的保持相關(guān)信息的情況下,對數(shù)據(jù)進(jìn)行壓縮的一種方法。三種:都可以將原始數(shù)據(jù)集變換為一個維度更低的新的特征子集。
(1)PCA:無監(jiān)督數(shù)據(jù)降維技術(shù)—主成分分析principal component analysis;
sklearn.decomposition.PCA。
? ?主成分分析是一種用于連續(xù)屬性的數(shù)據(jù)降維方法,它構(gòu)造了原始數(shù)據(jù)的一個正交變換,新空間的基地去除了原始空間基底下數(shù)據(jù)的相關(guān)性,只需要使用少數(shù)新變量就能夠解釋原始數(shù)據(jù)中大部分變量。在應(yīng)用中通常是選出比原始變量個數(shù)少,能夠解釋大部分?jǐn)?shù)據(jù)中的變量的幾個新變量,即所謂的主成分,來代替原始變量進(jìn)行建模。通過線性變化,將原始數(shù)據(jù)集變化為一組各維度線性無關(guān)的表示!
? ?在高維數(shù)據(jù)中找到最大方差的方向,將數(shù)據(jù)映射到一個不大于原始數(shù)據(jù)的新的子空間上。構(gòu)建一個dXk維的轉(zhuǎn)換矩陣W,來完成維度的轉(zhuǎn)換。第一主成分的方差應(yīng)該最大,由于各主成分之間不相關(guān)(正交),后續(xù)主成分也具備盡可能大的方差。注意:要先進(jìn)行標(biāo)準(zhǔn)化處理。sklearn的decomposition類的PCA方法。參數(shù)為主成分?jǐn)?shù)目。提供了PCA類,在轉(zhuǎn)換前要使用訓(xùn)練數(shù)據(jù)對模型進(jìn)行擬合。步驟:數(shù)據(jù)標(biāo)準(zhǔn)化,構(gòu)造樣本協(xié)方差矩陣,獲得協(xié)方差矩陣的特征值和特征向量,按降序排列特征值所對應(yīng)的特征向量,選擇k個最大特征值對應(yīng)的特征向量,其中k為新特征空間的維度,構(gòu)建映射矩陣,進(jìn)行轉(zhuǎn)換。
(2)LDA: 基于類別可分最大化的有監(jiān)督降維技術(shù)—線性判別分析linear discriminant analysis
? ?sklearn.discriminant_analysis.LinearDiscriminantAnalysis
? ?用來發(fā)現(xiàn)最優(yōu)化分類的特征子空間。是有監(jiān)督算法。更適用于分類的特征提取技術(shù)。步驟:標(biāo)準(zhǔn)化處理,計算均值向量,構(gòu)造類間和類內(nèi)的散布矩陣,計算某矩陣的特征值和特征向量,選取k個特征對應(yīng)的特征向量,構(gòu)造轉(zhuǎn)換矩陣,映射。sklearn的lda中有LDA方法。
(3)核PCA:通過核主成分分析進(jìn)行線性降維,kernel principal component analysis
? ?sklearn.decomposition.KernelPCA
? ?現(xiàn)實世界,面對非線性問題,我們使用它。將非線性可分的數(shù)據(jù)轉(zhuǎn)換到一個適合對其進(jìn)行線性分類的新的低維子空間上。sklearn中的decomposition模塊有核PCA類,通過kernel參數(shù)選擇不同的核函數(shù)。

總結(jié)

以上是生活随笔為你收集整理的机器学习之降维(特征选择与特征提取)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。