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]))
我知道 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]))