我知道这个问题比较奇怪。。。
最近在拿 sklearn 做中文文本分类器,
网上找到的例子都是拿带标签的数据,二八划分后,八成用于训练模型,两成用于测试,
然后分析测试结果看精确度。
现在,我已经使用训练数据做好了模型训练(存在文本分类器的对象了),
拿一段之前数据集里面没有的文本数据,使用训练好的文本分类器做类别预测,
问题是如何拿到预测的类别的名称呢。。。
代码如下:
# cls 是之前已经训练好的文本分类器对象
pred = clf.predict(X_new)
怎样从预测结果 pred ( ndarray )获取到分类的类别名称呢?
我有尝试过如下的方式去获取:
label_list = list()
for index in pred:
label_list.append(training_data.target_names[index])
total = len(label_list)
label_counts = Counter(label_list)
print basename(file_path)
for label, cnt in label_counts.most_common(3):
print '%s of %.4f' % (label, float(cnt)/total)
主要就是用测试结果比对训练数据的标签: training_data.target_names
但是这样出来的预测类别名称显然不对(测试了多次,包括拿训练数据也再次做了预测,基本都不对)。
不知道哪位可以指点一二,感激不尽~~~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.