Оценки классификации отличаются между H2O4GPU и Scikit-Learn
Я начал оценивать случайный лесной классификатор, используя точность и отзыв. Тем не менее, несмотря на то, что наборы поездов и тестов идентичны для реализаций классификатора с использованием ЦП и ГП, я вижу различия в возвращаемых оценочных баллах. Это известная ошибка в библиотеке случайно?
Оба примера кода приведены ниже для справки.
Scikit-Learn (процессор)
from sklearn.metrics import recall_score, precision_score
from sklearn.ensemble import RandomForestClassifier
rf_cpu = RandomForestClassifier(n_estimators=5000, n_jobs=-1)
rf_cpu.fit(X_train, y_train)
rf_cpu_pred = clf.predict(X_test)
recall_score(rf_cpu_pred, y_test)
precision_score(rf_cpu_pred, y_test)
CPU Recall: 0.807186
CPU Precision: 0.82095
H2O4GPU (GPU)
from h2o4gpu.metrics import recall_score, precision_score
from h2o4gpu import RandomForestClassifier
rf_gpu = RandomForestClassifier(n_estimators=5000, n_gpus=1)
rf_gpu.fit(X_train, y_train)
rf_gpu_pred = clf.predict(X_test)
recall_score(rf_gpu_pred, y_test)
precision_score(rf_gpu_pred, y_test)
GPU Recall: 0.714286
GPU Precision: 0.809988
1 ответ
Исправление: понял, что входы для точности и отзыва были в неправильном порядке. Заказ всегда (y_true, y_pred)
Согласно документации Scikit-Learn.
Исправленный код оценки
recall_score(y_test, rf_gpu_pred)
precision_score(y_test, rf_gpu_pred)