【问题标题】: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)

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

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

【问题讨论】:

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


    【解决方案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:.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)
    

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 2021-04-09
      • 2016-09-02
      • 2011-06-29
      • 2019-06-01
      • 2021-01-01
      • 1970-01-01
      • 2014-11-11
      相关资源
      最近更新 更多