【问题标题】:AttributeError: 'MultiOutputClassifier' object has no attribute 'classes_'AttributeError:“MultiOutputClassifier”对象没有属性“classes_”
【发布时间】:2019-07-29 01:31:55
【问题描述】:

我想获得每个输出的每个类别的预测概率。 但是classes_ 属性在MultiOutputClassifier 上不存在。

如何将类与输出关联起来?

from sklearn.datasets import make_classification
from sklearn.multioutput import MultiOutputClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.utils import shuffle
import numpy as np

X, y1 = make_classification(n_samples=16, n_features=8, n_informative=4, n_classes=4, random_state=1)
y2 = shuffle(y1, random_state=1)
Y = np.vstack((y1, y2)).T

forest = RandomForestClassifier(n_estimators=16, random_state=1)
multi_target_forest = MultiOutputClassifier(forest, n_jobs=-1)
multi_target_forest.fit(X, Y).predict(X)

multi_target_forest.predict_proba(X)
multi_target_forest.classes_

AttributeError: 'MultiOutputClassifier' 对象没有属性 'classes_'

【问题讨论】:

    标签: python scikit-learn classification multilabel-classification


    【解决方案1】:

    使用MultiOutputClassifierestimators_ 属性访问估算器属性。

    试试这个!

    ['y_{} class_{}'.format(idx,klass) for idx,forest in enumerate(multi_target_forest.estimators_) \
                                        for klass in forest.classes_]
    
    
    #output:
    ['y_0 class_0',
     'y_0 class_1',
     'y_0 class_2',
     'y_0 class_3',
     'y_1 class_0',
     'y_1 class_1',
     'y_1 class_2',
     'y_1 class_3']
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 2020-02-26
      • 2017-10-12
      • 2012-12-01
      • 2021-04-19
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      相关资源
      最近更新 更多