Closed aPovidlo closed 1 year ago
problem = 'regression'
И
model.fit(features=train, predefined_model='logit')
Так и должно быть?
Кажется, не хватает строчки metris = model.get_metrics(test.target)
Действительно, а что ожидается получить от logit при регрессии? Классификация тоже не подходит, тк данные под регрессию. logit выдает вероятности для int-ов из колонки target -- потому 136-размерный массив.
Кажется, что все в порядке. Разве что можно как-нибудь ловить несоответствие модели и задачи. И разве это уже где-то не проверятся?
Действительно, а что ожидается получить от logit при регрессии? Классификация тоже не подходит, тк данные под регрессию. logit выдает вероятности для int-ов из колонки target -- потому 136-размерный массив.
Кажется, что все в порядке. Разве что можно как-нибудь ловить несоответствие модели и задачи. И разве это уже где-то не проверятся?
Да, в режиме "вижу цель, не вижу преград" решил натравить logit на регрессию, а федот меня пропустил испугавшись моего порыва. Возможно, стоит добавить проверку несоответствия моделей и задачи.
Тогда это явно не блокер для примеров, поэтому можно и потом порешать.
Добавлю тогда проверку несоответствия моделей и задачи. Для user-friendliness.
А еще, в ходе investigation я обнаружил такую потенциальную проблему. Если в тестовую и тренировочную выборки случайно попадают разные количества target классов (что становится более вероятным при небольших выборках, большом количестве классов и их несбалансированности), то train_data.num_classes != test_data.num_classes
, что ведет к ошибке несоответствия размерностей в модели при валидации.
Нужно как-то иначе считать data.num_classes
.
Output of
'logit'
is 2-dim array and it cause error while trying get metrics.Error message:
Script for repeating the bug: