Skip to content

Commit

Permalink
fix pylint model_trainer
Browse files Browse the repository at this point in the history
  • Loading branch information
ChinSekYi committed Jul 7, 2024
1 parent 1c286f5 commit df1d604
Showing 1 changed file with 46 additions and 7 deletions.
53 changes: 46 additions & 7 deletions src/components/model_trainer.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
"""
Module for training various machine learning models and evaluating their performance.
"""

import os
import sys
from dataclasses import dataclass

from sklearn.ensemble import (AdaBoostRegressor, GradientBoostingRegressor,
from sklearn.ensemble import (AdaBoostRegressor,
RandomForestRegressor)
from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn.metrics import (accuracy_score, classification_report,
confusion_matrix, f1_score, precision_score,
r2_score, recall_score)
from sklearn.metrics import r2_score
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVC as SVM
from sklearn.tree import DecisionTreeRegressor
Expand All @@ -20,17 +22,54 @@

@dataclass
class ModelTrainerConfig:
"""
Configuration class for model training operations.
Attributes:
- trained_model_file_path (str): File path to save the trained model.
"""
trained_model_file_path = os.path.join("artifacts", "model.pkl")


class ModelTrainer:
"""
ModelTrainer class handles training of various machine learning models and evaluation of their performance.
Methods:
- __init__(): Initializes a ModelTrainer instance with default configuration.
- initiate_model_trainer(train_array, test_array): Initiates model training, evaluates model performance, and saves the best model.
"""
def __init__(self):
"""
Initializes a ModelTrainer instance with default configuration.
Usage:
>>> trainer = ModelTrainer()
"""
self.model_trainer_config = ModelTrainerConfig()

def initiate_model_trainer(self, train_array, test_array):
"""
Initiates model training, evaluation, and saves the best performing model.
Args:
- train_array (numpy.ndarray): Array containing training data.
- test_array (numpy.ndarray): Array containing testing data.
Returns:
- Tuple: Predicted values and R-squared score of the best performing model.
Raises:
- CustomException: If an error occurs during model training or evaluation.
Usage:
>>> trainer = ModelTrainer()
>>> predicted_values, r2_score = trainer.initiate_model_trainer(train_array, test_array)
"""
try:
logging.info("Splitting training and test input data")
X_train, y_train, X_test, y_test = (
x_train, y_train, X_test, y_test = (
train_array[:, :-1],
train_array[:, -1],
test_array[:, :-1],
Expand Down Expand Up @@ -78,7 +117,7 @@ def initiate_model_trainer(self, train_array, test_array):
}

model_report: dict = evaluate_model(
X_train=X_train,
x_train=x_train,
y_train=y_train,
X_test=X_test,
y_test=y_test,
Expand Down Expand Up @@ -117,4 +156,4 @@ def initiate_model_trainer(self, train_array, test_array):
return (predicted, r2_score_value)

except Exception as e:
raise CustomException(e, sys)
raise CustomException(e, sys) from e

0 comments on commit df1d604

Please sign in to comment.