scikit-learn“使用文本数据教程”忽略了我的目标类别
Posted
技术标签:
【中文标题】scikit-learn“使用文本数据教程”忽略了我的目标类别【英文标题】:scikit-learn "Working with Text Data Tutorial" ignores my target categories 【发布时间】:2015-05-22 14:50:28 【问题描述】:我正在研究 ML 算法并查看:Scikit-Learn Working with Text Tutorial
现在我尝试使用我自己的训练数据集,其中包含 1 个特征 = 消息,以及从 -2(负面)到 2(正面)的 5 个类别评级。
然后我按照教程中的说明进行操作,但它始终会返回最多 4 个 target_categories 而不是 5 个!
target_categories = ['-2', '-1', '0', '1','2']
print(metrics.classification_report(train_data.Category, predicted,target_names=target_categories))
我只会得到predicted_proba
for -2,-1,0,1。例如:[0.2 0.2 0.4 0.4]
为什么 Scikit 只给我一个 4x1 向量而不是 5x1?为什么我的target_categories
中的最后一个值被省略了?
如果我只使用 3,我会得到一个错误:
values = [target_names[i]]
IndexError: list index out of range
非常感谢您的帮助!
【问题讨论】:
我想我找到了问题所在,似乎是我使用的训练数据集太少,而其中没有一个 target_categories。 如果确认,请将该评论作为您问题的答案。 【参考方案1】:是的,它不起作用的原因是,因为我将训练数据拆分为 50%,而 target_values
并未全部包含在训练数据中。下次我会洗牌。
【讨论】:
以上是关于scikit-learn“使用文本数据教程”忽略了我的目标类别的主要内容,如果未能解决你的问题,请参考以下文章
python (Scikit-Learn) 和 R (e1071) 的不同精度