基于LVQ神经网络的乳腺肿癌诊断

这篇具有很好参考价值的文章主要介绍了基于LVQ神经网络的乳腺肿癌诊断。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.案例背景

1.1 LVQ 神经网络概述

        学习向量量化(Learning Vector Quantization,LVQ)神经网络是一种用于训练竞争层的有监督学习(supervisedlearning)方法的输人前向神经网络,其算法是从Kohonen竞争算法演化而来的。LVQ神经网络在模式识别和优化领域有着广泛的应用。
        1)LVQ神经网络的结构
        LVQ神经网络由3层神经元组成,即输入层、竞争层和线性输出层,如图26-1所示。输人层与竞争层之间采用全连接的方式,竞争层与线性输出层之间采用部分连接的方式。竞争层神经元个数总是大于线性输出层神经元个数,每个竞争层神经元只与一个线性输出层神经元相连接且连接权值恒为1。但是,每个线性输出层神经元可以与多个竞争层神经元相连接。竞争层神经元与线性输出层神经元的值只能是1或0。当某个输人模式被送至网络时,与输人模式距离最近的竞争层神经元被激活,神经元的状态为“1”,而其他竞争层神经元的状态均为“0”。因此,与被激活神经元相连接的线性输出层神经元状态也为“1”,而其他线性输出层神经元的状态均为“0”。

基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习

基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习元的输出。
        2)LVQ神经网络的学习算法
        LVQ神经网络算法是在有教师状态下对竞争层进行训练的一种学习算法,因此 LVQ算法可以认为是把自组织特征映射算法改良成有教师学习的算法。LVQ神经网络算法可分为LVQ1算法和LVQ2算法两种。
        (1) LVQ 1算法
        向量量化是利用输人向量的固有结构进行数据压缩的技术,学习向量量化是在向量量化基础上能将输人向量分类的监督学习技术。Kohonen把自组织特征映射算法改良成有教师学习算法,首先设计了LVQ 1算法。LVQ 1的训练过程开始于随机地自“标定”训练集合选择一个输人向量以及该向量的正确类别。
        LVQ 1算法的基本思想是:计算距离输人向量最近的竞争层神经元,从而找到与之相连接的线性输出层神经元,若输人向量的类别与线性输出层神经元所对应的类别--致,则对应的竞争层神经元权值沿着输人向量的方向移动;反之,若两者的类别不一致,则对应的竞争层神经元权值沿着输入向量的反方向移动。基本的LVQ1算法的步骤为:

基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习

        (2) LVQ2算法
        在LVQ1算法中,只有一个神经元可以获胜,即只有一个神经元的权值可以得到更新调整。为了提高分类的正确率,Kohonen改进了LVQ1,并且被称为新版本LVQ2。LVQ2算法基于光滑的移动决策边界逼近Bayes极限。LVQ 2版本接着被修改,产生LVQ 2. 1,并且最终发展为LVQ 3。这些后来的LVQ版本的共同特点是引入了“次获胜”神经元,获胜神经元的权值向量和“次获胜"神经元的权值向量都被更新。具体计算步骤如下:

基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习

        3)LVQ神经网络特点
        竞争层神经网络可以自动学习对输人向量模式的分类,但是竞争层进行的分类只取决于输入向量之间的距离,当两个输人向量非常接近时,竞争层就可能将它们归为一-类。在竞争层:的设计中没有这样的机制,即严格地判断任意的两个输人向量是属于同一类还是属于不同类。而对于LVQ网络用户指定目标分类结果,网络可以通过监督学习完成对输人向量模式的准确分类。
        与其他模式识别和映射方式相比,LVQ神经网络的优点在于网络结构简单,只通过内部单元的相互作用就可以完成十分复杂的分类处理,也很容易将设计域中的各种繁杂分散的设计条件收敛到结论上来。而且它不需要对输人向量进行归一化、正交化处理,只需要直接计算输入向量与竞争层之间的距离,从而实现模式识别,因此简单易行。

