COULIBALY BOURAHIMA
first commit
f1f2665
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
class EnsembleModel:
def __init__(self):
self.group_classifier = RandomForestClassifier()
self.product_classifier = RandomForestClassifier()
def fit(self, X_train, y_group_train, y_product_train):
self.group_classifier.fit(X_train, y_group_train)
pred_group = self.group_classifier.predict(X_train)
print(pred_group)
liste = list(set(pred_group))
for i in liste :
X_filtered = X_train[y_group_train == i]
y_product_filtered = y_product_train[y_group_train == i]
self.product_classifier.fit(X_filtered, y_product_filtered)
def predict(self, X):
y_group_pred = self.group_classifier.predict(X)
X_filtered = X[self.group_classifier.predict(X) == y_group_pred]
y_product_pred = self.product_classifier.predict(X_filtered)
return y_group_pred, y_product_pred
# Exemple d'utilisation de la classe EnsembleModel
if __name__ == "__main__":
# Exemple de données d'entraînement (vous devriez utiliser vos propres données réelles)
X = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]
y_group = [0, 1, 0, 1, 0]
y_product = [10, 11, 12, 13, 14]
# Création et entraînement du modèle ensembliste
ensemble_model = EnsembleModel()
ensemble_model.fit(X, y_group, y_product)
# Exemple de données de test (vous devriez utiliser vos propres données réelles)
X_test = [[3, 5], [1, 3]]
y_group_pred, y_product_pred = ensemble_model.predict(X_test)
print("Prédictions du groupe de classe :", y_group_pred)
print("Prédictions de la classe du produit :", y_product_pred)