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

时间:2020-05-04 06:00:02

标签: python machine-learning scikit-learn decision-tree

我使用决策树分类器通过以下代码获得了多类分类摘要,

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)

输出没有任何时间可以测试或训练数据集。 https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html

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

1 个答案:

答案 0 :(得分:2)

某些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)