def fit(self, features, classes):
        """Constructs the MDR ensemble from the provided training data

        Parameters
        ----------
        features: array-like {n_samples, n_features}
            Feature matrix
        classes: array-like {n_samples}
            List of class labels for prediction

        Returns
        -------
        None

        """
        self.ensemble.fit(features, classes)

        # Construct the feature map from the ensemble predictions
        unique_rows = list(set([tuple(row) for row in features]))
        for row in unique_rows:
            self.feature_map[row] = self.ensemble.predict([row])[0]
Constructs the MDR ensemble from the provided training data

        Parameters
        ----------
        features: array-like {n_samples, n_features}
            Feature matrix
        classes: array-like {n_samples}
            List of class labels for prediction

        Returns
        -------
        None