Source code for evalml.pipelines.components.estimators.regressors.vowpal_wabbit_regressor
"""Vowpal Wabbit Regressor."""
from skopt.space import Integer, Real
from evalml.model_family import ModelFamily
from evalml.pipelines.components.estimators import Estimator
from evalml.problem_types import ProblemTypes
from evalml.utils.gen_utils import import_or_raise
[docs]class VowpalWabbitRegressor(Estimator):
"""Vowpal Wabbit Regressor.
Args:
learning_rate (float): Boosting learning rate. Defaults to 0.5.
decay_learning_rate (float): Decay factor for learning_rate. Defaults to 1.0.
power_t (float): Power on learning rate decay. Defaults to 0.5.
passes (int): Number of training passes. Defaults to 1.
random_seed (int): Seed for the random number generator. Defaults to 0.
"""
name = "Vowpal Wabbit Regressor"
hyperparameter_ranges = {
"learning_rate": Real(0.0000001, 10),
"decay_learning_rate": Real(0.0000001, 1.0),
"power_t": Real(0.01, 1.0),
"passes": Integer(1, 10),
}
""""""
model_family = ModelFamily.VOWPAL_WABBIT
"""ModelFamily.VOWPAL_WABBIT"""
supported_problem_types = [
ProblemTypes.REGRESSION,
ProblemTypes.TIME_SERIES_REGRESSION,
]
"""[
ProblemTypes.REGRESSION,
ProblemTypes.TIME_SERIES_REGRESSION,
]"""
def __init__(
self,
learning_rate=0.5,
decay_learning_rate=1.0,
power_t=0.5,
passes=1,
random_seed=0,
**kwargs,
):
parameters = {
"learning_rate": learning_rate,
"decay_learning_rate": decay_learning_rate,
"power_t": power_t,
"passes": passes,
}
parameters.update(kwargs)
vw_error_msg = "Vowpal Wabbit is not installed. Please install using `pip install vowpalwabbit.`"
vw = import_or_raise("vowpalwabbit.sklearn_vw", error_msg=vw_error_msg)
vw_regressor_class = vw.VWRegressor
vw_regressor = vw_regressor_class(**parameters)
super().__init__(
parameters=parameters,
component_obj=vw_regressor,
random_seed=random_seed,
)
@property
def feature_importance(self):
"""Feature importance for Vowpal Wabbit regressor."""
raise NotImplementedError(
"Feature importance is not implemented for the Vowpal Wabbit regressor.",
)