def outlier(TRAIN, contam): for i in range(TRAIN.shape[1]): v = TRAIN[:, i] v_hat = (v - np.median(v)) TRAIN[:, i] = v_hat # model creation clf = EllipticEnvelope(support_fraction=1., contamination=contam, assume_centered=True) clf.fit(TRAIN) C = clf.correct_covariance(TRAIN) pred = clf.predict(TRAIN) # eigen decomposition E, U = LA.eig(C) P = U[0:2, :] X_hat = np.dot(TRAIN, np.transpose(P)) # plotting pred += 1 for i in range(pred.shape[0]): pred[i] = pred[i] // 2 plotting(X_hat, pred) return pred