BrainNetClass:一个新兴脑信号分类机器学习工具包
BrainNetClass是一个2020年发布的集网络构建、特征输出、特征选择、交叉验证和支持向量机(libsvm)分类一体的工具包。
BrainNetClass 确实如其初衷一样,非常的便捷!但值得注意的是, BrainNetClass 只能用于分类,而且是二分类,不支持多分类(GUI模式),不支持回归(除非用batch模式大改)。但是对于做二元分类来说,比如区分疾病与健康被试,是很便捷的。
另一个方面,由于其便捷性,可能会导致使用者测试了所有参数,而最后只报告显著的结果。但这也是目前的阶段很难避免的问题。
其界面如下:
BrainNetClass 只需要三个输入选项:Data Input(数据路径),Label Inpute(分类标签路径),Output Directory(输出路径)。
输入数据为ROI signals,通常就是预处理过后每个ROI的平均BOLD信号。使用GUI的情况下,Label只能是1和-1两个值用来表示分组标签。
这一部分非常简单,参看手册即可。
对于参数选择有4个部分:网络构建,特征输出,特征选择,模型评估
网络构建
我们的输入数据是ROI signals,需要构建网络,最常见的方法是计算皮尔逊相关系数,来表示两个节点之间在时间上的活动的相似性,从而构成无方向的脑网络。这是最常见也是最容易理解的网络构建方式。
构建网络还有很多其它的方式, BrainNetClass 就提供了无参数的构建方式:PC,aHOFC,tHOFC,和需要超参数的SR,GSR,WSR,WSGR,SGR,SSGSR,SLR和dHOFC。这些构建方式的用途在manual中可见,更详细的在他们的论文(Zhou,et. al., 2020)中可见。其中PC就是皮尔逊相关。
特征输出
即网络构建之后,用什么参数或者指标作为特征,例如选择常见的相关系数r。在无参数的构建方式下,我们可以选择相关系数r,或者局部聚类系数(local clustering coefficient,这是一个图论指标)。
事实上特征输出并不局限于此,任何你们计算的ROI指标都可以作为特征,但需要我们解释其意义和可能的机制。
在超参数的情况下,不需要做选择。
特征选择
这是由维度灾难与过拟合带来的必需的步骤。当自变量数接近样本量时,就可以几乎完全拟合因变量了。而脑影像数据的自变量往往远超样本量。这导致在训练样本上表现非常好,而在外部样本是得不到验证。因此,这是一个需要面对的问题。常见的方式就是删减不重要特征,获得稀疏特征矩阵。
BrainNetClass 提供了T检验和lasso(即L1正则化)两种手段。
模型评估
用一个外部样本来测试模型的可泛化性是一个理想的方法。当我们没有这个外部样本时,交叉验证就是一个替代方案。
BrainNetClass 提供了k-fold和留一法两种方案。Russell等人2019年发表JAMA Psychiatry的文章强烈推荐使用k-fold而不是留一法。
从模拟数据上讲,交叉验证是能够有效的对模型进行评估的。但最近期刊更偏向于有独立样本验证的研究,毕竟这更直接更有说服力。
最终的输出结果在输出文件夹中,结果很丰富,甚至连图都画好了,参见manual即可。
参考文献
Poldrack, R. A., Huckins, G., & Varoquaux, G. (2020). Establishment of best practices for evidence for prediction: a review. JAMA psychiatry, 77(5), 534-540.
Zhou, Z., Chen, X., Zhang, Y., Hu, D., Qiao, L., Yu, R., … & Shen, D. (2020). A toolbox for brainnetwork construction and classification (BrainNetClass). Human Brain Mapping.
BrainNetClass:一个新兴脑信号分类机器学习工具包