# Predicting
print('Predicting...')
start_time = time.time()
y_pred = early.estimator.predict(dataset.X_test)
elapsed_time_testing = time.time() - start_time

# Analytics
title = "RandomForest"
save_path = "C:/Users/thoma/source/repos/PythonMachineLearning/PythonMachineLearning/Library/Results"
print('Analyzing...')
evaluator = Evaluator(title, save_path)
evaluator.append_to_file(f'Best iteration: {early.best_iteration_}',
                         "info.txt")
evaluator.append_to_file(f'Training time (seconds): {elapsed_time_training}',
                         "info.txt")
evaluator.append_to_file(f'Testing time (seconds): {elapsed_time_testing}',
                         "info.txt")
evaluator.append_to_file(dataset_parameters, "dataset_parameters.txt")
evaluator.append_to_file(model_parameters, "model_parameters.txt")
evaluator.save_advanced_metrics(dataset.y_test, y_pred, dataset.class_labels,
                                dataset.class_descriptions)
evaluator.append_to_file(early.eval_results, "metric_results.txt")
evaluator.create_evaluation_metric_results(early.eval_results,
                                           xlabel='number of trees',
                                           ylabel='geometric mean')
evaluator.create_confusion_matrix(dataset.y_test,
                                  y_pred,
                                  dataset.class_labels,
                                  normalize=True)
plt.show()