Skip to content

PAClassifier

Passive-aggressive learning for classification.

Parameters

  • C – defaults to 1.0

  • mode – defaults to 1

  • learn_intercept – defaults to True

Examples

The following example is taken from this blog post.

>>> from river import linear_model
>>> from river import metrics
>>> from river import stream
>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn import model_selection

>>> np.random.seed(1000)
>>> X, y = datasets.make_classification(
...     n_samples=5000,
...     n_features=4,
...     n_informative=2,
...     n_redundant=0,
...     n_repeated=0,
...     n_classes=2,
...     n_clusters_per_class=2
... )

>>> X_train, X_test, y_train, y_test = model_selection.train_test_split(
...     X,
...     y,
...     test_size=0.35,
...     random_state=1000
... )

>>> model = linear_model.PAClassifier(
...     C=0.01,
...     mode=1
... )

>>> for xi, yi in stream.iter_array(X_train, y_train):
...     y_pred = model.learn_one(xi, yi)

>>> metric = metrics.Accuracy() + metrics.LogLoss()

>>> for xi, yi in stream.iter_array(X_test, y_test):
...     metric = metric.update(yi, model.predict_proba_one(xi))

>>> print(metric)
Accuracy: 88.46%, LogLoss: 0.325727

Methods

learn_one

Update the model with a set of features x and a label y.

Parameters

  • x
  • y

Returns

self

predict_one

Predict the label of a set of features x.

Parameters

  • x (dict)
  • kwargs

Returns

typing.Union[bool, str, int, NoneType]: The predicted label.

predict_proba_one

Predict the probability of each label for a dictionary of features x.

Parameters

  • x

Returns

A dictionary that associates a probability which each label.

References