Source code for kappaml_core.meta.meta_classifier
from typing import List
from river.base import Classifier
from river.metrics import Accuracy
from river.model_selection.base import ModelSelectionClassifier
from river.tree import HoeffdingTreeClassifier
from kappaml_core.meta.base import MetaEstimator
[docs]
class MetaClassifier(MetaEstimator, ModelSelectionClassifier):
"""Meta-classifier.
This implements a meta-classifier that uses a list of base classifier models
and a meta learner. The meta learner uses meta features from stream characteristics
to select the best base classifier at a given point in time.
Parameters
----------
models: list of Classifier
A list of base classifier models.
meta_learner: Classifier
default=HoeffdingTreeClassifier
Meta learner used to predict the best base estimator.
metric: Metric
default=Accuracy
Metric used to evaluate the performance of the base classifiers.
mfe_groups: list (default=['general'])
Groups of meta-features to use from PyMFE
window_size: int (default=200)
The size of the window used for extracting meta-features.
meta_update_frequency: int (default=50)
How frequently to extract meta-features and update the meta-learner.
Higher values mean less frequent updates but more stable meta-model.
"""
def __init__(
self,
models: List[Classifier],
meta_learner: Classifier = HoeffdingTreeClassifier(),
metric=Accuracy(),
mfe_groups: list = ["general"],
window_size: int = 200,
meta_update_frequency: int = 50,
):
super().__init__(
models, meta_learner, metric, mfe_groups, window_size, meta_update_frequency
)