scikit-learn 'dummy classifier' 能否应用于多类场景

Can scikit-learn 'dummy classifier' be applied to multiclass scenario

我知道 dummy classifier https://scikit-learn.org/stable/modules/generated/sklearn.dummy.DummyClassifier.html 给出了基线性能的度量,它应用不同的策略来预测。

已找到其在二进制 class 问题中的应用示例。想了解此 classifier 是否可用于 multiclass 场景。如果是,stratified 策略将如何运作?

DummyClassifier确实支持多类分类。这是一个小例子:

from sklearn.datasets import make_classification
from sklearn.dummy import DummyClassifier


X, y = make_classification(n_classes=3, n_clusters_per_class=1, random_state=42)

clf = DummyClassifier(strategy='stratified')
clf.fit(X, y)

它甚至支持多类多输出分类,因为它的 fit 方法接受以下形状的 y

y: array-like of shape (n_samples,) or (n_samples, n_outputs)


要了解 stratified 策略,您可能需要参考 user guide:

stratified generates random predictions by respecting the training set class distribution

因此预测将是随机的,但仍符合训练集中 类 的分布,如您在此处所见:

print(np.unique(y, return_counts=True))
# output: (array([0, 1, 2]), array([34, 33, 33])) 

print(np.unique(clf.predict(X), return_counts=True))
# output: (array([0, 1, 2]), array([32, 38, 30]))