我了解到dummy classifier https://scikit-learn.org/stable/modules/generated/sklearn.dummy.DummyClassifier.html 提供了一个基准性能的测量,并且它应用不同的策略来进行预测。
我找到了它在二分类问题中的应用示例。想了解这种分类器是否可以在多类别场景中使用。如果可以,stratified
策略将如何工作?
回答:
DummyClassifier
确实支持多类别分类。这里是一个小例子:
from sklearn.datasets import make_classificationfrom sklearn.dummy import DummyClassifierX, 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
策略,你可能需要查阅用户指南:
stratified
通过尊重训练集的类别分布来生成随机预测
所以预测将是随机的,但仍然符合训练集中类别的分布,如下所示:
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]))