1.2 乳腺肿瘤诊断概述

        目前,乳腺癌已成为世界上妇女发病率最高的癌症。近年来在中国,尤其在相对比较发达的东部地区,乳腺癌的发病率及死亡率呈明显的增长趋势。研究表明,乳腺恶性肿瘤若能早期发现、早期诊断、早期治疗,可取得良好的效果。过去的20年里,人们在分析和诊断各种乳腺肿瘤方面发现了很多方法,尤其是针对乳腺图像的分析已日趋成熟。医学研究发现,乳腺肿瘤病灶组织的细胞核显微图像与正常组织的细胞核显微图像不同,但是用一般的图像处理方法很难对其进行区分。因此,运用科学的方法,根据乳腺肿瘤病灶组织的细胞核显微图像对乳腺肿瘤属于良性或恶性进行诊断显得尤为重要。
        威斯康辛大学医学院经过多年的收集和整理,建立了一个乳腺肿瘤病灶组织的细胞核显微图像数据库。数据库中包含了细胞核图像的10个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度),这些特征与肿瘤的性质有密切的关系。因此,需要建立-一个确定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化特征诊断乳腺肿瘤是良性还是恶性的。

2.模型建立

2.1 设计恩路

        将乳腺肿瘤病灶组织的细胞核显微图像的10个量化特征作为网络的输人,良性乳腺肿瘤
和恶性乳腺肿瘤作为网络的输出。用训练集数据对设计的LVQ神经网络进行训练,然后对
测试集数据进行测试并对测试结果进行分析。

2.2 设计步骤

        根据上述设计思路,设计步骤主要包括以下几个,如图26-2所示。
基于LVQ神经网络的乳腺肿癌诊断,matlab机器学习-神经网络入门,神经网络,人工智能,深度学习
        1)数据采集
        威斯康辛大学医学院的乳腺癌数据集共包括569个病例,其中,良性357例,恶性212例。本书随机选取500组数据作为训练集,剩余69组作为测试集。每个病例的一组数据包括采样组织中各细胞核的10个特征量的平均值、标准差和最坏值(各特征的3个最大数据的平均值)共30个数据。数据文件中每组数据共分32个字段,第1个字段为病例编号;第2个字段为确诊结果,B为良性,M为恶性;第3~12个字段是该病例肿瘤病灶组织的各细胞核显微图像的10个量化特征的平均值;第13~22个字段是相应的标准差;第23~32个字段是相应的最坏值。
        2)网络创建
        数据采集完成后,利用MATLAB自带的神经网络工具箱中的函数newlvq()可以构建一个LVQ神经网络,函数具体用法将在第3节中详细介绍。
        3)网络训练
        网络创建完毕后,若需要,还可以对神经网络的参数进行设置和修改。将训练集500个病例的数据输入网络,便可以对网络进行训练。
        4)网络仿真
        网络通过训练后,将测试集69组的10个量化特征数据输人网络,便可以得到对应的输出(即分类)。
        5)结果分析.
        通过对网络仿真结果的分析,可以得到误诊率(包括良性被误诊为恶性及恶性被误诊为良性),从而可以对该方法的可行性进行评价。同时,可以与其他方法进行比较,探讨该方法的有效性。

3.LVQ 网络的神经网络工具箱函数

        MATLAB的神经网络工具箱为LVQ神经网络提供了大量的函数工具,本节将详细介绍这些函数的功能、调用格式和注意事项等问题。

3.1LVQ网络创建函数

        newlvq()函数用于创建一一个学习向量量化LVQ网络,其调用格式为:
net = newlvq(PR,S1, PC,LR,LE)
        其中,PR为输人向量的范围,size(PR)=[R 2],R为输人向量的维数;S1为竞争层神经元的个数;PC为线性输出层期望类别各自所占的比重;LR为学习速率,默认值为0.01;LF为学习函数,默认为“learnlv1"。

3.2LVQ网络学习函数

        1) LVQ 1学习算法
        learnlv1是LVQ1算法对应的权值学习函数,其调用格式为:
[dw,Ls] = learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

        其中,dW为权值(或阈值)变化矩阵;LS为当前学习状态(可省略);W为权值矩阵或者是阈值矢量;P为输入矢量或者是全为1的矢量;Z为输人层的权值矢量(可省略);N为网络的输人矢量(可省略);A为网络的输出矢量;T为目标输出矢量(可省略);E为误差矢量(可省略);gW为与性能相关的权值梯度矩阵(可省略);gA为与性能相关的输出梯度矩阵;D为神经元的距离矩阵;LP为学习参数,默认值为0.01;LS为初始学习状态。
        2) LVQ2学习算法
        learnlv2是LVQ2算法对应的权值学习函数,其调用格式为:
