fioriclass commited on
Commit
a7790b3
·
1 Parent(s): ef3b361

maj cuml pour etre comme transformers

Browse files
Files changed (1) hide show
  1. src/cuml_trainer.py +21 -14
src/cuml_trainer.py CHANGED
@@ -56,14 +56,18 @@ class CuMLTrainer(BaseTrainer, ABC):
56
 
57
  data = cudf.read_csv(self.data_path)
58
 
59
- # Séparation des textes et des étiquettes
60
- # Supposons que la colonne de texte est la première colonne qui n'est pas la colonne cible
61
- text_column = [col for col in data.columns if col != self.target_column][0]
62
- texts = data[text_column] # Extraire la série de texte
63
- labels = data[self.target_column].values
64
-
65
- # Vectorisation des textes
66
- X = self.vectorizer.fit_transform(texts)
 
 
 
 
67
  X_prepared = self._prepare_input_for_fit(X)
68
  # Entraînement du modèle
69
  self.classifier.fit(X_prepared, labels)
@@ -76,14 +80,17 @@ class CuMLTrainer(BaseTrainer, ABC):
76
  # Chargement des données (idéalement un jeu de test séparé)
77
  data = cudf.read_csv(self.data_path)
78
 
79
- # Séparation des textes et des étiquettes
80
- # Supposons que la colonne de texte est la première colonne qui n'est pas la colonne cible
81
- text_column = [col for col in data.columns if col != self.target_column][0]
82
- texts = data[text_column] # Extraire la série de texte
83
- y_true = data[self.target_column].values
 
 
 
84
 
85
  # Vectorisation et prédiction
86
- X = self.vectorizer.transform(texts)
87
  X_prepared = self._prepare_input_for_predict(X)
88
  y_pred = self.classifier.predict(X_prepared)
89
 
 
56
 
57
  data = cudf.read_csv(self.data_path)
58
 
59
+ # Identification des colonnes de features (toutes sauf la cible)
60
+ feature_columns = [col for col in data.columns if col != self.target_column]
61
+ if not feature_columns:
62
+ raise ValueError("Aucune colonne de feature trouvée. Le dataset doit contenir au moins une colonne en plus de la colonne cible.")
63
+
64
+ # Concaténation des features (même si une seule, pour la cohérence et l'évolutivité)
65
+ # Convertit en string et ajoute un espace comme séparateur si plusieurs colonnes existent.
66
+ texts_concatenated = data[feature_columns].astype(str).agg(' '.join, axis=1)
67
+ labels = data[self.target_column].astype(self._get_label_dtype()).values # Assurer le bon dtype pour les labels
68
+
69
+ # Vectorisation des textes concaténés
70
+ X = self.vectorizer.fit_transform(texts_concatenated)
71
  X_prepared = self._prepare_input_for_fit(X)
72
  # Entraînement du modèle
73
  self.classifier.fit(X_prepared, labels)
 
80
  # Chargement des données (idéalement un jeu de test séparé)
81
  data = cudf.read_csv(self.data_path)
82
 
83
+ # Identification des colonnes de features (toutes sauf la cible)
84
+ feature_columns = [col for col in data.columns if col != self.target_column]
85
+ if not feature_columns:
86
+ raise ValueError("Aucune colonne de feature trouvée pour l'évaluation.")
87
+
88
+ # Concaténation des features
89
+ texts_concatenated = data[feature_columns].astype(str).agg(' '.join, axis=1)
90
+ y_true = data[self.target_column].astype(self._get_label_dtype()).values # Assurer le bon dtype
91
 
92
  # Vectorisation et prédiction
93
+ X = self.vectorizer.transform(texts_concatenated)
94
  X_prepared = self._prepare_input_for_predict(X)
95
  y_pred = self.classifier.predict(X_prepared)
96