模型测试的时机和决策树分类器的训练
Posted
技术标签:
【中文标题】模型测试的时机和决策树分类器的训练【英文标题】:Timing of model testing and training of a decision tree classifier 【发布时间】:2020-08-18 12:17:34 【问题描述】:我使用决策树分类器得到了多类分类汇总,代码如下,
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)
输出没有任何关于测试或训练数据集的时间数据。
如何获取模型的测试时间和训练时间?
【问题讨论】:
【参考方案1】:一些 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:.2fs 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)
【讨论】:
以上是关于模型测试的时机和决策树分类器的训练的主要内容,如果未能解决你的问题,请参考以下文章
R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型并评估模型在测试集和训练集上的分类效果(accurayF1偏差Deviance):Bagging算法与随机森林对比