Skip to content

PAClassifier

Passive-aggressive learning for classification.

Parameters

  • C

    Default1.0

  • mode

    Default1

  • learn_intercept

    DefaultTrue

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):
    model.learn_one(xi, yi)

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

for xi, yi in stream.iter_array(X_test, y_test):
    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

predict_one

Predict the label of a set of features x.

Parameters

  • x'dict'
  • kwargs

Returns

base.typing.ClfTarget | None: 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.