大家好,我是带我去滑雪!
自组织神经网络可以通过对客观事件的反复观察、分析与比较,自行提示内在规律,并对具有共同特征的事物进行正确的分类。该网络更与人脑中生物神经网络的学习模式类似,即可以通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变神经网络参数结构。自组织神经网络的学习规则大都采用竞争型的学习规则。
竞争型神经网络的基本思想是网络竞争层的各个神经元通过竞争来获得对输入模式的响应机会,最后仅有一个神经元成为竞争的胜利者,并将与获胜神经元有关的各连接权值向着更有利于其竞争的方向调整。自组织竞争网络自组织、自适应的学习能力进一步拓展了神经网络在模式分类和识别方面的应用。本期利用自组织竞争网络对患者癌症的发病率进行预测。
目录
一、问题与模型
(1)问题描述
癌症是一种由体内细胞不受控制地分裂和生长形成的疾病。正常情况下,细胞的生长和分裂是受到严格控制的,以保持组织和器官的正常结构和功能。然而,在癌症中,某些细胞开始失去这种正常的生长控制机制,导致它们过度增殖,并形成肿瘤。癌症可以分为良性和恶性两种。良性肿瘤通常生长缓慢,不侵犯周围组织,而恶性肿瘤则具有侵袭性,能够突破周围组织并在身体其他部位形成转移,这就是所谓的癌症的转移性。癌细胞可以通过血液或淋巴系统传播到远离原始肿瘤的部位。
癌症的原因是多方面的,包括基因突变、环境暴露、生活方式因素等。不同类型的癌症有不同的症状和治疗方法。治疗癌症的方法包括手术、放射疗法、化疗、免疫疗法等,通常根据癌症的类型、分级和患者的个体情况来确定最合适的治疗方案。早期检测和诊断对于癌症的治疗非常重要,因为在早期阶段治疗的成功率通常较高。预防癌症的方法包括保持健康的生活方式、定期体检、避免暴露于致癌物质等。癌症仍然是全球范围内一种严重的健康问题,科学家们正在不断努力研究和发展新的治疗方法和预防策略。
(2)模型建立
本期给出一个含有60个个体基因表达水平的样本。每个样本中测量了114个基因特征,其中前20个样本是癌症病人的基因表达水平的样本(其中还可能有子类),中间的20个样本是正常人的基因表达信息样本,余下的20个样本是待检测的样本(未知它们是否正常)。以下将设法找出癌症与正常样本在基因表达水平上的区别,建立竞争网络模型去预测待检测样本是癌症还是正常样本。
利用newc()函数创建一个自竞争网络,由于需要区分的类别数目为2,因此,竞争层神经元的数目也为2.为了加快学习速度,将学习速率设置为0.1。
二、代码实现与结果分析
(1)代码
clc
clear
%% 录入输入数据
% 载入数据并将数据分成训练和预测两类
load gene.mat;
data=gene;
P=data(1:40,:);
T=data(41:60,:);
% 转置后符合神经网络的输入格式
P=P';
T=T';
% 取输入元素的最大值和最小值Q:
Q=minmax(P);
%% 网络建立和训练
% 利用newc( )命令建立竞争网络:2代表竞争层的神经元个数,也就是要分类的个数。0.1代表学习速率。
net=newc(Q,2,0.1)
% 初始化网络及设定网络参数:
net=init(net);
net.trainparam.epochs=20;
% 训练网络:
net=train(net,P);
%% 网络的效果验证
% 将原数据回带,测试网络效果:
a=sim(net,P);
ac=vec2ind(a)
% 这里使用了变换函数vec2ind(),用于将单值向量组变换成下标向量。其调用的格式为:
% ind=vec2ind(vec)
% 其中,
% vec:为m行n列的向量矩阵x,x中的每个列向量i,除包含一个1外,其余元素均为0。
% ind:为n个元素值为1所在的行下标值构成的一个行向量。
Y=sim(net,T)
yc=vec2ind(Y)
(2)输出结果分析
ac =
1 至 18 列
1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 1
19 至 36 列
1 2 2 2 2 2 2 2 2 1 1 2 2 1 1 2 2 2
37 至 40 列
2 1 2 1
Y =1 至 18 列
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 019 至 20 列
1 1
0 0
yc =1 至 18 列
2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
19 至 20 列
1 1
更多优质内容持续发布中,请移步主页查看。
若有问题可邮箱联系:1736732074@qq.com
博主的WeChat:TCB1736732074
点赞+关注,下次不迷路!