python - 如何显示预测标签的名称
问题描述
我正在研究标签预测。这是代码的一部分:
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(min_df=0.00009, max_features=200000, tokenizer = lambda x: x.split(), ngram_range=(1,3))
X_train_multilabel = vectorizer.fit_transform(X_train['question'])
X_test_multilabel = vectorizer.transform(X_test['question'])
from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import SGDClassifier
clf = OneVsRestClassifier(SGDClassifier(loss='log', alpha=0.00001, penalty='l2'))
clf.fit(X_train_multilabel, y_train)
y_pred = clf.predict(X_test_multilabel)
我将 y_pred 作为具有 1 和 0 的稀疏矩阵。现在我需要知道如何预测标签的名称。我正在使用 1000 个标签。所以 y_pred 有 1000 列。我怎么知道哪一列代表哪个标签。
解决方案
你需要找到class_labels,它应该是一个长度为1000的数组。
拿到这份清单后,
tags = ['cat', 'dogs', ...]
# 长度 1000
然后,您可以从您的y_pred
,
tag_y = [tags[i] if y_pred[i] == 1 for i in range(1000)]
推荐阅读
- sockets - 最小 TCP 接收窗口大小
- c# - Automapper asp.net 核心控制器 - 映射器未初始化错误
- filter - Tableau - 根据测量的最大值过滤维度
- ms-access - 选中复选框时使用 VBA 启用文本框
- azure - 如何将评分配置文件添加到特定字符串的 Azure 搜索索引
- python - 熊猫子集按最接近特定值的索引
- c# - EF 核心。更新实体而不更新导航属性
- python - CNN训练多标签分类---不工作
- ldap - 在 ldap 中搜索特定条目
- hibernate - 无法在 RESOURCE hibernate.cfg.xml 中的第 0 行和第 0 列执行解组。消息:空