class ENMLT(object): def __init__(self, base_clf_class): self.base_clf_class = base_clf_class def fit(self, X_train, y_train): clf = self.base_clf_class() clf.fit(X_train, y_train) self.mlt = MLT(clf) ra = RA3(self.base_clf_class) ra.fit([X_train, y_train]) self.ra = ra self.X_train = X_train self.y_train = y_train def predict(self, X_test): class_dist = self.ra.predict_dict(X_test) self.mlt.fit(self.X_train, self.y_train, class_dist) y_pred = self.mlt.predict(X_test) return y_pred
class BACMLT(object): def __init__(self, base_clf_class): self.base_clf_class = base_clf_class def fit(self, X_train, y_train): clf = self.base_clf_class() clf.fit(X_train, y_train) self.mlt = MLT(clf) bac = BAC(self.base_clf_class) bac.fit([X_train, y_train]) self.bac = bac self.X_train = X_train self.y_train = y_train def predict(self, X_test): class_dist = self.bac.predict_dict(X_test) self.mlt.fit(self.X_train, self.y_train, class_dist) y_pred = self.mlt.predict(X_test) return y_pred