Сроки тестирования моделей и обучения классификатора дерева решений - PullRequest
0 голосов
/ 04 мая 2020

Я получил сводную классификацию по нескольким классам, используя классификатор дерева решений с кодом ниже:

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)

на выходе не было данных о времени для тестирования или обучения набора данных. enter image description here

Как узнать время тестирования и время обучения модели?

1 Ответ

2 голосов
/ 04 мая 2020

Некоторые модели scikit-Learn имеют параметр verbose , который позволяет вам контролировать уровень детализации процесса подбора, включая время, см. Некоторые примеры здесь . Но это не тот случай 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, установив для подробного значения значение, превышающее 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)
...