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

相关文章

来自专栏人工智能LeadAI

TensorFlow从0到1丨第十六篇 L2正则化对抗“过拟合”

前面的第十四篇 交叉熵损失函数——防止学习缓慢和第十五篇 重新思考神经网络初始化从学习缓慢问题入手,尝试改进神经网络的学习。本篇讨论过拟合问题,并引入与之相对的...

371120
来自专栏null的专栏

简单易学的机器学习算法——主成分分析(PCA)

一、数据降维        对于现在维数比较多的数据,我们首先需要做的就是对其进行降维操作。降维,简单来说就是说在尽量保证数据本质的前提下将数据中的维数降低。降...

36150
来自专栏fangyangcoder

四旋翼姿态解算之理论推导

对于每个像我一样入坑四轴飞行器不久的新手来说,最初接触也颇为头疼的东西之一就是四轴的姿态解算。由于涉及较多的数学知识,很多人也是觉得十分头疼。所以,我在这里分享...

12620
来自专栏机器学习算法原理与实践

文本主题模型之LDA(一) LDA基础

    在前面我们讲到了基于矩阵分解的LSI和NMF主题模型,这里我们开始讨论被广泛使用的主题模型:隐含狄利克雷分布(Latent Dirichlet Allo...

20220
来自专栏数据科学与人工智能

【数据分析】数据分析领域中最为人称道的七种降维方法|技术专区

近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。实际上,数据量有时过犹不及。有时在数据...

22060
来自专栏数据派THU

深度学习中的正则化技术(附Python代码)

本文简单介绍了什么是正则化以及在深度学习任务中可以采用哪些正则化技术,并以keras代码具体讲解了一个案例。

31050
来自专栏量化投资与机器学习

【ML系列】一招鲜,判断哪些输入特征对神经网络是重要的!

没错,但这不是今天的重点。我们想知道的是输入特征对神经网络的预测计算有多重要。例如,通过学习时间、年龄、身高和缺席人数等几个预测因素来预测谁会通过考试。直觉上,...

12020
来自专栏null的专栏

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)

引言 LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯...

445100
来自专栏智能算法

机器学习三人行(系列十)----机器学习降压神器(附代码)

系列九我们从算法组合的角度一起实战学习了一下组合算法方面的知识,详情戳下链接: 机器学习三人行(系列九)----千变万化的组合算法(附代码) 但是,我们也知道算...

42290
来自专栏ATYUN订阅号

深度学习要点:可视化卷积神经网络

AiTechYun 编辑:yuxiangyu 深度学习中最深入讨论的话题之一是如何解释和理解一个训练完成的模型,尤其是在医疗保健等高风险行业的背景下。“黑盒”这...

1.4K100

扫码关注云+社区

领取腾讯云代金券