예제 #1
0
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