我正在尝试为一个数据集创建决策树,并研究由此产生的混淆矩阵。虽然混淆矩阵告诉我发生了多少次误分类,但它并没有准确告诉我X_train
中的哪些特定实例被误分类了。我试图找出这些被误分类的实例,并确定它们最终落在哪个叶节点。我知道可以使用decision_path()
,但它并不会告诉我某个特定实例是否被误分类。我的主要目标是找出这些混淆和错误分类的实例最终落在哪里。以下是我的代码:
from sklearn.datasets import load_iris
iris=load_iris()
Y_train=iris.target
X_train=iris.data
clf=tree.DecisionTreeClassifier( max_depth=3, criterion='entropy')
clf.fit(X_train, Y_train)
pred=clf.predict(X_train)
print('Accuracy on test data is %.2f' % (accuracy_score(Y_train, pred)))
回答:
你可以在pred
中获得所有预测结果,在Y_train
中获得所有训练值
那么你的误分类预测结果就是pred[pred!=Y_train]
如果你想要这些特征,可以使用X_train[pred!=Y_train]