决策树分类器的模型测试和训练时间

Timing of model testing and training of a decision tree classifier

我使用决策树 classifier 和下面的代码获得了多 class classification 摘要,

from sklearn.tree import DecisionTreeClassifier

classifier = DecisionTreeClassifier(random_state=17)
classifier.fit(train_x, train_Y)

pred_y = classifier.predict(test_x)
print(classification_report(test_Y,pred_y))
accuracy_score(test_Y,pred_y)

输出没有任何时间数据用于测试或训练数据集。

如何获取模型的测试时间和训练时间?

一些 scikit-Learn 模型确实有一个 verbose 参数,它允许您控制拟合过程的详细程度,包括时间,请参阅一些示例 here.但 DecisionTreeClassifier 的情况并非如此。虽然你可以做一件简单的事情,但你自己计时:

import time

start_time = time.time()
classifier.fit(X_train, y_train)
elapsed_time = time.time() - start_time
print(f'{elapsed_time:.2f}s elapsed during training')

或者你可以用 Pipeline 包装它,将 verbose 设置为高于 0 的值(请注意,sklearn 管道的有趣功能是封装转换列表以应用于顺序方式和最终估计器):

from sklearn.pipeline import Pipeline

pipe = Pipeline([('tree', DecisionTreeClassifier())], verbose=3)
pipe.set_params(tree__random_state=17).fit(X_train, y_train)