【乳腺肿瘤诊断分类及预测】基于自适应Spread-GRNN学习广义回归神经网络

**课题名称:**基于自适应Spread-GRNN神经网络的乳腺肿瘤诊断分类及预测

**版本日期:**2023-03-15

运行方式: 直接运行GRNN0501_2.m 文件即可

代码获取方式:私信博主或QQ:491052175

模型描述:

威斯康辛大学医学院经过多年的收集和整理,建立了一个乳腺肿瘤病灶组织的细胞核显微图像数据库。数据库中包含了细胞核图像的10 个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度〉,这些特征与肿瘤的性质有密切的关系。因此,需要建立一个确定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化特征诊断乳腺肿瘤是良性还是恶性的。

算法流程:

  1. 数据采集:

将乳腺肿瘤病灶组织的细胞核显微图像的1 0 个量化特征作为网络的输入,良性乳腺肿瘤和恶性乳腺肿瘤这两种类别作为网络的输出。共有乳腺癌数据集共包括569 个病例,其中, 良性357 例, 恶性212 例。随机选取500 组数据作为训练集,剩余69 组作为测试集。每个病例的一组数据包括采样组织中各细胞核的10 个特征量的平均值、标准差和最坏值(各特征的3 个最大数据的平均值)共30 个数据。数据文件中每组数据共分32 个字段,第l个字段为病例编号;第2 个字段为确诊结果, B 为良性, M 为恶性(数据中1为良性,2为恶性);第3~ 12 个字段是该病例肿瘤病灶组织的各细胞核显微图像的10 个量化特征的平均值;第1 3 ~ 22 个字段是相应的标准差;第2 3 ~32 个字段是相应的最坏值。 (打开data.mat文件可以看仿真数据)

  1. 网络创建:

数据采集后,利用Matlab自带的神经网络工具箱中的函数newgrnn()可以构建一个GRNN神经网络。其调用格式为net=grnn(P,T,SPREAD),其中P为Q组输入向量组成的R*Q维矩阵,T为Q组目标分类向量组成的S*Q维矩阵,SPREAD为径向基函数的扩展速度,默认值为1。

  1. 网络训练:

网络创建完毕后,若需要,还可以对神经网络的参数进行设置和修改,随机选择训练集的500个病例的数据作为训练数据输入到网络,便可以对网络进行训练

  1. 网络仿真:

网络通过训练后,将测试数据集的69组的10个量化特征数据输入到网络里,便可以得到对应的输出(即分类)

  1. 结果分析

通过对网络仿真结果的分析,可以得到误诊率(包括良心被误诊为恶性及恶性被误诊为良性),从而可以对该方法的可行性进行评价

特殊说明:

神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值。


模型改进:

SPREAD 值越小, 网络对样本的逼近性就越强,SPREAD 值越大,网络对样本数据的逼近过程就越平滑,但误差也相应增大。在实际应用时,为了选取最佳的SPREAD 值一般采取本案例中循环训练的方法,从而达到最好的预测效果。因为训练数据比较少,为了提高预测精度,通过交叉验证并不断迭代寻找最佳的SPREAD值,最后应用于GRNN神经网络里。本例子中求得的最佳spread值就是代表预测效果最好的时候


Matlab仿真结果:

基于自适应spread-GRNN的乳腺肿瘤诊断分类与预测的仿真结果

训练误差随着迭代次数的变化

基于自适应spread-GRNN的分类预测结果

基于自适应spread-GRNN的分类预测误差

相关推荐
架构文摘JGWZ1 小时前
FastJson很快,有什么用?
后端·学习
量子-Alex3 小时前
【多视图学习】显式视图-标签问题:多视图聚类的多方面互补性研究
学习
乔木剑衣3 小时前
Java集合学习:HashMap的原理
java·学习·哈希算法·集合
练小杰4 小时前
Linux系统 C/C++编程基础——基于Qt的图形用户界面编程
linux·c语言·c++·经验分享·qt·学习·编辑器
皮肤科大白4 小时前
如何在data.table中处理缺失值
学习·算法·机器学习
皮肤科大白4 小时前
“““【运用 R 语言里的“predict”函数针对 Cox 模型展开新数据的预测以及推理。】“““
学习
jk_1014 小时前
MATLAB中insertAfter函数用法
开发语言·matlab
qq_254674414 小时前
如何用概率论解决真实问题?用随机变量去建模,最大的难题是相关关系
人工智能·神经网络
汤姆和佩琦5 小时前
2025-1-21-sklearn学习(43) 使用 scikit-learn 介绍机器学习 楼上阑干横斗柄,寒露人远鸡相应。
人工智能·python·学习·机器学习·scikit-learn·sklearn
qq_544329175 小时前
下载一个项目到跑通的大致过程是什么?
javascript·学习·bug