【发布时间】:2018-03-03 20:58:55
【问题描述】:
我已经在我的数据集上训练了一个 RandomForestClassifier,以从一段文本中预测 8 个不同的主题。给定示例的数据集如下所示
X_train = [[0,0,0,0,0,1,0,0,1,0],
[0,1,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,1]]
# This is a bag of word
y_train = ["A", "B", "C"]
# 8 categories in total
如果我运行以下代码
rdf = RandomForestClassifier(n_estimators = 100)
rdf_fitted = rdf.fit(X_train, y_train)
print rdf_fitted.predict(x_test[0])
print rdf_fitted.predict_proba(x_test[0])
print rdf_fitted.classes_
我得到了一个奇怪的结果
["B"]
[0.7, 0.2, 0.1]
["A","B","C"...]
基本上,预测标签(在本例中为“B”)与 predict_proba 预测不匹配,这表明“A”的概率最高。
你知道是什么原因造成的吗?
【问题讨论】:
-
当我运行你的代码时,它对我有用。您还可以添加您的 x_test[0] 吗?
-
我已经更正了您代码中的一些语法错误。除非您将确切的代码与
x_test[0]一起发布您正在使用的内容,否则我们无法提供帮助。 -
非常感谢。我在周末再次尝试了这个,现在它产生了正确的结果。看来问题是由我在 Jupyter Notebook 中执行代码的顺序中的错误引起的。对不起!
标签: python machine-learning scikit-learn classification