"""
Wrapper module around `sklearn.linear_model`
"""
[docs]__author__ = "Elisha Yadgaran"
import logging
from sklearn.linear_model import (
LogisticRegression,
LogisticRegressionCV,
Perceptron,
RidgeClassifier,
RidgeClassifierCV,
SGDClassifier,
)
from simpleml.models.classifiers.external_models import ClassificationExternalModelMixin
from .base_sklearn_classifier import SklearnClassifier
[docs]LOGGER = logging.getLogger(__name__)
"""
Logistic Regression
"""
[docs]class WrappedSklearnLogisticRegression(
LogisticRegression, ClassificationExternalModelMixin
):
[docs]class SklearnLogisticRegression(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnLogisticRegression(**kwargs)
[docs]class WrappedSklearnLogisticRegressionCV(
LogisticRegressionCV, ClassificationExternalModelMixin
):
[docs]class SklearnLogisticRegressionCV(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnLogisticRegressionCV(**kwargs)
"""
Perceptron
"""
[docs]class WrappedSklearnPerceptron(Perceptron, ClassificationExternalModelMixin):
[docs]class SklearnPerceptron(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnPerceptron(**kwargs)
"""
Ridge Classifier
"""
[docs]class WrappedSklearnRidgeClassifier(RidgeClassifier, ClassificationExternalModelMixin):
[docs]class SklearnRidgeClassifier(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnRidgeClassifier(**kwargs)
[docs]class WrappedSklearnRidgeClassifierCV(
RidgeClassifierCV, ClassificationExternalModelMixin
):
[docs]class SklearnRidgeClassifierCV(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnRidgeClassifierCV(**kwargs)
"""
SGD Classifier
"""
[docs]class WrappedSklearnSGDClassifier(SGDClassifier, ClassificationExternalModelMixin):
[docs]class SklearnSGDClassifier(SklearnClassifier):
[docs] def _create_external_model(self, **kwargs):
return WrappedSklearnSGDClassifier(**kwargs)