File size: 1,032 Bytes
6defa3d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import logging
from abc import ABC, abstractmethod
from sklearn.linear_model import LinearRegression

class Model(ABC):
    """

    Abstract class for all models

    """
    @abstractmethod
    def train(self, X_train, y_train):
        """

        Trains the model

        Args:

            X_train: Training data

            y_train: Training labels

        Returns:

            None

        """
        pass

class LinearRegressionModel(Model):
    """

    Linear Regression model

    """
    def train(self, X_train, y_train, **kwargs):
        """

        Trains the model

        Args:

            X_train: Training data

            y_train: Training labels

        Returns:

            model

        """
        try:
            reg = LinearRegression(**kwargs)
            reg.fit(X_train, y_train)
            logging.info("Model training completed")
            return reg
        except Exception as e:
            logging.error(f"Error in training model: {e}")
            raise e