Spaces:
Sleeping
Sleeping
File size: 3,485 Bytes
bf5fb5f 8ffb539 bf5fb5f 1a758de bf5fb5f 1a758de bf5fb5f 1a758de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# ============================================
# Fichier: trainers/cuml/linear_regression_trainer.py
# ============================================
from cuml.linear_model import LinearRegression
from cuml_trainer import CuMLTrainer
from config import Config
from interfaces.cuml_tfidf_vectorizer import CuMLTfidfVectorizer
from interfaces.metrics_calculator import DefaultMetricsCalculator
class LinearRegressionTrainer(CuMLTrainer):
"""
Entraîneur spécifique utilisant un classifieur LinearRegression de la librairie cuML.
Hérite de CuMLTrainer, qui hérite lui-même de BaseTrainer.
Cette classe implémente les méthodes spécifiques à l'utilisation d'un modèle
de régression linéaire pour la prédiction de valeurs continues.
"""
def __init__(self, config: Config, data_path: str, target_column: str) -> None:
"""
Initialise un LinearRegressionTrainer avec la configuration et les paramètres
du parent CuMLTrainer.
:param config: Configuration globale du système.
:param data_path: Chemin vers le fichier de données.
:param target_column: Nom de la colonne cible.
"""
super().__init__(config, data_path, target_column)
def _build_classifier(self) -> None:
"""
Crée et configure un classifieur LinearRegression selon les paramètres
spécifiés dans la configuration.
Utilise directement les paramètres de la configuration pour initialiser
le modèle avec les hyperparamètres appropriés.
"""
params = self.config.model.params or {}
self.classifier = LinearRegression(**params)
def build_components(self) -> None:
"""
Instancie le vectorizer, le classifieur LinearRegression et le calculateur de métriques.
Cette méthode configure tous les composants nécessaires au fonctionnement
du trainer, en se basant sur les paramètres spécifiés dans la configuration.
"""
# Récupération de la méthode et des paramètres de vectorisation
vector_method = self.config.vectorization.method
vector_params = self.config.vectorization.dict().get(vector_method, {})
self.vectorizer = CuMLTfidfVectorizer(**vector_params)
# Construction du classifieur
self._build_classifier()
# Initialisation du calculateur de métriques
self.metrics_calculator = DefaultMetricsCalculator()
def train(self) -> None:
"""
Entraîne le classifieur LinearRegression sur les données vectorisées.
Utilise l'implémentation fournie par la classe parente CuMLTrainer,
qui s'occupe du chargement des données, de la vectorisation et de l'entraînement.
"""
# Inheriting from CuMLTrainer => loads data, vectorizes, fits
super().train()
def evaluate(self) -> dict:
"""
Évalue le classifieur LinearRegression et calcule les métriques appropriées.
Utilise l'implémentation fournie par la classe parente CuMLTrainer,
qui s'occupe du chargement des données, de la vectorisation, de la prédiction
et du calcul des métriques via le metrics_calculator.
:return: Dictionnaire contenant les métriques calculées.
"""
# Inheriting from CuMLTrainer => loads data, vectorizes, calls the metrics calculator
return super().evaluate()
|