過濾特征_機器學習深度研究:特征選擇中幾個重要的統計學概念

742537ab193ff417045748bfb05f3e1c.png

機器學習深度研究:特征選擇過濾法中幾個重要的統計學概念————卡方檢驗、方差分析、相關系數、p值

問題引出

當我們拿到數據并對其進行了數據預處理,但還不能直接拿去訓練模型,還需要選擇有意義的特征(即特征選擇),這樣做有四個好處:

1、避免維度災難

2、降低學習難度

3、減少過擬合

4、增強對特征和特征值之間的理解

常見的特征選擇有三種方法:

過濾法(Filter):先對數據集進行特征選擇,然后再訓練學習器,特征選擇過程與后續學習器無關。

包裝法(Wrapper):根據目標函數(通常是預測效果評分),每次選擇若干特征,或者排除若干特征。

嵌入法(Embedding):先使用機器學習模型進行訓練,得到各個特征的權值系數,根據系數從大到小選擇特征。

b5af48705ad58922038146334cfbc6a5.png

其中,過濾法是最簡單,最易于運行和最易于理解的。

過濾法核心思路就是考察自變量和目標變量之間的關聯性、相關性,設定閾值,優先選擇與目標相關性高的特征。

主要方法:

1、分類問題:卡方檢驗(chi2),F檢驗(f_classif), 互信息(mutual_info_classif)

2、回歸問題:相關系數(f_regression), 信息系數(mutual_info_regression)

卡方檢驗、F檢驗、互信息、相關系數、信息系數

這些都是統計學領域的概念,在sklearn特征選擇中被使用,所以在解釋這些概念時,我也重點參考了sklearn文檔。

卡方檢驗百科定義:

卡方檢驗就是統計樣本的實際觀測值與理論推斷值之間的偏離程度,實際觀測值與理論推斷值之間的偏離程度就決定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若兩個值完全相等時,卡方值就為0,表明理論值完全符合。

卡方值

計算公式

cb161271067f4e1ed68cc207c6cabf3b.png

不要望公式興嘆,其實只需掌握到第一個等號后就行了:A為實際值,T為理論值。

F檢驗

F檢驗和方差分析(ANOVA)是一回事,主要用于兩個及兩個以上樣本均數差別的顯著性檢驗。方差分析的基本原理是認為不同處理組的均數間的差別基本來源有兩個: (1) 實驗條件,即不同的處理造成的差異,稱為組間差異。用變量在各組的均值與總均值之偏差平方和的總和表示,記作

,組間自由度

(2) 隨機誤差,如測量誤差造成的差異或個體間的差異,稱為組內差異,用變量在各組的均值與該組內變量值之偏差平方和的總和表示, 記作

,組內自由度

123f5c23e761091866a5fa300ac0c1b8.png

利用f值可以判斷假設H0是否成立:

值越大,大到一定程度時,就有理由拒絕零假設,認為不同總體下的均值存在顯著差異。所以我們可以根據樣本的某個特征
的f值來判斷特征
對預測類別的幫助,
值越大,預測能力也就越強,相關性就越大,從而基于此可以進行特征選擇。

互信息(mutual_info_classif/regression)

互信息是變量間相互依賴性的量度。不同于相關系數,互信息并不局限于實值隨機變量,它更加一般且決定著聯合分布 p(X,Y) 和分解的邊緣分布的乘積 p(X)p(Y) 的相似程度。

兩個離散隨機變量 X 和 Y 的互信息可以定義為:

dd41026b629cde7bc68d44f65e65202e.png

相關系數(f_regression)

相關系數是一種最簡單的,能幫助理解特征和響應變量之間關系的方法,該方法衡量的是變量之間的線性相關性,結果的取值區間為[-1,1],-1表示完全的負相關,+1表示完全的正相關,0表示沒有線性相關。

式中

是代表所有樣本的在i號特征上的取值的
維列向量,分子上其實兩個
維列向量的內積,所以
是一個數值,其實就是樣本相關系數。

值越大,第i個特征和因變量y之間的相關性就越大,據此我們做特征選擇。

P值 (P-value)

