找回密码
 注册
关于网站域名变更的通知
查看: 521|回复: 1
打印 上一主题 下一主题

基于MIC(最大互信息系数)的特征选择

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-2 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最大信息系数 maximal information coefficient (MIC),又称最大互信息系数。
, X  s3 U8 H5 b( Y
6 n8 |5 s. C$ r, U) y特征选择步骤
6 P! U4 ]7 P" y) t
( q% j! V' d, Q; n1 S①计算不同维度(特征)之间的MIC值,MIC值越大,说明这两个维度越接近。
& n2 K+ x& c# I/ R' S2 e, \# R②寻找那些与其他维度MIC值较小的维度,根据阈值选出这些特征。
; l) {$ ^" v8 i& N1 X) X! b) P! v③利用SVM训练
8 {0 ?+ v0 U7 }' y+ s2 ]/ }④训练结果在测试集上判断错误率
# v4 H' d7 A! e3 f, G" R( H- a% O1 @
6 l* K) r5 O; _4 O, [0 n% W% sMATLAB代码:; b3 p- V* V0 v5 K6 j& @  F
5 e) {& x8 l' m  M9 j% O# T# A* N" s8 V
  • clc
  • load train_F.mat;
  • load train_L.mat;
  • load test_F.mat;
  • load test_L.mat;
  • Dim = 22;
  • MIC_matrix = zeros(Dim, Dim);
  • for i = 1:Dim
  •     for j = 1:Dim
  •         X_v = reshape(train_F(:,i),1,size(train_F(:,i),1));
  •         Y_v = reshape(train_F(:,j),1,size(train_F(:,j),1));
  •         [A, ~] = mine(X_v, Y_v);
  •         MIC_matrix(i, j) = A.mic;
  •     end
  • end
  • MIC_matrix(MIC_matrix>0.4) = 0;
  • MIC_matrix(MIC_matrix~=0) = 1;
  • inmodel = sum(MIC_matrix);
  • threshold = sum(inmodel)/Dim;
  • inmodel(inmodel <= threshold) = 0;
  • inmodel(inmodel > threshold) = 1;
  • model = libsvmtrain(train_L,train_F(:,inmodel));
  • [predict_label, ~, ~] = libsvmpredict(test_L,test_F(:,inmodel),model);
  • error=0;
  • for j=1:length(test_L)
  •     if(predict_label(j,1) ~= test_L(j,1))
  •         error = error+1;
  •     end
  • end
  • error = error/length(test_L);
    . z. `3 K6 w( T2 \8 Z" ]) u& N

该用户从未签到

2#
发表于 2020-11-2 14:18 | 只看该作者
基于MIC(最大互信息系数)的特征选择
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 13:41 , Processed in 0.187500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表