MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测

简介: MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测
+关注继续查看

输出结果

image.png


代码设计


load BreastTissue_data.mat

n = randperm(size(matrix,1));  

train_matrix = matrix(n(1:80),:);

train_label = label(n(1:80),:);

test_matrix = matrix(n(81:end),:);

test_label = label(n(81:end),:);

[Train_matrix,PS] = mapminmax(train_matrix');  

Train_matrix = Train_matrix';

Test_matrix = mapminmax('apply',test_matrix',PS);

Test_matrix = Test_matrix';

[c,g] = meshgrid(-10:0.2:10,-10:0.2:10);

[m,n] = size(c);

cg = zeros(m,n);

eps = 10^(-4);

v = 5;

bestc = 1;

bestg = 0.1;

bestacc = 0;

for i = 1:m  

   for j = 1:n

       cmd = ['-v ',num2str(v),' -t 2',' -c ',num2str(2^c(i,j)),' -g ',num2str(2^g(i,j))];

       cg(i,j) = svmtrain(train_label,Train_matrix,cmd);    

       if cg(i,j) > bestacc  

           bestacc = cg(i,j);

           bestc = 2^c(i,j);

           bestg = 2^g(i,j);

       end      

       if abs( cg(i,j)-bestacc )<=eps && bestc > 2^c(i,j)

           bestacc = cg(i,j);

           bestc = 2^c(i,j);

           bestg = 2^g(i,j);

       end              

   end

end

cmd = [' -t 2',' -c ',num2str(bestc),' -g ',num2str(bestg)]; %

model = svmtrain(train_label,Train_matrix,cmd);

[predict_label_1,accuracy_1] = svmpredict(train_label,Train_matrix,model);

[predict_label_2,accuracy_2] = svmpredict(test_label,Test_matrix,model);

result_1 = [train_label predict_label_1];

result_2 = [test_label predict_label_2];

figure

plot(1:length(test_label),test_label,'r-*')

hold on

plot(1:length(test_label),predict_label_2,'b:o')

grid on

legend('真实类别','预测类别')

xlabel('乳腺样本测试集样本编号')

ylabel('乳腺样本测试集样本类别')

string = {'乳腺样本测试集与SVM算法预测乳腺病例结果对比(RBF核函数)—Jason niu';

         ['accuracy = ' num2str(accuracy_2(1)) '%']};

1

% title(string)


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员
ML之SVM:基于Js代码利用SVM算法的实现根据Kaggle数据集预测泰坦尼克号生存人员
16 0
ML之SVM(三种):基于三种SVM(linearSVR、polySVR、RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能
ML之SVM(三种):基于三种SVM(linearSVR、polySVR、RBFSVR)对Boston(波士顿房价)数据集(506,13+1)进行价格回归预测并对比各自性能
36 0
.NET数据库编程求索之路--10.使用EF实现(划分输入验证层)
10.使用EF实现(划分输入验证层) 注:使用partial类来实现输入验证逻辑的分层。   源码下载: /Files/SummerRain/NetDbDevRoad/a使用EF实现4划分输入验证层.
566 0
ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类
ML之CatboostC:基于titanic泰坦尼克数据集利用catboost算法实现二分类
15 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4430 0
DL之MaskR-CNN:基于类MaskR-CNN算法(RetinaNet+mask head)训练自己的数据集(.h5文件)从而实现图像分割daiding
DL之MaskR-CNN:基于类MaskR-CNN算法(RetinaNet+mask head)训练自己的数据集(.h5文件)从而实现图像分割daiding
13 0
Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集&预测新数据点
Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集&预测新数据点
9 0
Greenplum csvlog(日志数据)检索、释义(gp_toolkit.gp_log*)
标签 PostgreSQL , Greenplum , csvlog , gp_toolkit 背景 由于GP为分布式数据库,当查看它的一些日志时,如果到服务器上查看,会非常的繁琐,而且不好排查问题。
1695 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载