scikit-learn “处理文本数据教程”忽略了我的目标类别

我正在研究机器学习算法,并查看了:Scikit-Learn 处理文本教程

现在我尝试使用自己的训练数据集,其中包含1个特征=消息,以及从-2(负面)到2(正面)的5个类别评级。

然后我按照教程中的步骤操作,但它总是最多返回4个目标类别,而不是5个!

target_categories = ['-2', '-1', '0', '1','2']print(metrics.classification_report(train_data.Category, predicted,target_names=target_categories))

我只会得到predicted_proba的值为-2、-1、0、1。例如:[0.2 0.2 0.4 0.4]

为什么Scikit只给我一个4×1的向量,而不是5×1?为什么我的target_categories中的最后一个值被省略了?

如果我只使用3个类别,我会得到一个错误:

values = [target_names[i]]IndexError: list index out of range

非常感谢您的帮助!


回答:

是的,之所以没有工作,是因为我在50%处分割了训练数据,而target_values并未全部包含在训练数据中。下次我会对数据进行洗牌处理。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注