我在数据集上训练了一个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]] # 这是一个词袋模型
y_train = ["A", "B", "C"] # 总共有8个类别
如果我运行以下代码:
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”具有最高的概率。
有什么想法导致这种情况吗?
回答:
这个问题是由我在Jupyter Notebook设置中的一个错误引起的。