Example #1
0
class Preprocessor(BaseEstimator):
    def __init__(self):
        # Pour avoir la 2D
        self.transformer = PCA(n_components=2)

    def fit(self, X, y=None):
        if X.ndim > 1: self.num_feat = X.shape[1]
        if y.ndim > 1: self.num_labels = y.shape[1]

        X_preprocess = self.preprocess.fit_transform(X)
        X_scaled = preprocessing.scale(X)
        self.mod.fit(X_preprocess, y)
        self.is_trained = True
        self.transformer = IsolationForest(random_state=0).fit(X_scaled)
        return self.transformer.fit(X, y)

    def predict(self, X):
        num_test_samples = X.shape[0]
        if X.ndim > 1: num_feat = X.shape[1]
        y = np.zeros([num_test_samples, self.num_labels])

        X_preprocess = self.preprocess.transform(X)
        y = self.mod.predict(X_preprocess)
        return y

    def save(self, path="./"):
        pass

    def load(self, path="./"):
        pass

    def fit_transform(self, X, y=None):
        return self.transformer.fit_transform(X)

    def transform(self, X, y=None):
        return self.transformer.transform(X)