[dw,ls] = learnlv2(W,P,Z,N,A,T, E,gW,gA,D,LP,LS)
        其参数意义与learnlv1中的参数意义相同,只是权值调整的方法不同,此处不再赘述。

4.MATLAB 实现

        利用MATLAB神经网络工具箱提供的函数可以方便地在MATLAB环境下实现上述步骤。

%% LVQ神经网络的分类——乳腺肿瘤诊断

%% 清空环境变量
clear all
clc
warning off

%% 导入数据
load data.mat
a = randperm(569);
Train = data(a(1:500),:);
Test = data(a(501:end),:);
% 训练数据
P_train = Train(:,3:end)';
Tc_train = Train(:,2)';
T_train = ind2vec(Tc_train);
% 测试数据
P_test = Test(:,3:end)';
Tc_test = Test(:,2)';

%% 创建网络
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) '%']);

        某次运行神经网络训练测试的结果如下:

病例总数:569  良性:357   恶性 :212
训练集病例总数:500  良性:312  恶性 :188
测试集病例总数:69  良性:45   恶性:24
良性乳腺肿瘤确诊:43  误诊:2   确诊率 p1= 95.5556%
恶性乳腺肿瘤确诊:20  误诊:4   确诊率 p2= 83.3333%

        从上述结果可以看出,在69组测试集数据中,有6组数据误诊断(2组将良性乳腺肿瘤误诊为恶性乳腺肿瘤,4组将恶性乳腺肿瘤误诊为良性乳腺肿瘤),平均诊断正确率达91. 3%(63/69)。实验结果表明,将LVQ神经网络应用于模式识别是可行的。

5.案例拓展

        本小节将对比上述 LVQ 神经网络 经网络两 种模 型的效果, BP神经网络模型的程序如下:
%% BP神经网络的分类——乳腺肿瘤诊断

%% 创建网络
net = newff(minmax(P_train),[50 1],{'tansig','purelin'},'trainlm');

%% 设置网络参数
net.trainParam.epochs = 1000;
net.trainParam.show = 10;
net.trainParam.lr = 0.1;
net.trainParam.goal = 0.1;

%% 训练网络
net = train(net,P_train,Tc_train);

%% 仿真测试
T_sim = sim(net,P_test);
for i = 1:length(T_sim)
    if T_sim(i) <= 1.5
        T_sim(i) = 1;
    else
        T_sim(i) = 2;
    end
end
result = [T_sim;Tc_test]

number_B = length(find(Tc_test == 1));
number_M = length(find(Tc_test == 2));
number_B_sim = length(find(T_sim == 1 & Tc_test == 1));
number_M_sim = length(find(T_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) '%']);

        说明:由于BP网络输出非二值结果,因此程序中进行了四舍五入处理,即若输出小于1.5则认为属于良性肿瘤,输出大于1.5则表示属于恶性肿瘤。
        在训练集和测试集与LVQ神经网络相同的情况下,程序运行结果为:
病例总数:569  良性:357  恶性:212
训练集病例总数:500  良性:312   恶性:188
测试集病例总数:69   良性:45   恶性:24
良性乳腺肿瘤确诊:35   误诊:10   确诊率p1= 77.7778%
恶性乳腺肿瘤确诊:16   误诊:8     确诊率p2= 66.6667%
        从上述结果可以看出,在69组测试集数据中,有18组数据误诊断(10组将良性乳腺肿瘤误诊为恶性乳腺肿瘤,8组将恶性乳腺肿瘤误诊为良性乳腺肿瘤),平均诊断正确率达73.9%(51/69)。对比LVQ神经网络及BP神经网络的仿真结果,可以看出,LVQ神经网络的效果比BP神经网络要好很多,这也表明LVQ神经网络用于模式识别是有效的。
        LVQ神经网络无需对数据进行预处理,这使得相比于其他神经网络,LVQ神经网络更简单、有效。LVQ神经网络已经应用到各行各业中,如故障诊断、性能评价、风险预测等。近年来,许多人致力于研究LVQ神经网络的特点,提出了很多改进的算法以解决“死”神经元问题、改善权值调整规则等。文章来源地址https://www.toymoban.com/news/detail-648644.html

