特征选择mRMR算法实现全解
mRMR:(Maximum relerelevance,minimum redundancy)
核心思想: 即最大化特征與分類變量之間的相關(guān)性,而最小化特征與特征之間的相關(guān)性。
它不僅考慮到了特征和label之間的相關(guān)性,還考慮到了特征和特征之間的相關(guān)性。度量標(biāo)準(zhǔn)使用的是互信息(Mutual information)。對于mRMR方法,特征子集與類別的相關(guān)性通過各個(gè)特征與類別的信息增益的均值來計(jì)算,而特征與特征的冗余使用的是特征和特征之間的互信息加和再除以子集中特征個(gè)數(shù)的平方。
在正式介紹mRMR算法之前先介紹下互信息概念。
一、 互信息:
定義:給定兩個(gè)隨機(jī)變量x和y,他們的概率密度函數(shù)(對應(yīng)于連續(xù)變量)為p(x),p(y),p(x,y),則互信息為
I(x;y)=∫∫p(x,y)logp(x,y)p(x)p(y)dxdy,.I(x;y)=\int \int p(x,y)log\frac{p(x,y)}{p(x)p(y)}dxdy,. I(x;y)=∫∫p(x,y)logp(x)p(y)p(x,y)?dxdy,.
互信息(Mutual Information)是信息論里一種有用的信息度量,它可以看成是一個(gè)隨機(jī)變量中包含的關(guān)于另一個(gè)隨機(jī)變量的信息量,或者說是一個(gè)隨機(jī)變量由于已知另一個(gè)隨機(jī)變量而減少的不肯定性。
二、mRMR目標(biāo)
我們的目標(biāo)就是找出含有m個(gè)特征的特征子集SSS ,這m個(gè)特征需滿足以下兩點(diǎn)條件
Goal1. 保證特征和類別的相關(guān)性最大(Maximum relerelevance)
- 離散變量
maxD(S,c),D=1∣S∣∑xi∈SI(xi;c)maxD(S,c),D=\frac{1}{\left | S\right |}\sum_{^{x_{i\in S}}}I(x_{i};c) maxD(S,c),D=∣S∣1?xi∈S?∑?I(xi?;c) - 連續(xù)變量
maxDF,DF=1∣S∣Σxi∈SF(xi;c)max D_F, D_F=\frac{1}{|S|}\Sigma_{x_i\in S}F(x_i;c) maxDF?,DF?=∣S∣1?Σxi?∈S?F(xi?;c)
Goal2. 確保特征之間的冗余性最小(minimum redundancy)
- 離散變量
minR(S),R=1∣S∣2Σxi,xj∈SI(xi;xj)min R(S), R=\frac{1}{|S|^2}\Sigma_{x_i,x_j\in S}I(x_i;x_j) minR(S),R=∣S∣21?Σxi?,xj?∈S?I(xi?;xj?) - 連續(xù)變量
minRc,R=1∣S∣2Σxi,xj∈Sc(xi;xj)min R_c, R=\frac{1}{|S|^2}\Sigma_{x_i,x_j\in S}c(x_i;x_j) minRc?,R=∣S∣21?Σxi?,xj?∈S?c(xi?;xj?)
(其中xix_{i}xi?為第iii個(gè)特征,ccc為類別變量,SSS為特征子集,F(xi,c)F(x_i,c)F(xi?,c)為FFF統(tǒng)計(jì)量, c(xi,xj)c(x_i,x_j)c(xi?,xj?)為相關(guān)函數(shù))
三、源代碼實(shí)現(xiàn)
1. python:pymrmr庫(如果安裝成功的話,最方便)
通過cmd,pip install pymrmr。由于電腦問題,我沒有安裝成功,在此不過多贅述。
2. matlab:
- ① 打開 https://ww2.mathworks.cn/matlabcentral/fileexchange/56937-feature-selection-library, 下載工具箱。
(里面集成了數(shù)十種特征選擇算法。包含mRMR、RELIEFF、cfs等) - ② 將其添加到
- ③
總結(jié)
以上是生活随笔為你收集整理的特征选择mRMR算法实现全解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 2798:二进制转换十六进制
- 下一篇: combobox的联动练习