Странное значение score

Всем привет! При обучении модели на тренировочной выборке результат нормальный, однако тестовая выборка выдает -4. Может сталкивался кто-то? введите сюда описание изображения


Ответы (1 шт):

Автор решения: CrazyElf

Теоретически такое вполне возможно, если y_test сильно отличается от того, что модель предсказывает на X_test, поскольку score возвращает coefficient of determination of the prediction:

The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse).

Лучше всего посмотреть глазами - чем отличаются друг от друга тренировочная и тестовая выборки. Для этого посмотреть визуализацию распределений, зависимость таргета от фич и т.д.

Ещё полезно посчитать таки y_pred, взять те точки, где есть значительное различие между y_pred и y_test, и посмотреть, что там происходит с фичами X_test в этих точках. Может там выбросы какие-то.

Ну и в целом хорошо бы проверить - как вы делите выборку на трейн и тест, вполне бывает так, что в либо в трейн либо в тест попадают какие-то не характерные сэмплы.

И да, сложные модели вроде RF склонны к переобучению, возможно вам нужно просто уменьшить сложность модели. Она у вас цепляется к деталям трейна, которых нет в тесте, такое тоже может быть. Начните с LinearRegression, либо попробуйте уменьшить глубину и прочие параметры RF. Вы должны добиваться не идеального скора на трейне, а того, чтобы на тесте скор был примерно такой же как на трейне, и желательно, чтобы они оба были хорошие. Но если скор на трейне прекрасный, а на тесте ужасный, то эта модель хуже чем та, у которой средней паршивости скор и там и там, но он примерно одинаковый и там и там. Такая модель с идеальным скором на трейне на самом деле ничему не научилась, она просто идеально запомнила трейн и от этого не будет никакого толку на других/новых данных.

→ Ссылка