我正在浏览以下分析Iris dataset
的IPython Notebook在笔记本中的某一点上,作者构建了以下模型:
此时,我变得非常困惑。最后一行发生了什么?
根据我的经验,您应该根据模型创建预测,然后将该预测与y_test
值进行比较。
我会做以下事情:
predictions = decision_tree_classifier.predict(X_test)
from sklearn.metrics import classification_report
print classification_report(y_test, predictions)
当作者根据testing_inputs
和testing_classes
生成得分时会发生什么?
答案 0 :(得分:4)
来自docs:
得分(X,y,sample_weight =无)
返回给定测试数据和标签的平均准确度。
而这正是它的作用。它在内部对X_test
执行预测,生成y_pred
并将其与y_test
进行比较,以计算准确度得分。
你做的是类似的,但分两步。您首先预测然后与y_test
进行比较。此外,您正在打印出精确度,召回率和f1分数。
答案 1 :(得分:2)
为@ Coldspeed的答案添加一些细节,score
调用DecisionTreeClassifier
sklearn.metrics.accuracy_score
。这是正确分类的百分比。只是指出这一点,因为我没有找到所有直观的“平均准确度”。
from sklearn.metrics import accuracy_score
y_pred = [0, 2, 1, 3]
y_true = [0, 1, 2, 3]
accuracy_score(y_true, y_pred)
Out[106]: 0.5