P值,也就是常見到的 P-value。P 值是一種概率,指的是在 H0 假設為真的前提下,樣本結果出現的概率。如果 P-value 很小,則說明在原假設為真的前提下,樣本結果出現的概率很小,甚至很極端,這就反過來說明了原假設很大概率是錯誤的。通常,會設置一個顯著性水平(significance level)

與 P-value 進行比較,如果 P-value <
,則說明在顯著性水平
下拒絕原假設,
通常情況下設置為0.05。

sklearn特征選擇——過濾法

sklearn過濾法特征選擇方法

SelectBest 只保留 k 個最高分的特征; SelectPercentile 只保留用戶指定百分比的最高得分的特征; 使用常見的單變量統計檢驗:假正率SelectFpr,錯誤發現率selectFdr,或者總體錯誤率SelectFwe; GenericUnivariateSelect 通過結構化策略進行特征選擇,通過超參數搜索估計器進行特征選擇。

SelectKBest按照scores保留K個特征;

SelectPercentile按照scores保留指定百分比的特征;

SelectFpr、SelectFdr和SelectFwe對每個特征使用通用的單變量統計檢驗;

GenericUnivariateSelect允許使用可配置策略如超參數搜索估計器選擇最佳的單變量選擇策略。 特征選擇指標

28ae87bdd1cb000cadc835c8f1c5e8cd.png

使用sklearn中SelectKBest函數進行特征選擇,參數中的score_func選擇: 分類:chi2----卡方檢驗

f_classif----方差分析,計算方差分析(ANOVA)的F值 (組間均方 / 組內均方)

mutual_info_classif----互信息,互信息方法可以捕捉任何一種統計依賴,但是作為非參數方法,需要更多的樣本進行準確的估計

回歸:f_regression----相關系數,計算每個變量與目標變量的相關系數,然后計算出F值和P值

mutual_info_regression----互信息,互信息度量 X 和 Y 共享的信息:它度量知道這兩個變量其中一個,對另一個不確定度減少的程度。

sklearn過濾法特征選擇-示例

在sklearn中,可以使用chi2這個類來做卡方檢驗得到所有特征的卡方值與顯著性水平P臨界值,我們可以給定卡方值閾值, 選擇卡方值較大的部分特征。代碼如下:

  1. 首先import包和實驗數據:
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.datasets import load_iris
#導入IRIS數據集
iris = load_iris()
  1. 使用卡方檢驗來選擇特征
model1 = SelectKBest(chi2, k=2)#選擇k個最佳特征
model1.fit_transform(iris.data, iris.target)#iris.data是特征數據,iris.target是標簽數據,該函數可以選擇出k個特征

結果輸出為:

