Exemple #1
0
    def __init__(self, labels):
        """
        Leave Half a Label Out cross-validation iterator:
        Provides train/test indexes to split data in train test sets
    
        Parameters
        ----------
        labels : list
                List of labels
            
        Examples
        ----------
        >>> from parietal.learn.covariance.cov_estimator_l1 import LeaveHalfALabelOut
        >>> N_SUBJECTS = 2
        >>> N_SAMPLES = 2
        >>> labels  = np.repeat(np.arange(N_SUBJECTS), N_SAMPLES)
        >>> labels
        array([0, 0, 1, 1])
        >>> cv = cross_val.LeaveHalfALabelOut(labels)
        >>> len(cv)
        4
        >>> for train_mask, test_mask in cv:
        ...    print "TRAIN:", train_mask, "TEST:", test_mask
        TRAIN: [ True False  True  True] TEST: [False  True False False]
        TRAIN: [False  True  True  True] TEST: [ True False False False]
        TRAIN: [ True  True  True False] TEST: [False False False  True]
        TRAIN: [ True  True False  True] TEST: [False False  True False]

        """
        LeaveOneLabelOut.__init__(self, labels)
Exemple #2
0
 def __iter__(self):
     for train_mask, test_mask in LeaveOneLabelOut.__iter__(self):
         n_test = test_mask.sum()
         sub_mask = np.ones(n_test, dtype=np.bool)
         sub_mask[: n_test / 2] = False
         new_test_mask = test_mask.copy()
         new_test_mask[test_mask] = sub_mask
         train_mask[test_mask] = np.logical_not(sub_mask)
         yield train_mask, new_test_mask
         new_test_mask[test_mask] = np.logical_not(sub_mask)
         train_mask[test_mask] = sub_mask
         yield train_mask, new_test_mask