IIS_2023_1/alexandrov_dmitrii_lab_5/readme.md

4.6 KiB
Raw Blame History

Задание

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

Вариант 1: полиномиальная регрессия

Была сформулирована следующая задача: необходимо предсказывать стоимость жилья по избранным признакам при помощи регрессии.

Запуск программы

Файл lab5.py содержит и запускает программу, аргументов и настройки вроде не требует.

Описание программы

Программа считывает цены на жильё как выходные данные и следующие данные как входные: год размещения объявления, площадь, этаж, количество этажей, год постройки, количество комнат, материал, расстояние до кремля (условного центра). Далее она обрабатывает данные (цифровизирует нулевые данные), оставляет только год объявления.

После обработки программа делит данные на 99% обучающего материала и 1% тестового и обучает модель полиномиальной регрессии со степенью 3. Далее модель генерирует набор предсказаний на основе тестовых входных данных. Эти предсказания обрабатываются: убираются отрицательные цены.

Далее программа оценивает предсказания по коэффициенту детерминации и выводит результат в консоль. А также показывает диаграммы рассеяния для действительных (зелёные точки) и предсказанных (красные точки) цен.

Результаты тестирования

По результатам тестирования, можно сказать следующее:

  • Полные данные алгоритм обрабатывает плохо, поэтому было необходимо было выбирать наиболее значимые признаки.
  • В зависимости от данных, разные степени регрессии дают разный результат. В общем случае обычная линейная регрессия давала коэффициент около 0.3. При добавлении же степеней полиномиальная регрессия выдавала выбросные значения цен: например, -300 миллионов, что негативно сказывалось на результате.
  • Для того, чтобы явно выбросные результаты не портили оценку (коэффициент соответственно становился -1000) эти выбросные значения заменялись на средние.
  • Опытным путём было найдено, что наилучшие результаты (коэффициент 0.54) показывает степень 3.
  • Результат 0.54 - наилучший результат - можно назвать неприемлимым: только в половине случаев предсказанная цена условно похожа на действительную.
  • Возможно, включением большего количества признаков и использованием других моделей (линейная, например, не давала выбросов) удастся решить проблему.

Пример консольного вывода:

Оценка обучения:

0.5390648784908953

Итого: Алгоритм можно привести к некоторой эффективности, однако для конкретно этих данных он не подходит. Лучше попытаться найти другую модель регрессии.