array([[ 1.4,  0.2],[ 1.4,  0.2],[ 1.3,  0.2],[ 1.5,  0.2],[ 1.4,  0.2],[ 1.7,  0.4],[ 1.4,  0.3],

可以看出后使用卡方檢驗,選擇出了后兩個特征。如果我們還想查看卡方檢驗的p值和得分,可以使用第3步。

  1. 查看p-values和scores
model1.scores_  #得分

得分輸出為:

array([ 10.81782088, 3.59449902, 116.16984746, 67.24482759])

可以看出后兩個特征得分最高,與我們第二步的結果一致;

model1.pvalues_  #p-values

p值輸出為:

array([ 4.47651499e-03, 1.65754167e-01, 5.94344354e-26, 2.50017968e-15])

可以看出后兩個特征的p值最小,置信度也最高,與前面的結果一致。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530052.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530052.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530052.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

win10計算機優化技巧,讓Win10系統運行更流暢的優化技巧

雖然Win10系統對配置要求不高&#xff0c;在普通條件電腦的環境中也能流暢運行。但是用戶總不會介意進一步優化Win10&#xff0c;讓Win10在流暢的基礎上變得更流暢一些。本文就來介紹一下讓Win10系統更流暢的優化技巧。Win10優化技巧1、用360優化win10后開不了機的問題原因是禁…

c include 多層目錄_python+C、C++混合編程的應用

TIOBE每個月都會新鮮出爐一份流行編程語言排行榜&#xff0c;這里會列出最流行的20種語言。排序說明不了語言的好壞&#xff0c;反應的不過是某個軟件開發領域的熱門程度。語言的發展不是越來越common&#xff0c;而是越來越專注領域。有的語言專注于簡單高效&#xff0c;比如p…

校友會2019中國大學計算機,校友會2019中國計算機類一流專業排名,清華大學排名第一...

原標題&#xff1a;校友會2019中國計算機類一流專業排名&#xff0c;清華大學排名第一中國哪些高校的計算機類本科專業躋身2019世界一流專業、中國頂尖專業和中國一流專業行列&#xff1f;哪些計算機類本科專業是2019年中國高考最優秀考生的最佳選擇&#xff1f;為了給2019年全…

查詢結果取交集_Elasticsearch 查詢過程中的 prefilter 原理

大家都知道在對索引執行查詢的時候&#xff0c;需要在所有的分片上執行查詢&#xff0c;因為無法知道被查詢的關鍵詞位于哪個分片&#xff0c;對于全文查詢來說誠然如此&#xff0c;然而對于時序型的索引&#xff0c;當你從 my_index-* 中執行 now-3d 的范圍查詢時&#xff0c;…

計算機專業人畢業設計外文翻譯,計算機專業畢業設計外文翻譯.doc

《計算機專業畢業設計外文翻譯.doc》由會員分享&#xff0c;提供在線免費全文閱讀可下載&#xff0c;此文檔格式為doc&#xff0c;更多相關《計算機專業畢業設計外文翻譯.doc》文檔請在天天文庫搜索。1、&#xfeff;近幾年來&#xff0c;隨著計算機的普及和建筑電子產業的發展…

語音識別插件_AnsweringMachine XS: 越獄理由之二,iPhone 電話語音答錄機

Apps & Tweaks| Jailbreak Guide| iDevicesTweak&#xff1a;AnsweringMachine XSVersion&#xff1a;XSRepo&#xff1a;http://limneos.net/iOS Support&#xff1a;12-13Price&#xff1a;3.99iOS 開發人員 Elias Limneos 開發了電話輔助系列插件&#xff0c;AnsweringM…

怎么在計算機里找到CF里保存的視頻,電腦怎么查看穿越火線錄制保存視頻?操作方法...

在Win10電腦上玩穿越火線&#xff0c;遇到精彩時刻我們都會錄制下&#xff0c;好跟朋友分享&#xff0c;但是在Win10電腦上穿越火線錄制保存之后的視頻&#xff0c;在哪看呢?有很多用戶都不知道怎么在Win10電腦查看這個穿越火線錄制保存的視頻&#xff0c;這個的話&#xff0c…

ironpython this_IronPython sys._getframe not found

問題Im currently building a program in C# which will call functions in provided python script files.Some of these script files calls _getframe() in sys, which results in the error:System.MissingMemberException: module object has no attribute_getframe(Since…

計算機賬務處理流程圖,賬務處理流程圖

手工業務流程圖賬務處理流程主要有 5 種形式&#xff1a;記賬憑證核算形式、科目匯總表核算形式、匯總記賬憑證核算形式、日記總賬核算形式、和多欄式日記賬核算形式。不同的賬務處理流程其差別主要體現在登記總賬的方法和依據不同&#xff0c;其中科目匯總表核算形式最為常見&…

css滑動門的用處,CSS滑動門是什么?有什么用處?[web前端培訓]

在制作網頁導航時&#xff0c;經常會碰到導航欄長度不同&#xff0c;但背景相同的情形。此時如果通過拉伸背景圖的方式來適應文本內容&#xff0c;就會造成背景圖變形。在制作網頁時&#xff0c;為了使各種特殊形狀的背景能夠自適應元素中的文本內容&#xff0c;并且不會變形&a…

vue 父鏈和子組件索引_vuejs填坑-父子組件之間的訪問

有時候我們需要父組件訪問子組件&#xff0c;子組件訪問父組件&#xff0c;或者是子組件訪問根組件。1. 父組件訪問子組件 $children或$ref$children 返回所有子組件的實例&#xff0c;是一個數組顯示兩個組件的信息{{ msg }}{{ msg }}Vue.component(child1, {template: #child…

python多線程爬取多個網頁_python多線程爬取網頁

#-*- encoding:utf8 -*-‘‘‘Created on 2018年12月25日author: Administrator‘‘‘from multiprocessing.dummy import Pool as plimport csvimport requestsfrom lxml import etreedef spider(url):header {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WO…

layui 分頁ajax,實現Ajax異步的layui分頁

頁面代碼:人才推薦姓名學歷技能經驗住址聯系方式 ${res}${data}于千萬年之中時間的無涯的荒野里…時間的無涯的荒野里…--%>js代碼//加載完成$(function(){var sherchkey${positioninfo.name};savePosition();//保存修改方法getPeopleList(1,5,sherchkey);//獲取人才列表// …

Gen系列服務器,新計算、新體驗 | 新華三全新HPE Gen10系列服務器響徹“云”端

數字經濟時代的數據中心正在加速向云計算融合&#xff0c;用戶將面臨傳統架構與云架構并存的混合IT模式。如何既擁有專有數據中心對數據完全可控以及對關鍵業務充分優化的優勢&#xff0c;又能擁有云計算的靈活彈性&#xff1f;如何有效利舊并滿足混合IT架構的需求&#xff1f;…

python 異常處理 變量_Python基礎入門:從變量到異常處理

一 . 條件語句1.if-else 語句當if語句后的條件結果表達式為假&#xff0c;則執行else 語句后的代碼。如若輸入數字非666&#xff0c;則會輸出“猜錯了&#xff0c;小姐姐現在心里想的為666“2.if 語句支持嵌套hi6 hi>2 執行 if hi>7 6<7 所以無輸出hi1 hi<2 執行 p…

web系統四層結構中服務器端,基于.NET平臺構建四層B/S結構的動態網站

摘要&#xff1a;Web是基于Internet技術的一種應用層服務,具有后臺數據庫支持的n層B&#xff0f;S結構已經成為動態Web應用的主流。雖然動態網站開發工作的主要是進行服務器端應用程序的開發,但是B&#xff0f;S結構動態Web的應用要涉及瀏覽器、Web服務器、服務器端應用程序、數…

收藏功能_微軟Edge獲得了新的收藏夾菜單、PDF功能等

作為其今年早些時候概述的戰略的一部分&#xff0c;微軟Edge現在正在向所有Windows 10 PC推出。與經典的Edge不同&#xff0c;Chromium Edge與任何特定的Windows更新無關&#xff0c;但微軟又開始為該瀏覽器進行了一系列令人興奮的改進。新的Edge基于Chromium&#xff0c;它還帶…

服務器LIMIT是什么信號,Postfix添加milter-limit配置方案

[安裝環境]操作系統&#xff1a;CentOS 5.6MAT&#xff1a;POSTFIX2.8.4安裝之前必須保證POSTFIX能正常收發信如果已經安裝過Berkeley Db3以上版本可以不安裝新的DB(但是注意引入db.so)[安裝步驟]1、milter-limit-0.14.tar.gz及libsnert-1.71.6.tar.gz包的獲取方法需要創建一個…

數據存儲方式_視頻監控系統的數據存儲方式的概念及應用

DAS&#xff1a;直連存儲&#xff0c;直連式存儲與服務器主機之間的連接通常采用SCSI連接&#xff0c;SCSI通道是IO瓶頸;服務器主機SCSI ID資源有限&#xff0c;能夠建立的SCSI通道連接有限。無論直連式存儲還是服務器主機的擴展&#xff0c;從一臺服務器擴展為多臺服務器組成的…

ubuntu18 防火墻關閉_Ubuntu 18.04 關閉及開啟防火墻

Ubuntu 內建使用 UFW (Uncomplicated Firewall) 作為防火墻管理工具, 一般情況下都會開啟防火墻, 但有些特殊情況, 例如測試環境需要關閉防火墻作測試, 或者對網絡設定進行除錯等。以下是在 Ubuntu 18.04 關閉防火墻的方法。首先檢查目前防火墻是否已經開啟, 執行以下指令:$ su…