基于互信息的EEG脑网络情感识别(五)——矩阵二值化

上一篇文章介绍了互信息矩阵的建立
这篇文章主要讲一下矩阵的二值化

矩阵二值化

对于一个MI矩阵来说,二值化就是选择一个合适的阈值,如果MI值大于阈值,则记为1,如果MI值小于阈值,则记为0 。按照此方法,依次处理矩阵中的每个值,就能得到二值矩阵。


在解决该问题时遇到的难点和问题

观察得到的MI矩阵可以发现,不同被试者不同次实验中,有些实验数据差别较大,所以重点就在于阈值的选择。

  • 刚开始是这样处理的(后来没用这个方法):
    计算了所有MI矩阵中MI的平均值,暂且把这个值叫做“平均MI”,我用这个平均MI作为阈值,对所有矩阵进行了二值化。但是观察二值矩阵发现,很多矩阵出现了全0或者全1的情况。这样的话,对于后面提取网络属性就会有很大误差,所以这个方法被遗弃了。
  • 后来采用的方法:
    观察MI矩阵的数据发现,MI的值分布在0.66~0.85之间,所以我在这之间,以0.01为步长,设置了20个阈值,以此对MI矩阵进行二值化。这样,每个MI矩阵就会得到20个二值矩阵,将他们都进行保存。
    后面计算每个MI矩阵的网络属性时,也是在这20个二值矩阵上分别计算,之后再取平均值,作为最终的网络属性值。

部分代码如下
pathname1='E:\MI矩阵\';
pathname3='E:\二值化矩阵修改\';
%32个被试者
for k=1:32
    if k<10
        filename1=sprintf('s0%d\\',k);
    end
    if k>=10
        filename1=sprintf('s%d\\',k);
    end
    pathname2=[pathname1,filename1];    
    pathname4=[pathname3,filename1];   
    mkdir(pathname3,filename1);    
    %每人40次试验
    for j=1:40
       if k<10
           filename2=sprintf('s0%d-%d',k,j);    
           filename3=sprintf('s0%d-%d\\',k,j); 
       end
       if k>=10
           filename2=sprintf('s%d-%d',k,j);
           filename3=sprintf('s%d-%d\\',k,j);
       end
       mkdir(pathname4,filename3);
       pathname5=[pathname4,filename3];   
       xx=load([pathname2,filename2]);  
       labels=xx.labels;
       
       value=0.66;     %初始的阈值,每次增加0.01,直到0.85,共20个
       for i=1:20
           filename4=sprintf('%d',i);
           Theta.MI1=traverse(xx.Theta.MI1,value);
           Theta.MI2=traverse(xx.Theta.MI2,value);
           Alpha.MI1=traverse(xx.Alpha.MI1,value);
           Alpha.MI2=traverse(xx.Alpha.MI2,value);
           Beta1.MI1=traverse(xx.Beta1.MI1,value);
           Beta1.MI2=traverse(xx.Beta1.MI2,value);
           Beta2.MI1=traverse(xx.Beta2.MI1,value);
           Beta2.MI2=traverse(xx.Beta2.MI2,value);
           save([pathname5,filename4],'Theta','Alpha','Beta1','Beta2','labels');
           value=value+0.01;
       end
    end
end

该文章是学习笔记,后续会继续更新
下一篇文章的链接:基于互信息的EEG脑网络情感识别(六)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值