今天将分享kaggle系列挑战赛之糖网视网膜病变多酚类的完整实现过程,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、比赛介绍
比赛数据包括用于检测糖尿病视网膜病变的视网膜扫描图像。原始数据集可在 APTOS 2019 Blindness Detection 上获得。这些图像被调整为 224x224 像素,以便它们可以很容易地与许多预训练的深度学习模型一起使用。使用提供的 train.csv 文件,所有图像都已根据糖尿病视网膜病变的严重程度/阶段保存到各自的文件夹中。将找到五个包含相应图像的目录:
0 - No_DR(无)
1 - Mild(轻微)
2 - Moderate(中等)
3 - Severe(严重)
4 - Proliferate_DR(扩散)
二、技术路线
1、读取糖网视网膜图像和对应标签值,生成csv文件,全部数据一共有3707例。
2、将训练数据分成8:1:1分成网络训练数据,验证数据和测试数据,统计数据发现类别之间不平衡,所以对训练数据中的标签1,3,4进行3倍数据扩充,0和2标签不做数据扩充处理,具体数据扩充策略是旋转,平移,缩放等随机变换。
3、对所有的图像进行统一缩放处理,大小统一大小是256x256,图像归一化,用均值是0和方差是1的方式进行归一化。
4、网络采用的是VGG16网络结构,损失是交叉熵,学习率是0.001,droupout是0.5,epoch是20,batchsize是64。
5、训练结果
训练损失函数结果:
训练精度函数结果:
验证损失函数结果:
验证精度函数结果:
6、测试结果
a、混淆矩阵
b、分类指标
precision recall f1-score support
0.0 0.96 0.94 0.95 170
1.0 0.45 0.55 0.49 38
2.0 0.72 0.71 0.72 103
3.0 0.40 0.38 0.39 16
4.0 0.32 0.29 0.30 24
avg / total 0.77 0.76 0.76 351
为了方便大家更高效地学习,后期会将相关项目代码更新到github上,点击原文链接即可访问官方比赛网址,可以直接下载训练和测试数据。
如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。