【问题标题】:Can scikit-learn 'dummy classifier' be applied to multiclass scenarioscikit-learn 的“虚拟分类器”能否应用于多类场景
【发布时间】:2021-09-30 11:53:41
【问题描述】:

我了解虚拟分类器 https://scikit-learn.org/stable/modules/generated/sklearn.dummy.DummyClassifier.html 提供了基线性能的衡量标准,并应用不同的策略进行预测。

已经找到了它在二进制类问题中的应用示例。想了解这个分类器是否可以在多类场景中使用。如果是,stratified 策略将如何运作?

【问题讨论】:

    标签: machine-learning scikit-learn multiclass-classification


    【解决方案1】:

    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:类似数组的形状 (n_samples,) 或 (n_samples, n_outputs)


    要了解stratified 策略,您可能需要咨询user guide

    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]))
    

    【讨论】:

      猜你喜欢
      • 2015-06-09
      • 2016-04-22
      • 2014-11-19
      • 2016-10-17
      • 1970-01-01
      • 2014-02-04
      • 2015-05-09
      • 2018-02-11
      • 2015-04-08
      相关资源
      最近更新 更多