赞
踩
实现基于LVQ(Learning Vector Quantization,学习向量量化)神经网络的乳腺肿瘤诊断分类任务。LVQ是一种监督学习算法,通常用于模式识别和分类任务。
导入数据:
创建网络:
设置网络参数:
在这一步,设置了网络的训练参数,包括迭代次数、显示频率、学习率和训练目标。这些参数决定了网络在训练过程中如何调整权重和学习样本的过程。训练网络:
使用函数对创建的LVQ网络进行训练,输入训练数据和对应的目标标签。网络将根据输入数据和目标标签的差异进行权重的调整,以最小化分类误差。仿真测试:
结果显示:
统计和显示了各种诊断结果,包括总体病例数量、训练集病例数量、测试集病例数量、良性和恶性乳腺肿瘤的确诊数量、误诊数量以及确诊率等信息。代码实现了一个简单的乳腺肿瘤分类器,通过LVQ神经网络对乳腺肿瘤进行良性和恶性的分类,并输出了分类结果和相关统计信息,以评估分类器的性能。
- %% 创建网络
- count_B=length(find(Tc_train==1));
- count_M=length(find(Tc_train==2));
- rate_B=count_B/500;
- rate_M=count_M/500;
- net=newlvq(minmax(P_train),20,[rate_B rate_M],0.01,'learnlv1');
- % 设置网络参数
- net.trainParam.epochs=1000;
- net.trainParam.show=10;
- net.trainParam.lr=0.1;
- net.trainParam.goal=0.1;
- %% 训练网络
- net=train(net,P_train,T_train);
- %% 仿真测试
- T_sim=sim(net,P_test);
- Tc_sim=vec2ind(T_sim);
- result=[Tc_sim;Tc_test]
- %% 结果显示
- total_B=length(find(data(:,2)==1));
- total_M=length(find(data(:,2)==2));
- number_B=length(find(Tc_test==1));
- number_M=length(find(Tc_test==2));
- number_B_sim=length(find(Tc_sim==1 & Tc_test==1));
- number_M_sim=length(find(Tc_sim==2 &Tc_test==2));
- disp(['病例总数:' num2str(569)...
- ' 良性:' num2str(total_B)...
- ' 恶性:' num2str(total_M)]);
- disp(['训练集病例总数:' num2str(500)...
- ' 良性:' num2str(count_B)...
- ' 恶性:' num2str(count_M)]);
- disp(['测试集病例总数:' num2str(69)...
- ' 良性:' num2str(number_B)...
- ' 恶性:' num2str(number_M)]);
- disp(['良性乳腺肿瘤确诊:' num2str(number_B_sim)...
- ' 误诊:' num2str(number_B-number_B_sim)...
- ' 确诊率p1=' num2str(number_B_sim/number_B*100) '%']);
- disp(['恶性乳腺肿瘤确诊:' num2str(number_M_sim)...
- ' 误诊:' num2str(number_M-number_M_sim)...
- ' 确诊率p2=' num2str(number_M_sim/number_M*100) '%']);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。