中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CCA的相關原理以及Python應用是怎樣的

發布時間:2021-10-26 14:46:17 來源:億速云 閱讀:270 作者:柒染 欄目:大數據

本篇文章為大家展示了CCA的相關原理以及Python應用是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

今天分享一下CCA的相關原理以及Python應用,CCA在EEG等腦電數據的特征提取中使用很多,很有必要熟悉其原理。

CCA典型相關分析

CCA(canonical correlation analysis)利用綜合變量對之間的相關關系來反映兩組指標之間的整體相關性的多元統計分析方法。它的基本原理是:為了從總體上把握兩組指標之間的相關關系,分別在兩組變量中提取有代表性的兩個綜合變量U1和V1(分別為兩個變量組中各變量的線性組合),利用這兩個綜合變量之間的相關關系來反映兩組指標之間的整體相關性。


1936年,Hotelling提出典型相關分析。考慮兩組變量的線性組合, 并研究它們之間的相關系數p(u,v).在所有的線性組合中, 找一對相關系數最大的線性組合, 用這個組合的單相關系數來表示兩組變量的相關性, 叫做兩組變量的典型相關系數, 而這兩個線性組合叫做一對典型變量。在兩組多變量的情形下, 需要用若干對典型變量才能完全反映出它們之間的相關性。下一步, 再在兩組變量的與u1,v1不相關的線性組合中, 找一對相關系數最大的線性組合, 它就是第二對典型變量, 而且p(u2,v2)就是第二個典型相關系數。這樣下去, 可以得到若干對典型變量, 從而提取出兩組變量間的全部信息。

典型相關分析的實質就是在兩組隨機變量中選取若干個有代表性的綜合指標(變量的線性組合), 用這些指標的相關關系來表示原來的兩組變量的相關關系。這在兩組變量的相關性分析中, 可以起到合理的簡化變量的作用; 當典型相關系數足夠大時, 可以像回歸分析那樣, 由- 組變量的數值預測另一組變量的線性組合的數值。

原理描述


CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

CCA的相關原理以及Python應用是怎樣的

案例實現

# 導入工具包import h6pyimport rccaimport sysimport numpy as npimport cortexzscore = lambda d: (d-d.mean(0))/d.std(0)

第一步:加載數據

請從CRCNS下載數據:http://crcns.org/data-sets/vc/vim-2以下分析假定該數據位于當前目錄中名為“ data”的目錄中。

data = []vdata = []numSubjects = 3# subjects 是3個受試者列表.subjects = ['S1', 'S2', 'S3']# xfms 是Pycortex中變換名稱的列表,該名稱用于對齊每個受試者的功能和解剖數據。xfms = ['S1_xfm', 'S2_xfm', 'S3_xfm']dataPath ="./data/VoxelResponses_subject%d.mat"for subj in range(numSubjects):    # 打開數據    f = h6py.File(dataPath % (subj+1),'r')    #  獲取數據大小    datasize = (int(f["ei"]["datasize"].value[2]),int(f["ei"]["datasize"].value[1]),int(f["ei"]["datasize"].value[0]))    # 從Pycortex獲取皮質面罩    mask = cortex.db.get_mask(subjects[subj], xfms[subj], type = 'thick')    # 獲取該受試者的訓練數據    data_subj = np.nan_to_num(zscore(np.nan_to_num(f["rt"].value.T)))    data.append(data_subj.reshape((data_subj.shape[0],)+datasize)[:, mask])    # 獲取受試者的驗證數據    vdata_subj = np.nan_to_num(zscore(np.nan_to_num(f["rv"].value.T)))    vdata.append(vdata_subj.reshape((vdata_subj.shape[0],)+datasize)[:, mask])

第二步:定義CCA參數

# 這里設置1e-4和1e2之間的一系列正則化值regs = np.array(np.logspace(-4, 2, 10))# 這里考慮3到10之間的成分數量numCCs = np.arange(3, 11)# 初始化cca模型cca = rcca.CCACrossValidate(numCCs=numCCs, regs=regs)

第三步:對數據訓練,分析并保存分析結果

"""說明:由于數據量大,此分析的計算量很大。在筆記本中運行它會花費大量時間,因此建議對其進行并行化和/或在計算機群集上運行它,然后加載結果以進行可視化。"""# 利用cca訓練數據cca.train(data)# 利用cca對驗證數據進行驗證cca.validate(vdata)# 計算方差,解釋每個體素中的驗證響應cca.compute_ev(vdata)# 保存分析結果cca.save("./data/CCA_results.hdf5")

第四步:可視化分析結果

# 導入可視化工具包%matplotlib inlineimport matplotlib.pyplot as plt# 導入Brewer色彩圖以進行可視化from brewer2mpl import qualitativenSubj = len(cca.corrs)nBins = 30bmap = qualitative.Set1[nSubj]f = plt.figure(figsize = (8, 6))ax = f.add_subplot(111)for s in range(nSubj):    # 繪制所有三個對象的所有體素之間的相關性直方圖    ax.hist(cca.corrs[s], bins = nBins, color = bmap.mpl_colors[s], histtype="stepfilled", alpha = 0.6)plt.legend(['Subject 1', 'Subject 2', 'Subject 3'], fontsize = 16)ax.set_xlabel('Prediction correlation', fontsize = 20)ax.set_ylabel('Number of voxels', fontsize = 20)ax.set_title("Prediction performance across voxels", fontsize = 20)# p <0.05時的顯著性閾值(針對多次比較進行了校正)# 重要性是使用漸近方法計算的(有關詳細信息,請參見論文文本)thresh = 0.0893ax.axvline(x = thresh, ymin = 0, ymax = 7000, linewidth = 2, color = 'k')ax.text(thresh+0.05, 5000, 'p<0.05', fontsize = 16)ax.set_xticklabels(0.1*np.arange(-8, 11, 2), fontsize = 16)ax.set_yticklabels(np.arange(0, 10000, 1000), fontsize = 16)

CCA的相關原理以及Python應用是怎樣的

該圖顯示了皮質圖上一個對象的跨學科預測結果,即預測的驗證響應和實際的驗證響應之間的相關性。不重要的相關性(p <0.05,已針對多個比較進行校正)設置為0。

import cortexfrom matplotlib import cmfrom copy import deepcopysubj = 0subjName = "S1"subjTransform = "S1_xfm"corrs = deepcopy(cca.corrs[subj])# 將所有低于顯著性閾值的體素設置為0corrs[corrs<thresh] = 0_ = cortex.quickflat.make_figure(cortex.Volume(corrs, subjName,                                                subjTransform,                                                cmap = cm.PuBuGn_r,                                               vmin = 0., vmax = 1.), with_curvature = True)

CCA的相關原理以及Python應用是怎樣的

上述內容就是CCA的相關原理以及Python應用是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乌珠穆沁旗| 壤塘县| 调兵山市| 曲靖市| 蕲春县| 建始县| 虹口区| 毕节市| 平舆县| 布尔津县| 中山市| 深州市| 盐亭县| 南投市| 长春市| 抚州市| 双桥区| 萨迦县| 沙湾县| 贵南县| 伊吾县| 宜宾市| 湄潭县| 封丘县| 德兴市| 凌源市| 通海县| 济源市| 正镶白旗| 忻州市| 柯坪县| 宜章县| 余姚市| 台北市| 惠东县| 通化县| 广河县| 寿光市| 红安县| 清徐县| 资溪县|