Data whale AI夏令营(第三期)笔记

编程入门 行业动态 更新时间:2024-10-26 15:26:57

Data whale AI<a href=https://www.elefans.com/category/jswz/34/1765283.html style=夏令营(第三期)笔记"/>

Data whale AI夏令营(第三期)笔记

Data whale AI夏令营(第三期)笔记-part1

    • baseline介绍
    • 库的介绍
    • 医疗数据
    • 特征提取
      • 本人对datawhale的一些印象和描述

baseline介绍

data whale很友好的给出来了本次的baseline。本次比赛属于二分类问题。整体baseline符合标准的机器学习的步骤:对数据进行预处理后,提取出相应的特征。接着利用sklearn库中的逻辑回归,简单的运行得到最后的结果。

数据提取 逻辑回归 得到结果

整体来讲框架非常简单,私以为重点在于特征提取步骤上。

库的介绍

由于本次比赛为医疗影像比赛,因此需要使用医疗影像相关的library。
本人也是第一次了解这个库,nilabel。
NiBabel可以对常见的医学和神经影像文件格式进行读写,如.nii格式。
OrthoSlicer3D是nibabel.viewers中的一个函数,用于可视化医疗影像。

医疗数据

医疗数据有四个关键的组成部分–像素深度、光度解释、元数据以及像素数据。这几部分决定了图像的大小和分辨率。

后缀名为.nii的文件格式又叫NIfTI-1,一般储存3D或者4D的数据。它改编自广泛使用的ANALYZE™7.5格式。一些比NIfTI-1发展早的老软件也可以兼容NIfTI-1。
比ANALYZE 7.5新的特性如下:

–将体素索引(i,j,k)与空间位置(x,y,z)相关的仿射坐标定义
–表示FMRI(核磁共振)的时空切片顺序的代码;
–“完整”的8-128位数据类型集;
–在1-4维域上存储矢量值数据集的标准化方法;
–表示数据“含义”的代码;
–向标头添加“扩展”数据的标准化方法;
–双文件(.hdr和.img)或单文件(.nii)存储;

特征提取

在这里,我们重点看一下特征提取的代码。因为baseline的代码简单易懂,不需要做太多介绍。
以下是用于提取特征所使用的函数extract_feature:
首先利用load函数加载数据,接着通过dataobj属性,只获得所有数据的第一个通道的数据。
官网上写着,“The dataobj property of a proxy image is an array proxy. We can ask the proxy to return the array directly by passing dataobj to the numpy asarray function:”,此时img应该提取成为一个数组。
然后利用array所带的shape属性,随机选10个数据,把其中的特征提取出来。
接着通过计算像素0和1的数量以及随机提取到的这些特征所求出来的均值,和标准差,以及行向量列向量均值为0和为0的个数,以及行方向列方向的最大平均值。这些东西应该是一些评判标准。

def extract_feature(path):# 加载PET图像数据img = nib.load(path)# 获取第一个通道的数据img = img.dataobj[:, :, :, 0]# 随机筛选其中的10个通道提取特征random_img = img[:, :, np.random.choice(range(img.shape[2]), 10)]# 对图片计算统计值feat = [(random_img != 0).sum(),               # 非零像素的数量(random_img == 0).sum(),               # 零像素的数量random_img.mean(),                     # 平均值random_img.std(),                      # 标准差len(np.where(random_img.mean(0))[0]),  # 在列方向上平均值不为零的数量len(np.where(random_img.mean(1))[0]),  # 在行方向上平均值不为零的数量random_img.mean(0).max(),              # 列方向上的最大平均值random_img.mean(1).max()               # 行方向上的最大平均值]# 根据路径判断样本类别('NC'表示正常,'MCI'表示异常)if 'NC' in path:return feat + ['NC']else:return feat + ['MCI']

在测试集,和训练集上都进行30次特征提取之后,将训练集中的数据和最后所得到的结果进行逻辑回归。
再将测试集放入得到的逻辑回归结果,对测试集进行30次预测。选择票数更多的那个分类选项作为测试集的最终结果。
将所有结果写入dataframe中,即可提交比赛结果。

本人对datawhale的一些印象和描述

大学疫情在家2020年的时候,就有了解datawhale。参加过datawhale的活动(但是上手就要使用docker什么的,其实对我来讲有点困难。)我那会儿对机器 学习这些的了解也仅限sklearn,knn,pca主成分分析,决策树等等。当时参与整个活动,很多东西不了解导致压力很大,没有坚持下来。
后面购买我购买了datawhale所出版的南瓜书,同时我读研究生,由电子信息工程转CV了,大四毕业之前开始接触怎么配置yolov5的环境,运行yolov5,同时毕业设计做的工作为数字图像处理方向的内容,现在基本上可以上手了。
此时我有一位多年的网友,叫他小卢吧。他加入了data whale, 这让我觉得很厉害。因为小卢的工作和深度学习有关,我们经常一起交流mmdetection框架等上面的问题,他也会在朋友圈分享一些data whale相关的信息。所以我也会关注一下data whale的活动。也正因如此,我才能看见这次夏令营活动,和大家一起学习。
以上便是本人的一些经历,以及对data whale 的印象和加入本次夏令营活动的原因。

更多推荐

Data whale AI夏令营(第三期)笔记

本文发布于:2024-03-23 23:18:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744028.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:夏令营   第三期   笔记   Data   whale

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!