def predict(self, X):
predictions_proba = self.predict_proba(X)<EOL>predictions = []<EOL>allclasses = copy.copy(self.classes)<EOL>allclasses.append('<STR_LIT>')<EOL>for i in range(X.shape[<NUM_LIT:0>]):<EOL><INDENT>predictions.append(allclasses[predictions_proba[i, :].argmax()])<EOL><DEDENT>return predictions<EOL>
Assign classes to test data.

Parameters
----------
X : array
    Test data, of dimension N times d (rows are examples, columns
    are data dimensions)

Returns
-------
y_predicted : array
    A vector of length N containing assigned classes. If no inlier
    classes were specified during training, then 0 denotes an inlier
    and 1 denotes an outlier. If multiple inlier classes were
    specified, then each element of y_predicted is either on of
    those inlier classes, or an outlier class (denoted by the
    maximum inlier class ID plus 1).