建立脑影像机器学习模型的step-by-step教程( 二 )


图19.1本教程中实现的机器学习流程概述 。
19.5示例代码
在我们的例子中使用的机器学习管道包括以下组件:问题制定、数据准备、特征工程、模型训练、模型评估和事后分析 。在开始之前,我们首先需要导入所有必要的库,将随机种子设置为一个固定值,并组织我们的工作区 。
19.5.1导入库
默认情况是不加载用于计算机器学习分析的库 。因此,在开始编写代码文件时,最好先导入我们需要的所有库 。除了、numpy、scipy、、和之外,我们还使用模块来组织文件夹,并使用模块在分析过程中抑制任何无用的警告(两者都是自带的,因此我们不需要安装它们) 。如果读者决定修改代码,我们建议通过抑制代码片段1中的最后一行来重新激活警告 。理解这些警告可以帮助读者避免错误并调试代码 。为了使代码更易于阅读,在导入多次使用的库时,通常会指定一个别名 。例如,库通常作为pd导入 。这样,每当我们想要调用这个库时,只需输入pd即可 。
19.5.2设置随机种子
我们分析中的一些步骤将受到随机性的影响 。例如,我们可能希望在数据清理期间随机删除一些参与者 。同样,在定义CV方案时,每次迭代的训练/测试分区也是随机进行的 。在中,这种随机性可以通过将种子值设置为固定值来控制 。没有定义一个特定的种子值意味着依赖于这个随机性元素的变量在每次我们运行代码时都会有不同的表现 。例如,每次迭代的训练测试分区将是不同的,这可能会导致不同的模型性能 。因此,我们将种子值设置为一个固定的数字,以保证每次运行代码时都得到相同的结果 。有些函数需要将随机种子作为参数再次传递 。
19.5.3组织工作空间
在开始分析之前,我们应该首先创建文件夹结构,用于存储所有结果 。在本教程中,读者可能希望沿着机器学习的管道测试不同的策略,例如,不同的预处理策略或机器学习算法 。在大量测试之后,我们很容易就会忘记哪些结果与哪些策略有关 。为每个实验指定一个名称,在结果目录中创建一个具有相同名称的文件夹,并将实验输出存储在该目录中,这是一种很好的做法 。
19.5.4问题公式化
在进行任何类型的项目时,有一个良好框架的问题是至关重要的,特别是在机器学习中,可能有许多可能的方法来分析相同的数据集 。在本教程中,我们的机器学习问题如下:使用结构MRI数据对SZ和HC患者进行分类 。从这个公式中,我们可以推导出机器学习问题的主要元素:
19.5.5数据准备
这一步的目的是执行一系列的统计分析,为机器学习模型准备数据 。在这里,根据机器学习问题的性质和数据类型,可能需要不同的统计分析 。
19.5.5.1导入数据
在本教程中,我们使用表格数据 。数据以逗号分隔值(CSV)文件的形式存储 。我们使用从中的()函数来加载csv文件 。这个函数将数据加载到一个名为的对象类型中,我们将其命名为 。
【建立脑影像机器学习模型的step-by-step教程】在我们的数据集中,诊断和性别是由单词定义的 。有时,人们用不同的名字存储信息;例如,在列诊断中不使用sz,我们可以用“”这个词来定义这个问题属于一个病人 。为了使这些代码更容易适应不同的格式,我们在代码的开头定义了我们的符号.
让我们从数据的前六行开始 。使用选择的子部分是很简单的 。有不同的方法可以做到这一点 。这里,我们只是简单地指出中需要的索引(注意,第一行索引为0,最后一行不包括在内) 。
从输出中,我们可以看到顶部的列名和前六个参与者的数据 。列包括诊断,性别,年龄,以及几个脑区的灰质体积和厚度 。ID在代码片段4中设置为列索引 。我们可以看到至少缺少一个值(第c006行) 。我们稍后会处理这个问题 。知道数据集中可用的所有特征的名称也可能很有用 。为此,只需知道数据列的名称 。