Настройка функций потерь в Scikit Learn

Это работает как ожидалось. ORDER BY сначала упорядочивает вашу таблицу с помощью столбца n312, а затем с помощью столбца n309. Предположим, что у вас есть таблица, как показано ниже:

 n312 | n309
-----------
 2.0 | 1.0
 5.0 | 2.0
 2.0 | 3.0
 3.0 | 2.0
 5.0 | 1.0

Затем «ORDER BY» упорядочит вашу таблицу, как показано ниже:

n312 | n309
-----------
 5.0 | 2.0
 5.0 | 1.0
 3.0 | 2.0
 2.0 | 3.0
 2.0 | 1.0

Сначала заказывает ваши строки на n312. Если для двух строк n312 имеют одно и то же значение (например, строка 1 и строка 2), то он будет упорядочивать их со значением столбца n309.

Если вы хотите что-то вроде:

n312 | n309
-----------
 5.0 | 3.0
 5.0 | 2.0
 3.0 | 2.0
 2.0 | 1.0
 2.0 | 1.0

Тогда вам нужно что-то подобное, как показано ниже:

 SELECT t1.n312, t2.n309 from 
   (select row_number() as id, n312 from t ORDER BY n312) as t1 
   JOIN 
   (select row_number() as id, n309 from t ORDER BY n309) as t2 
   WHERE t1.id = t2.id;

Идея состоит в том, чтобы упорядочить таблицу отдельно с обоими столбцами вначале, а затем выбрать упорядоченные столбцы.

0
задан Prune 18 January 2019 в 18:20
поделиться

1 ответ

Вы можете настроить функции потерь в scikit learn, для этого вам нужно применить фабрику make_scorer к вашей пользовательской функции потерь, например:

from sklearn.metrics import make_scorer
score = make_scorer(my_custom_loss_func, greater_is_better=False)

В вашем конкретном случае со случайными лесами, хотя вы можете ' t настроить критерий, что вы можете сделать, это оптимизировать гиперпараметры с помощью GridSearchCV, и там вы сможете использовать свои собственные потери.

0
ответ дан Franco Piccolo 18 January 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: