pooled_subjects = np.asarray(pooled_subjects) scores = {} for kind in kinds: scores[kind] = [] for train, test in cv.split(pooled_subjects, classes): # *ConnectivityMeasure* can output the estimated subjects coefficients # as a 1D arrays through the parameter *vectorize*. connectivity = ConnectivityMeasure(kind=kind, vectorize=True) # build vectorized connectomes for subjects in the train set connectomes = connectivity.fit_transform(pooled_subjects[train]) # fit the classifier classifier = LinearSVC().fit(connectomes, classes[train]) # make predictions for the left-out test subjects predictions = classifier.predict( connectivity.transform(pooled_subjects[test])) # store the accuracy for this cross-validation fold scores[kind].append(accuracy_score(classes[test], predictions)) ###################################################################### # display the results mean_scores = [np.mean(scores[kind]) for kind in kinds] scores_std = [np.std(scores[kind]) for kind in kinds] plt.figure(figsize=(6, 4)) positions = np.arange(len(kinds)) * .1 + .1 plt.barh(positions, mean_scores, align='center', height=.05, xerr=scores_std) yticks = [k.replace(' ', '\n') for k in kinds] plt.yticks(positions, yticks) plt.gca().grid(True)