## 2 Materials and Methods
### Identification of Functional Networks through Machine Learning Algorithms  
Among the 55 ICs identified using SICA approach, only a few correspond to functional networks. Several ICs were, in fact, background noise, which was characterized by a low number of activated voxels. Functional networks generally comprise between 1200 and 3000 activated voxels. In order to reduce the number of ICs for each patient and improve the performance of the functional network identification, we added a preliminary step with the exclusion of all ICs with less than 850 activated voxels. We chose to introduce this threshold to fix a minimal number of activated voxels, above which it can be considered as network. Too few activated voxels were found to be only noise and not related to connectivity networks of interest during the manual review by the two expert reviewers. This procedure was performed to discard \"noise\" networks and increase the algorithm's detection sensitivity. Then, we extracted the coordinates of the maximal activation peak of each cluster in order to minimize the number of variables considered for training before feeding the data into algorithms. To identify the most suited family of machine learning algorithm for functional network classification, we implemented six machine learning algorithms, such as Random Forest, Feed forward Neural networks, Naive Bayesian classifier, K-Nearest Neighbors, Support vector machine, and Classification tree. The random forest classifier consists of a combination of tree classifiers, 100 in our experiment. Each classifier is generated using a random vector sampled independently from the input vector. Each tree casts a unit vote for the most popular class to classify an input vector. Bayesian classifiers are statistical classifiers. They can predict class membership probabilities, such as the probability that a given sample belongs to a particular class. Naive Bayesian classifiers assume that the effect of an attribute value on a given class is independent of the values of the other attributes.The k-nearest neighbors classifier [45] stores the complete training data. New examples are classified by choosing the majority class among the k closest examples in the training data. We used the Euclidean distance to measure the tile distance between examples for our particular problem. Support Vector Machine is a powerful method for building a classifier. It aims to create a decision boundary between two classes that enables the prediction of labels from one or more feature vectors. This decision boundary, known as the hyperplane, is orientated so that it is as far as possible from the closest data points from each of the classes. Decision trees [46] recursively split the feature space based on tests that evaluate one feature variable against a threshold value. We used the information gain criteria for choosing the best test and top-down pruning with a value of 0.95 to reduce over-fitting. In addition to the six shallow learning methods, we included deep learning methods in our benchmark test. Deep learning aims at jointly learning feature representations with the required prediction models. We chose the predominant approach in computer vision, namely, deep convolutional neural networks [47]. The baseline approach resorts to standard supervised training of the prediction model (the neural network) on the target training data. No additional data sources were used. In particular, given a training set comprised of \(K\) pairs of images \(f_{i}\) and labels \(\hat{y}_{i}\), we train the parameters \(\theta\) of the network \(r\) using stochastic gradient descent to minimize empirical risk:  
Figure 2: Visualization of two forms of image data for Language network (LANG): (**a**) connectivity map image, (**b**) Thresholded image. \[\theta^{*}=\arg\min_{\theta}\sum_{i=1}^{K}\mathcal{L}(\hat{y}_{i},r(f_{i},\theta)) \tag{1}\]  
where \(\mathcal{L}\) denotes the loss function, which is cross-entropy in our case.