In addition, the stream-learn
library also implements a simple single classifier model implementing the partial_fit()
method and a Meta estimator adapted to be used with some of the ensemble methods found in the ensembles
module. Those two models can be found in the classifiers
module.
The AccumulatedSamplesClassifier
class takes the base classifier as a base_clf
parameter during initialization and extends the given model with the partial_fit()
function adapted for data streams classification. This function concatenates observed data chunks, and in each step fits the model on all samples encountered so far.
Example
from strlearn.evaluators import TestThenTrain
from strlearn.streams import StreamGenerator
from strlearn.classifiers import AccumulatedSamplesClassifier
from sklearn.naive_bayes import GaussianNB
stream = StreamGenerator()
clf = AccumulatedSamplesClassifier(base_clf=GaussianNB())
evaluator = TestThenTrain()
evaluator.process(stream, clf)
print(evaluator.scores)
The SampleWeightedMetaEstimator
class implements a meta estimator designed to allow the use of a wider range of classification models as base classifiers in ensemble methods based on online bagging. It extends the partial_fit()
method of a given model by an additional sample_weight
parameter which allows for using classifiers such as MLPClassifier
from scikit-learn
package as base models for OnlineBagging
, OOB
and UOB
from ensembles
module.
Example
from strlearn.evaluators import TestThenTrain
from strlearn.streams import StreamGenerator
from strlearn.classifiers import SampleWeightedMetaEstimator
from strlearn.ensembles import OOB
from sklearn.neural_network import MLPClassifier
stream = StreamGenerator(n_chunks=10)
base = SampleWeightedMetaEstimator(base_classifier=MLPClassifier())
clf = OOB(base_estimator=base, n_estimators=2)
evaluator = TestThenTrain()
evaluator.process(stream, clf)
print(evaluator.scores)