机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1980|回复: 0
打印 上一主题 下一主题

利用网格法以F-score为修正指标优化libsvm中c和g--------MATLAB程序

[复制链接]
跳转到指定楼层
楼主
发表于 2016-5-27 09:43:14 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 jianglimin 于 2016-5-27 11:44 编辑


1、程序思想,考虑到样本的不平衡,参考F-score的值进行寻优。
2、关于F-score的概念参考:http://bbs.malab.cn/forum.php?mo ... &extra=page%3D4
3、首先利用全部样本的2/3作为优化c,g的训练样本的测试样本,剩下的1/3做3折交叉验证。(根据自己情况可做修改)
4、小辈处于学习阶段,程序编的不漂亮,愿多指教。
5、使用说明及注意事项:
Findbestcandg子文件不需要进行修改。在main_GS中进行数据输入修改即可,修改部分如下:
(1)数据读取
     P_train=xlsread('D:\matlab7.1\work\邹权\data','sheet1','A1:CU2128');
    %这句是样本数据的输入,xlsread函数读取的是拓展名为xls的excel文件,excel高版本的在MATLAB7.1版本下暂时不可以读取。
      xlsread('文件位置','工作薄','数据区域')
(2)训练数据和测试数据的提取
     train_input=train_data_all_1(:,1:98);
     train_output=train_data_all_1(:,99);
     %这句是训练样本数据的提取,1:98表示的是第一列到第98列是98维的一个特征集数据;
     99 表示的是样本的标签; 在这里只需要修改为自己特征集所在的列位置和标签所在的列位置即可。
    还有测试集的数据进行同样的修改
    test_input_t =test_data_t(:,1:98);
    test_output_t=test_data_t(:,99);
(3)修改交叉验证的折数
   Indices_t=crossvalind('Kfold',m_t,3);
   for z=1:3
    这句就表示对测试样本进行3折交叉验证,可对折数3进行修改;
(4)数据输出
      期望输出和实际输出的对比图;
      每折计算的输出结果。


本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-11-23 15:47 , Processed in 0.073212 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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