数据挖掘 作业2 SVM

实验二   使用SVM进行数据分类

 

【数据集名称】Shuttle(来自UCI机器学习数据集)

【数据集描述】该数据集用于航天飞机的分类,包含两个子集(shuttle_training_setshuttle_testing_set),分别作为训练集和测试集。其中:训练集有43500条数据,每条数据包含10个内容:前9项是特征,第10项是类别标号(值为1的类和值不为1的类)。测试集有14500条数据,每条数据的含义与训练集一致。该数据集中80%样本的类别标号是1。

【实验任务】在Matlab环境下,利用libsvm工具包设计一个两类SVM分类器,在给定的训练集(shuttle_training_set)上进行训练,其中类别标号为1的作为正例,其他类别标号的数据作为反例,然后在测试集(shuttle_testing_set)上统计你所设计的SVM分类器的性能。希望你的SVM分类器在测试集上的分类正确率能达到90%以上。

【注意事项】

(1)样本数据需要规范化处理,如:类别标号应为±1;

(2)核函数中参数最优值的选择,可通过"SVMcgForClass.m"函数获得。


clc
clear all
load('shuttle_training_set.mat', 'shuttle')
train_num=size(shuttle)
for i=1:train_num(1)
    if(i<5)
        shuttle(i,10)
    end
    if(shuttle(i,train_num(2))~=1)
        shuttle(i,train_num(2))=-1; 
    end
end
save my_training_set.mat shuttle

load('shuttle_testing_set.mat', 'shuttle_test')
test_num=size(shuttle_test);
for i=1:test_num(1)
    if(shuttle_test(i,train_num(2))~=1)
        shuttle_test(i,train_num(2))=-1;
    end
end
save my_testing_set.mat shuttle_test

clc
clear all
load('my_training_set.mat','shuttle')  %载入训练数据
fprintf('开始训练');%训练的也太久了吧!!!!
 model=svmtrain(shuttle(:,10),shuttle(:,1:9));  %训练模型
 save my_model.mat model

clc
clear all;
load('my_testing_set.mat');%载入测试的数据
load('my_model.mat')%载入训练的模型
[predict_label,accuracy]=svmpredict(shuttle_test(:,10),shuttle_test(:,1:9),model)


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值