【问题标题】:Sklearn - How to predict probability for all target labelsSklearn - 如何预测所有目标标签的概率
【发布时间】:2016-11-19 03:02:38
【问题描述】:

我有一个数据集,其中包含一个可以有 7 个不同标签的目标变量。我的训练集中的每个样本只有一个目标变量标签。

对于每个样本,我想计算每个目标标签的概率。所以我的预测将包括每行的 7 个概率。

在 sklearn 网站上,我阅读了有关多标签分类的信息,但这似乎不是我想要的。

我尝试了以下代码,但这只给每个样本一个分类。

from sklearn.multiclass import OneVsRestClassifier
clf = OneVsRestClassifier(DecisionTreeClassifier())
clf.fit(X_train, y_train)
pred = clf.predict(X_test)

有人对此有什么建议吗?谢谢!

【问题讨论】:

    标签: python scikit-learn multilabel-classification


    【解决方案1】:

    您可以通过简单地删除OneVsRestClassifer 并使用DecisionTreeClassifierpredict_proba 方法来做到这一点。您可以执行以下操作:

    clf = DecisionTreeClassifier()
    clf.fit(X_train, y_train)
    pred = clf.predict_proba(X_test)
    

    这将为您提供 7 个可能的类别中的每一个的概率。

    希望有帮助!

    【讨论】:

      【解决方案2】:

      您可以尝试使用scikit-multilearn - 处理多标签分类的 sklearn 扩展。如果您的标签没有过度相关,您可以为每个标签训练一个分类器并获得所有预测 - 尝试(在 pip install scikit-multilearn 之后):

      from skmultilearn.problem_transform import BinaryRelevance    
      classifier = BinaryRelevance(classifier = DecisionTreeClassifier())
      
      # train
      classifier.fit(X_train, y_train)
      
      # predict
      predictions = classifier.predict(X_test)
      

      在您的情况下,预测将包含一个大小为 (n_samples, n_labels) 的稀疏矩阵 - n_labels = 7,每列包含所有样本的每个标签的预测。

      如果您的标签是相关的,您可能需要更复杂的多标签分类方法。

      免责声明:我是 scikit-multilearn 的作者,请随时提出更多问题。

      【讨论】:

      • 在最近发布的 scikit-multilearn 0.0.4 版本中,您将找到基于问题转换的多标签分类器方法的 predict_proba 实现。在上述情况下,将最后一行替换为:predictions = classifier.predict_proba(X_test)
      【解决方案3】:

      如果你坚持使用OneVsRestClassifer,那么你也可以调用predict_proba(X_test),因为OneVsRestClassifer也支持。

      例如:

      from sklearn.multiclass import OneVsRestClassifier
      clf = OneVsRestClassifier(DecisionTreeClassifier())
      clf.fit(X_train, y_train)
      pred = clf.predict_proba(X_test)
      

      您获得结果的标签的顺序可以在以下位置找到:

      clf.classes_
      

      【讨论】:

        猜你喜欢
        • 2022-06-28
        • 2020-06-01
        • 1970-01-01
        • 2020-04-13
        • 2016-06-05
        • 2013-12-08
        • 2015-02-01
        • 2018-04-19
        相关资源
        最近更新 更多