我使用以下代码通过决策树分类器获得了多类分类摘要,
from sklearn.tree import DecisionTreeClassifierclassifier = 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
参数,允许你控制拟合过程的详细程度,包括时间信息,参见这里的一些示例。但DecisionTreeClassifier
并非如此。不过,你可以简单地自己计时:
import timestart_time = time.time()classifier.fit(X_train, y_train)elapsed_time = time.time() - start_timeprint(f'{elapsed_time:.2f}s elapsed during training')
或者你可以用Pipeline
包装它,将verbose
设置为高于0
的值(注意,sklearn的pipeline的一个有趣功能是按顺序封装一系列要应用的转换以及最终的估算器):
from sklearn.pipeline import Pipelinepipe = Pipeline([('tree', DecisionTreeClassifier())], verbose=3)pipe.set_params(tree__random_state=17).fit(X_train, y_train)