Часть 2: многомерная линейная регрессия
Задача: Оценка стоимости квартиры по её площади и количеству комнат.
Данные: cost_apartments.csv
2.1. Нормализация признаков
Так как признаки (площадь и кол-во комнат) имеют разные масштабы, была применена нормализация для ускорения сходимости градиентного спуска.
2.2.Сравнение методов
Вприложении реализовано сравнение двух методов для предсказания цены
квартиры (для примера взята квартира 60 м² с 3 комнатами):
Метод градиентного спуска: требует итераций и нормализации.
Метод нормальных уравнений: находит точное решение за один шаг, не требует нормализации.
Результаты обоих методов оказались очень близки, что подтверждает корректность обеих реализаций.
2.3. Выбор скорости обучения (α)
Ключевым этапом при работе с градиентным спуском является подбор скоростиобучения.Былпостроенграфикдлясравнениясходимости J(θ) приразных значениях α.
Из графика видно, что:
При слишком большом α (например, 0.3) функция стоимости расходится. При слишком малом α (например, 0.003) сходимость очень медленная. Оптимальное значение α (например, 0.1 или 0.03) обеспечивает быструю и
стабильную сходимость.
Выводы
В ходе выполнения лабораторной работы я успешно реализовал и изучил алгоритмы линейной регрессии.
Были реализованы ключевые функции для вычисления стоимости, градиентного спуска, нормализации признаков и решения через нормальные уравнения.
На практике была продемонстрирована важность нормализации признаков и подбора скорости обучения α для корректной работы градиентного спуска.
Разработано интерактивное веб-приложение на Streamlit, которое позволяет не только выполнять вычисления, но и наглядно визуализировать каждый этап анализа данных.
Проведено сравнение итерационного и аналитического подходов к решению задачи регрессии, что дало полное представление о возможностях и ограничениях каждого метода.
Все поставленные цели лабораторной работы были достигнуты.
Инструкция по запуску проекта
1. Клонировать репозиторий: codeBash
git clone https://github.com/vadikbee/IS-LAB1.git cd IS-1LABA
2. Запустить приложение: codeBash
streamlit run app.py
(А также скачать библиотеки нужно)