我在使用scikit-learn的多标签二值化器和一对多分类器时遇到了问题。我的挑战是在获得预测结果后,如何恢复到原始标签。(我分别训练并保存了一对多分类器和向量化器)
_labels = load_labels()mlb = MultiLabelBinarizer()mlb.fit_transform(_labels)print mlb.classes_ # 这会打印出二值化的标签_clf,_vect = load_pickle('./pickles')for q in queries: #查询向量 q X = vect.transform([q]) res = clf.predict_proba(X) print res #[[ 0.00164113 0.00706595 0.00683465 .... 0.00837984]] #这里是我卡住的地方,不知道要传入什么到inverse_transform中来获得 preds = mlb.inverse_transform(??) print preds
感谢您的提前帮助!
回答:
mlb.fit_transform(_labels)
的输出将作为inverse_transform
的输入。
更多信息请参见:多标签二值化器