到了这里,关于基于LVQ神经网络的乳腺肿癌诊断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab使用BP和LVQ神经网络、图像处理技术三种方法实现人脸识别(附上完整仿真源码+数据)

    人脸识别是一种常见的生物特征识别技术,广泛应用于人脸门禁、人脸支付等领域。在人脸识别中,神经网络和图像处理技术是两种常用的方法。本文将介绍如何使用Matlab实现人脸识别,包括BP神经网络、LVQ神经网络和图像处理技术。 首先,我们将介绍BP神经网络的人脸识别

    2024年02月13日
    浏览(47)
  • 故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab)

    故障诊断 | 一文解决,GCN图卷积神经网络模型的故障诊断(Matlab) GCN(Graph Convolutional Network)是一种基于图结构数据进行卷积操作的神经网络模型。它在处理图数据上展现了很好的性能,特别适用于节点分类、图分类和图生成等任务。 GCN模型的核心思想是将图结构数据转化

    2024年04月11日
    浏览(121)
  • 计算机竞赛 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    🔥 优质竞赛项目系列,今天要分享的是 基于卷积神经网络的乳腺癌分类 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 乳腺癌是全球第二常见的女性癌症。2012年,它占所有新癌症病例的12%,占所有女

    2024年02月11日
    浏览(55)
  • A.机器学习入门算法(八):基于BP神经网络的乳腺癌的分类预测

    【机器学习入门与实践】入门必看系列,含数据挖掘项目实战:数据融合、特征优化、特征降维、探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战:数据融合、特征优化、特征降维、探索性分析

    2024年02月02日
    浏览(52)
  • 【MATLAB数据处理实用案例详解(17)】——利用概念神经网络实现柴油机故障诊断

    柴油机的结构较为复杂,工作状况非常恶劣,因此发生故障的可能性较大。本例采用概率神经网络建立分类模型,采集柴油机振动信号作为输入,成功实现了故障有无的判断和故障类型的判断。 柴油机故障诊断可以抽象对一种分类问题,有无故障的判断,是一种二分类问题,

    2024年02月03日
    浏览(48)
  • 基于通道注意机制联合多尺度卷积神经网络的滚动轴承故障诊断

    实验数据采用的是美国凯斯西储大学(CWRU)轴承数据中心的SKF型轴承的DE驱动端加速度数据,其中选用采样频率为48kHz,载荷为1hp的加速度数据进行实验分析,根据损伤部位的不同,分为滚动体、内圈、外圈六点钟方向故障,故样本共有10类。其次,对所选择的数据进行划分,首

    2024年02月13日
    浏览(45)
  • 基于matlab的神经网络设计,matlab神经网络应用设计

    我来说下我的理解,不一定对,一起讨论下吧 1.100个字母,400个数字组成的训练样本应该是可以的,因为训练样本多的话会使整个网络的权值更加接近准确的权值,500个训练样本对于图像处理来说应该不算多。 2.因为预处理后的每个字母/图片为250的向量值,所有训练样本可以

    2024年02月06日
    浏览(44)
  • MATLAB基于卷积神经网络的手势识别

    目录 1. 数据集介绍  2. 训练、保存网络 3. 手势识别 4. 识别结果 5. 总结 本实验所用数据集为从Kaggle平台下载的手语数据集(sign_mnist)中选取的部分数据。 sign_mnist 数据集格式的模式化与经典 MNIST 紧密匹配。每个训练和测试用例表示一个标签 (0-25),作为每个字母 A-Z 的一

    2024年02月06日
    浏览(110)
  • 169基于matlab的小波神经网络预测

    基于matlab的小波神经网络预测,通过权值参数更新得到误差较小模型,进行多输出单输出预测。输出预测可视化结果。程序已调通,可直接运行。 169matlab小波神经网络预测 多输入单输出 (xiaohongshu.com)

    2024年02月22日
    浏览(42)
  • 基于蛙跳优化的神经网络数据预测matlab仿真

    目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序        通过蛙跳优化算法,优化神经网络的权值参数,然后使用优化后的神经网络模型对数据进行预测,输出预测曲线。 MATLAB2022a版本运行         基于蛙跳优化的神经网络数据预测

    2024年01月25日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包