在多標籤分類問題中,我使用MultiLabelBinarizer將我的20個文本標籤轉換爲零和一個二進制列表。Scikit學習多標籤分類,從MultiLabelBinarizer獲取標籤
預測後,我得到20個二進制值的列表,我想輸出相應的文本標籤。
我只是想知道MultiLabelBinarizer()是否提供了一個回頭轉換,或者我應該手動進行。
在多標籤分類問題中,我使用MultiLabelBinarizer將我的20個文本標籤轉換爲零和一個二進制列表。Scikit學習多標籤分類,從MultiLabelBinarizer獲取標籤
預測後,我得到20個二進制值的列表,我想輸出相應的文本標籤。
我只是想知道MultiLabelBinarizer()是否提供了一個回頭轉換,或者我應該手動進行。
是的,MultiLabelBinarizer提供了一種名爲inverse_transform()
的方法,該方法將二元化標籤轉換回在fit()
期間提供給它的原始名稱。
inverse_transform(YT)
Transform the given indicator matrix into label sets Parameters: yt : array or sparse matrix of shape (n_samples, n_classes) A matrix containing only 1s ands 0s. Returns: y : list of tuples The set of labels for each sample such that y[i] consists of classes_[j] for each yt[i, j] == 1.
太好了。有用。總結:1)'mlb = MultiLabelBinarizer()' 2)'y = mlb.fit_transform(labels)'3)'print mlb.inverse_transform(clf.predict(test [0]))' – Ale
是的。這是正確的 –
順便說一句,MultiLabelBinarizer()。classes_存儲在轉換列表標籤的順序。因此,在我的預測中,與MultiLabelBinarizer()。classes_相對應的for循環打印索引就足夠了,雖然很煩人。 – Ale