Nilearn学习笔记4- 连接提取:用于直接连接的协方差

概要:给定一组时间序列(例如通过上篇博客中提到的方法在一群人的fmri数据中提取的时间序列集),功能连接组是表示不同的大脑区域之间的相互作用的连接。今天分享的是利用稀疏逆协方差去获取功能连接组,重点放在脑区之间的直接连接。 1. 用于功能连接组的稀疏逆协方差 静息状态功能连接可以通过估测不同脑区之间的信号的协方差(或者相关性)矩阵的方法得到,相同的信息可以表示为赋权图,图的节点是不同的脑区,边的权重代表协方差(高斯图形模型)。协方差矩阵的系数反应的是直接或者间接连接,如果协方差矩阵来自非常稠密的脑连接组,所以很难提取出两个脑区之间的直接连接。 现在更多的研究者对使用逆协方差矩(精度矩阵)阵更感兴趣,它只能给出脑区之间的直接连接,因为它只包含局部的协方差。 为了很好的得到脑区之间的结构连接,构建一个稀疏逆协方差估计器是很有必要的。应用在scikit-learn库中的GraphLasso估计器就是很好的选择。 代码:

from fatchData import FatchData

fMRIData = FatchData(r'E:\home\fMRIData_973\NC_01_0001\rs6_f8dGR_w3_rabrat_4D.nii')
TimeSeries = fMRIData.GetTimeSeries('altas').TimeSeries
RegionLabels = fMRIData.GetTimeSeries('altas').Labels
Atlas = fMRIData.GetTimeSeries('altas').Atlas
print(TimeSeries.shape)
print(RegionLabels)

from sklearn.covariance import GraphLassoCV

Estimator = GraphLassoCV()
Estimator.fit(TimeSeries)
Estimator.precision_
# Display the correlation matrix
import numpy as np
from matplotlib import pyplot as plt
plt.figure(figsize=(10, 10))
# Mask out the major diagonal
np.fill_diagonal(Estimator.precision_, 0)
plt.imshow(Estimator.precision_, interpolation="nearest", cmap="RdBu_r",
           vmax=0.8, vmin=-0.8)
plt.colorbar()
# And display the RegionLabels
x_ticks = plt.xticks(range(len(RegionLabels)), RegionLabels, rotation=90)
y_ticks = plt.yticks(range(len(RegionLabels)), RegionLabels)

############################################################################
# And now display the corresponding graph
from nilearn import plotting
coords = Atlas

# We threshold to keep only the 20% of edges with the highest value
# because the graph is very dense
plotting.plot_connectome(Estimator.precision_, coords,
                         edge_threshold="80%", colorbar=True)

plotting.show()

运行结果: (1)利用精度矩阵(协方差逆矩阵)得到的结果:

(2)利用协方差矩阵得到的结果:

对比两个图像可以发现,利用精度矩阵得到的连接更少.

3.2 群体层面的稀疏逆协方差 为了能够提取群体被试的稀疏逆协方差矩阵,我们可能更关心多个连接组中的一个,不同的被试的稀疏逆协方差矩阵的结构一样,但是连接值不一样。 对于这个问题,nilearn提供了群体估计器:nilearn.connectome.GroupSparseCovarianceCV estimator. 它的用法如下:

Estimator =nilearn.connectome.GroupSparseCovarianceCV
Estimator.fit([timeseries1,timeseries2,…])

估计器的输入参数是每个被试的时间序列(在1中已得到)的列表,计算结束后估计器为每个时间序列得到一个协方差矩阵和精度矩阵,例如第一个时间序列对应的稀疏协方差矩阵和稀疏逆协方差矩阵:

estimator.covariances_[0]  
estimator.precisions_[0]

现在更多的焦点放在多被试的群体数据分析,在实际应用中,在对连接矩阵系数进行统计学分析的时候遇到的挑战是系数的数量随着脑区数量的增长而增多,导致对多个比较的校正对统计效率造成负担。 这种情况下,使用 GroupSparseCovariance作为估计器并且设置很高的alpha值,这种玄真人将会对每个被试者的精度矩阵执行更强的稀疏性,由于稀疏度对于每个被试都是常见的,因此可以仅对非零系数进行群体分析。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

基于Kaggle数据的词袋模型文本分类教程

1082
来自专栏人工智能头条

八大步骤,用机器学习解决90%的NLP问题

1533
来自专栏PPV课数据科学社区

【V课堂】R语言十八讲(十二)—-方差分析

前面讲到了回归分析以及回归诊断,我们知道回归分析的两个用途,一是用作预测,二是用作分类,即解释作用.如果我们稍作留意便可以注意到,回归分析的自变量,包括因变量都...

2647
来自专栏大数据挖掘DT机器学习

用R语言实现对不平衡数据的四种处理方法

在对不平衡的分类数据集进行建模时,机器学习算法可能并不稳定,其预测结果甚至可能是有偏的,而预测精度此时也变得带有误导性。那么,这种结果是为何发生的呢?到底是什么...

37111
来自专栏达观数据

达观数据分享文本大数据的机器学习自动分类方法

随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类、组织和管理,已经成为一个具有重要用途的研究课题。而在这些数据中,文本数据又是数量最大的一类。文本分...

37410
来自专栏大数据挖掘DT机器学习

文本特征提取方法研究

一、课题背景概述 文本挖掘是一门交叉性学科,涉及数据挖掘、机器学习、模式识别、人工智能、统计学、计算机语言学、计算机网络技术、信息学等多个领域。文本挖掘就是从大...

67211
来自专栏机器之心

ICLR 2018 | 清华&斯坦福提出深度梯度压缩DGC,大幅降低分布式训练网络带宽需求

选自arXiv 作者:林宇鋆、韩松等 机器之心编译 参与:刘晓坤 来自清华大学和斯坦福大学的研究者们发现,分布式随机梯度下降训练中 99.9% 的梯度交换都是冗...

2928
来自专栏SIGAI学习与实践平台

基于内容的图像检索技术综述 传统经典方法

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

1977
来自专栏iOSDevLog

动手实践Scikit-learn(sklearn)

嗨伙计们,欢迎回来,非常感谢你的爱和支持,我希望你们都做得很好。在今天的版本中,我们将学习被称为sklearn的scikit-learn。

1105
来自专栏大数据挖掘DT机器学习

达观数据NLP技术的应用实践和案例分析

达观文本挖掘系统整体方案 达观文本挖掘系统整体方案包含了NLP处理的各个环节,从处理的文本粒度上来分,可以分为篇章级应用、短串级应用和词汇级应用。 篇章级应用有...

38311

扫码关注云+社区