36 lines
4.6 KiB
Markdown
36 lines
4.6 KiB
Markdown
|
### Задание
|
|||
|
Использовать регрессию по варианту для выбранных данных по варианту, самостоятельно сформулировав задачу.
|
|||
|
Интерпретировать результаты и оценить, насколько хорошо она подходит для
|
|||
|
решения сформулированной вами задачи.
|
|||
|
|
|||
|
Вариант 1: полиномиальная регрессия
|
|||
|
|
|||
|
Была сформулирована следующая задача: необходимо предсказывать стоимость жилья по избранным признакам при помощи регрессии.
|
|||
|
|
|||
|
### Запуск программы
|
|||
|
Файл lab5.py содержит и запускает программу, аргументов и настройки ~~вроде~~ не требует.
|
|||
|
|
|||
|
### Описание программы
|
|||
|
Программа считывает цены на жильё как выходные данные и следующие данные как входные: год размещения объявления, площадь, этаж, количество этажей, год постройки, количество комнат, материал, расстояние до кремля (условного центра).
|
|||
|
Далее она обрабатывает данные (цифровизирует нулевые данные), оставляет только год объявления.
|
|||
|
|
|||
|
После обработки программа делит данные на 99% обучающего материала и 1% тестового и обучает модель полиномиальной регрессии со степенью 3.
|
|||
|
Далее модель генерирует набор предсказаний на основе тестовых входных данных. Эти предсказания обрабатываются: убираются отрицательные цены.
|
|||
|
|
|||
|
Далее программа оценивает предсказания по коэффициенту детерминации и выводит результат в консоль. А также показывает диаграммы рассеяния для действительных (зелёные точки) и предсказанных (красные точки) цен.
|
|||
|
|
|||
|
### Результаты тестирования
|
|||
|
По результатам тестирования, можно сказать следующее:
|
|||
|
* Полные данные алгоритм обрабатывает плохо, поэтому было необходимо было выбирать наиболее значимые признаки.
|
|||
|
* В зависимости от данных, разные степени регрессии дают разный результат. В общем случае обычная линейная регрессия давала коэффициент около 0.3. При добавлении же степеней полиномиальная регрессия выдавала выбросные значения цен: например, -300 миллионов, что негативно сказывалось на результате.
|
|||
|
* Для того, чтобы явно выбросные результаты не портили оценку (коэффициент соответственно становился -1000) эти выбросные значения заменялись на средние.
|
|||
|
* Опытным путём было найдено, что наилучшие результаты (коэффициент 0.54) показывает степень 3.
|
|||
|
* Результат 0.54 - наилучший результат - можно назвать неприемлимым: только в половине случаев предсказанная цена условно похожа на действительную.
|
|||
|
* Возможно, включением большего количества признаков и использованием других моделей (линейная, например, не давала выбросов) удастся решить проблему.
|
|||
|
|
|||
|
Пример консольного вывода:
|
|||
|
>Оценка обучения:
|
|||
|
>
|
|||
|
>0.5390648784908953
|
|||
|
|
|||
|
Итого: Алгоритм можно привести к некоторой эффективности, однако для конкретно этих данных он не подходит. Лучше попытаться найти другую модель регрессии.
|