数据增强好像确实有些东西(不看泛化能力没用),MATLAB-SMOTE操作代码

使用数据增强增加些数据样本,相比删掉某一类相比另外一个类别多的部分,准确率会高一些,拿做的脑电举例,准确率能从 50 提高到 60,但是再去验证泛化能力(找一些新的数据进行测试)的时候,准确率还是回到了 50。。。。。。所以怎么说好呢,最终还是要看数据本身是不是可分吧

需要安装 MATLAB 官方的函数包,从而使用 mysmote 函数
这里有两类数据,x1csp 和 x2csp,x1 比 x2 少了一些,使用 smote 增加到两者数目相等,函数的输入 dataset 必须是 table,另外 table 的最后一列必须是 label 为表头的标签类列

    %% smote
    for ch=1:16
        dataset = array2table(transpose([squeeze(x1csp(1,:,:)),squeeze(x2csp(1,:,:))]));
        label0 = repmat("class0",size(x1csp,3),1);
        label1 = repmat("class1",size(x2csp,3),1);
        dataset = addvars(dataset, [label0;label1],...
            'NewVariableNames','label');

        [tmp,visdata] = mySMOTE(dataset,'class0',size(x2csp,3)-size(x1csp,3),"NumNeighbors",10, "Standardize", true);
        newdata(ch,:,:) = transpose(tmp{:,1:7200});
    end

    x1csp = cat(3,x1csp,newdata);

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

油泼西红柿

Wish U Thrive

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值