【问题标题】:Multilabel binarizer - getting the inverse transform多标签二值化器 - 获得逆变换
【发布时间】:2018-05-01 13:43:36
【问题描述】:

我坚持在 scikit-learn 中使用 Multilabel binarizer 和 One-vs-all 分类器。我的挑战是一旦我获得预测, 获取原始标签。 (我分别训练和腌制了one-vs-rest分类器和矢量化器)

_labels = load_labels()
mlb = MultiLabelBinarizer()
mlb.fit_transform(_labels)
print mlb.classes_ # this prints the binarized labels

_clf,_vect = load_pickle('./pickles')

for q in queries:
    #query vector q
    X = vect.transform([q])            
    res = clf.predict_proba(X)
    print res #[[ 0.00164113  0.00706595  0.00683465 .... 0.00837984]]

    #this is where I am stuck on what to pass into the inverse_transform to obtain
    preds = mlb.inverse_transform(??)
    print preds

提前感谢您的帮助!

【问题讨论】:

  • inverse_transform 将获取您的标签并将它们转换回具有编码的类。所以inverse_transform 的输出是transform 的输入。 MultilabelBinarizer
  • @sharatpc,对不起,我有点困惑,因为我的模型之前是经过训练和腌制的,我正在从 csv 和 fit_transform 重新读取标签,我对 @987654327 的输入是什么@?
  • mlb.fit_transform(_labels) 的输出将是输入
  • 谢谢!那行得通。非常感谢!请作为答案发布,以便我接受

标签: python machine-learning scipy scikit-learn svm


【解决方案1】:

mlb.fit_transform(_labels) 的输出将作为inverse_transform 的输入。

更多信息在这里:Multilabel Binarizer

【讨论】:

  • 嘿!所以当你说解决方案应该是:mlb.inverse_transform(mlb.fit_transform(_labels)) 时,我没有明白。您不希望对预测值(在这种情况下为 res)进行逆变换吗?即-mlb.inverse_transform(mlb.fit_transform(res))?在这种情况下,我的预测值将变成一个无法逆变换的浮点数,那我们该怎么办??
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 2019-09-09
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-18
  • 2011-07-25
  • 2021-03-28
相关资源
最近更新 更多