AI训练营|任务一笔记|含本地运行基线任务讲解

笔记:

基于脑PET图像的疾病预测

说明: NC指代健康

            MCI指代轻度认知障碍                      数据文件格式为.nii

整体流程:

      1、准备正数据集负数据集→供以学习

      2、数据图片预处理去噪

                                      ②增强

                                      ③对其标准空间

                                      ④图像标准化

      3、预处理后提取特征逻辑回归

                                        ②CNN   (1)卷积层

                                                       (2)池化层

                                                       (3)全连接层

                                        ③Vision Transformer

      4、模型训练→使用CNN监督学习①材料:使用预处理后的PET图、检查

                                                           ②训练法:梯度下降、反向传播

                                                           ③输入CNN训练:调整CNN权重、偏置

      5、模型评估与优化→用训练好的模型与测试集得出结果,最后对①准确率

                                                                                                            ②精确率

                                                                                                           ③召回率     

                                                                                                          ④F1值

       6、根据最后结果再对模型的参数进行调整

从基线方案中得出代码整体框架:

1、导入所需的库与工具

2、读取文件(测试集与训练集)并打乱顺序

3、定义对PET图像进行特征提取的函数

      ①先加载图像,再得到第一个通道的数据

      ②随机筛选10个通道来提取特征

      ③对图片计算统计值(非零像素、零像素、平均值、标准差等…)

      ④通过看是NC还是MCI,将特征值放在样品旁边

4、对训练集与测试集分别进行30次特征提取

5、用训练集特征作为输入训练集类别作为输出,对逻辑回归模型训练

6、对测试集进行预测并转置,使每个样品有30次预测结果

7、将30次预测结果中次数最多的结果作为最终预测结果,存储于test_pred_label

8、生成DataFrame,其中包括了样本ID与对应预测结果

9、排序结果并保存于.csv文件

Summary

第1到3步是前期的准备工作,第4到7步为预测结果,第8到9为保存文件

我出现的问题:

(下面是对基线代码保存到本地时,我出现的问题)

# 生成提交结果的DataFrame,其中包括样本ID和预测类别。
submit = pd.DataFrame(
    {
        'uuid': [int(x.split('/')[-1][:-4]) for x in test_path],  # 提取测试集文件名中的ID
        'label': test_pred_label                                  # 预测的类别
    }
)

上面是基线方案中截取的代码,我的本地环境运行时uuid这里出现了问题

查阅资料知道是出现了字符串中有非数字内容,导致出错

通过调整代码发现原数据输出的非数字字符为下面图像↓

显然是“Test\”这个字符串导致问题,这个时候我们查阅split函数的用法 

 具体可以参考Python中超好用的split()函数,详解_python split_捣鼓Python的博客-CSDN博客

Python学习:split()方法以及关于str.split()[0]等形式内容的详细讲解_景墨轩的博客-CSDN博客

调整过后以下是我的修改方案:

# 生成提交结果的DataFrame,其中包括样本ID和预测类别。
submit = pd.DataFrame(
    {
        'uuid': [int(x.split('/')[-1][:-4].split("\\")[-1]) for x in test_path],  # 提取测试集文件名中的ID
        'label': test_pred_label  # 预测的类别
    }
)

主要是对于Python中split的学习与应用

就可以输出一个标准的格式↓

最后就完成本地环境的结果输出 !

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值