Линейная регрессия на python.Метод наименьших квадратов|loss function|Градиентный спуск.Data Science
00:00:00 Введение в задачу • Описание задачи: написание алгоритма линейной регрессии с функцией потерь MSE. • Использование градиентного спуска для поиска весов. • Уточнение, что алгоритм пишется вручную, так как в библиотеке Scikit-learn используется функция потерь MSE. 00:01:53 Преимущества и недостатки функции потерь MSE • MSE менее чувствительна к выбросам, чем L1. • MSE не дифференцируема в нуле, что требует дополнительного определения функции. • Решение проблемы с помощью доопределения функции. 00:05:06 Подготовка данных • Копирование данных с десмоса и вставка в Python. • Создание датафрейма для хранения данных. • Подключение библиотек pandas и numpy для работы с таблицами и массивами. 00:08:06 Перезапись данных • Перезапись координат точек в датафрейм. • Создание словаря для хранения данных. • Проверка правильности записи координат. 00:12:54 Визуализация данных • Вывод данных в таблицу для проверки. • Визуализация данных с помощью matplotlib. • Создание графика с помощью метода plot. 00:14:34 Работа с графиком • График выглядит как закорючка, нужно убрать линию между точками. • Используем тип графика "скейтер" для отображения точек. • Точки совпадают с точками на графике в десмосе. 00:15:13 Определение начальных весов • Определяем начальные веса для линии. • Используем парное присвоение в Python для задания начальных весов. • Задаем коэффициенты и смещение для линии. 00:16:47 Создание колонки для прогнозируемого значения • Создаем колонку "прогнозируемое значение" в таблице. • Используем функцию "df" для создания колонки. • Записываем формулу для прогнозируемого значения. 00:17:34 Формула для прогнозируемого значения • Формула для прогнозируемого значения: "y" равно "x" плюс "b". • Убираем лишние детали из формулы. • Используем данные из датафрейма для расчета "x". 00:18:56 Доступ к данным датафрейма • Доступаемся к столбцу "x" в датафрейме. • Используем функцию "df" для доступа к данным. • Завершаем настройку формулы для прогнозируемого значения. 00:19:13 Работа с данными и прогнозами • Обсуждение необходимости использования квадратных скобок для обращения к данным. • Введение формулы для прогнозирования: y = w * x + b. • Сравнение прогнозируемых значений с целевыми данными y_target. 00:20:18 Проблемы с прогнозами • Прогнозы сильно отличаются от целевых значений. • Объяснение, почему веса w и b по умолчанию равны 1. • Необходимость смещения линии для улучшения соответствия. 00:21:23 Инициализация весов • Алгоритм линейной регрессии инициализирует веса случайным образом. • Создание таблицы и подготовка данных для визуализации. • Переход от Pandas к Matplotlib для визуализации. 00:22:19 Визуализация данных • Подключение библиотеки Matplotlib для визуализации. • Создание метода для визуализации данных x и y. • Передача данных в метод для создания графика. 00:24:21 Настройка линии • Настройка линии с помощью метода plot. • Изменение наклона линии для улучшения соответствия. • Объяснение необходимости изменения весов автоматически. 00:28:31 Функция потерь • Создание новой колонки для функции потерь. • Объяснение формулы для расчета абсолютного значения ошибки. • Устранение ошибок, чтобы они не поглощали друг друга. 00:31:48 Преобразование знака ошибки • Для получения только положительных ошибок нужно поменять знак. • Используем модуль для преобразования отрицательных значений в положительные. • Формула: abs(x). 00:32:42 Построение общей ошибки • Подсчитываем разницу между точками и складываем их. • Определяем общую ошибку как среднее значение. • Рассматриваем случай, когда ошибка равна нулю. 00:34:40 Работа с производными • Вставляем производные формулы в канву. • Используем производные для расчета коэффициентов. • Копируем и вставляем формулы для корректного расчета. 00:37:43 Проблемы с нулями