Source code for evalml.pipelines.components.estimators.regressors.linear_regressor

"""Linear Regressor."""

import pandas as pd
from sklearn.linear_model import LinearRegression as SKLinearRegression

from evalml.model_family import ModelFamily
from evalml.pipelines.components.estimators import Estimator
from evalml.problem_types import ProblemTypes


[docs]class LinearRegressor(Estimator): """Linear Regressor. Args: fit_intercept (boolean): Whether to calculate the intercept for this model. If set to False, no intercept will be used in calculations (i.e. data is expected to be centered). Defaults to True. n_jobs (int or None): Number of jobs to run in parallel. -1 uses all threads. Defaults to -1. random_seed (int): Seed for the random number generator. Defaults to 0. """ name = "Linear Regressor" hyperparameter_ranges = {"fit_intercept": [True, False]} """{ "fit_intercept": [True, False], }""" model_family = ModelFamily.LINEAR_MODEL """ModelFamily.LINEAR_MODEL""" supported_problem_types = [ ProblemTypes.REGRESSION, ProblemTypes.TIME_SERIES_REGRESSION, ProblemTypes.MULTISERIES_TIME_SERIES_REGRESSION, ] """[ ProblemTypes.REGRESSION, ProblemTypes.TIME_SERIES_REGRESSION, ProblemTypes.MULTISERIES_TIME_SERIES_REGRESSION, ]""" def __init__(self, fit_intercept=True, n_jobs=-1, random_seed=0, **kwargs): parameters = { "fit_intercept": fit_intercept, "n_jobs": n_jobs, } parameters.update(kwargs) linear_regressor = SKLinearRegression(**parameters) super().__init__( parameters=parameters, component_obj=linear_regressor, random_seed=random_seed, ) @property def feature_importance(self): """Feature importance for fitted linear regressor.""" return pd.Series(self._component_obj.coef_)