auc_score в scikit-learn 0,14

Я обучаю RandomForestClassifier решению проблемы бинарной классификации в scikit-learn. Я хочу максимизировать свою оценку AUC для модели. Я понимаю, что это невозможно в стабильной версии 0.13, но возможно в передовой версии 0.14.

Я пробовал это, но, похоже, получил худший результат:

ic = RandomForestClassifier(n_estimators=100, compute_importances=True, criterion='entropy', score_func = auc_score);

Это работает как параметр для модели или только в gridsearchCV?

Если я использую его в gridsearchCV, улучшит ли модель соответствие данным для auc_score? Я тоже хочу попробовать, чтобы максимизировать recall_score.


person denson    schedule 02.07.2013    source источник


Ответы (2)


Я удивлен, что вышеприведенное не вызывает ошибку. Вы можете использовать AUC только для выбора модели, как в GridSearchCV. Если вы используете его там (scoring='roc_auc' iirc), это означает, что будет выбрана модель с лучшим auc. Это не делает отдельные модели лучше по этому показателю. Однако попробовать все же стоит.

person Andreas Mueller    schedule 02.07.2013
comment
Есть ли другой способ улучшить результаты случайного леса с несбалансированными классами? Кажется, я часто с этим сталкиваюсь. У меня есть несколько сотен образцов, но только около 10 относятся к классу = 1. Я хотел бы получить как можно больше истинных срабатываний для класса = 1 даже за счет большего количества ложных срабатываний, но я не могу понять, как настроить модель для достижения этой цели. - person denson; 02.07.2013
comment
Некоторые классификаторы имеют параметр class_weight для масштабирования важности определенных классов. К сожалению, это еще не реализовано в РФ. Однако вы можете использовать параметр sample_weight функции fit, чтобы повторно взвесить важность выборок из каждого класса. Использование 1/(n_samples_in_class) является обычной эвристикой. - person Andreas Mueller; 03.07.2013

Я нашел журнальную статью, в которой рассматриваются сильно несбалансированные классы со случайными лесами. Хотя он предназначен для запуска RDF в кластерах Hadoop, похоже, что те же методы хорошо работают и для решения более мелких задач:

дель Рио, С., Лопес, В., Бенитес, Дж. М., и Эррера, Ф. (2014). Об использовании MapReduce для несбалансированных больших данных с использованием Random Forest. Информационные науки, 285, 112-137.

http://sci2s.ugr.es/rf_big_imb/pdf/rio14_INS.pdf

person denson    schedule 10.04.2015