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 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

用深度学习做个艺术画家 ——模仿实现PRISMA

1184
来自专栏机器之心

教程 | 如何用50行代码构建情感分类器

语言把人类联系在一起。语言是一种工具,它既可以让我们把想法和感受传达给另一个人,也能让我们理解别人的想法和感受。我们大多数人从 1 岁半到 2 岁开始说话。人脑...

670
来自专栏专知

【NAACL2018最佳论文】忘掉Word2vec吧!艾伦人工智能研究院新词向量学习方法,一文了解各大奖项论文

【导读】当地时间6月1日到6月6日,第十六届自然语言处理顶级会议NAACL - HLT(Annual Conference of the North Ameri...

823
来自专栏机器之心

可视化语音分析:深度对比Wavenet、t-SNE和PCA等算法

选自Medium 作者:Leon Fedden 机器之心编译 参与:Nurhachu Null、刘晓坤 这篇文章基于 GitHub 中探索音频数据集的项目。本文...

41313
来自专栏机器之心

搞事!ICLR 2018七篇对抗样本防御论文被新研究攻破,Goodfellow论战

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

用R进行网站评论文本挖掘聚类

对于非结构化的网站中文评论信息,r的中文词频包可能是用来挖掘其潜在信息的好工具,要分析文本内容,最常见的分析方法是提取文本中的词语,并统计频率。频率能反映词语在...

2526
来自专栏算法channel

了解这5种常用的概率分布,能让你跳过不少坑

学习机器学习算法过程中,少不了概率分布的概念,说起概率分布我的脑中除了正太分布那条线就再也没有其他印象了,这个缺陷使我在推导公式过程中遇到很多坑,也在理解数据特...

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

分别用sklearn和tensorflow做房价预测

本篇是后面用tensorflow做回归时的一个参照,忍不住要说的是sklearn真是简单好用,要不是他没有卷积cnn等时髦模型,真是不想用其他家的了。 经典的s...

3963
来自专栏智能算法

机器学习算法常用指标总结

来自:Poll的笔记 链接:http://www.cnblogs.com/maybe2030/p/5375175.html(点击尾部阅读原文前往) 阅读目录 ...

3276
来自专栏大数据文摘

用100元的支票骗到100万:看看对抗性攻击是怎么为非作歹的

1393

扫码关注云+社区