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)


相关文章
|
14天前
|
数据可视化 索引 Python
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
数据分享|Python用PyMC3贝叶斯模型平均BMA:采样、信息准则比较和预测可视化灵长类动物的乳汁成分数据
|
13天前
|
数据可视化 Python
R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验可视化
R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验可视化
|
15天前
|
数据可视化
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
|
20天前
|
机器学习/深度学习 数据可视化
数据分享|R语言逻辑回归Logisitc逐步回归训练与验证样本估计分析心脏病数据参数可视化
数据分享|R语言逻辑回归Logisitc逐步回归训练与验证样本估计分析心脏病数据参数可视化
|
19天前
|
机器学习/深度学习 算法
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
|
21天前
|
机器学习/深度学习 数据可视化
数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化(下)
数据分享|逻辑回归、随机森林、SVM支持向量机预测心脏病风险数据和模型诊断可视化
|
25天前
|
机器学习/深度学习 数据可视化 算法
支持向量回归SVR拟合、预测回归数据和可视化准确性检查实例
支持向量回归SVR拟合、预测回归数据和可视化准确性检查实例
|
27天前
|
机器学习/深度学习 算法
R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据
R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据
|
9月前
时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)
时序预测 | MATLAB实现基于KNN K近邻的时间序列预测-递归预测未来(多指标评价)
|
9月前
|
机器学习/深度学习 算法
分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测
分类预测 | MATLAB实现MIV-SVM的平均影响值MIV算法结合支持向量机分类预测