Линейная регрессия с нуля
Линейная регрессия - это тип модели, который предполагает линейную связь между входными и целевыми переменными. Он используется для расчета или прогнозирования значения на основе одной (или многих) входных переменных. Обычно он используется, когда:
- У вас есть линейная связь, предположим, что x и y - две переменные, и у них есть прямая (одна увеличивается, другая также увеличивается) или косвенная (одна увеличивается, другая уменьшается) взаимосвязь.
- Когда вам нужно предсказать числовое значение, если у вас есть категориальные значения, вы должны преобразовать их в числовые для выполнения модели линейной регрессии.
- У вас есть одна зависимая и одна независимая переменные.
Модель линейной регрессии - это прямая линия, которая лучше всего соответствует данным. Его уравнение:
Где:
- м - наклон или уклон линии
- c - точка пересечения с y линии
Множественная линейная регрессия (MLR) используется, когда имеется более одной входной переменной. В этой статье я буду реализовывать модель линейной регрессии для одной входной переменной с нуля на Python с использованием numpy и matplotlib и объяснять идею каждого шага (с полным кодом в конце).
Начиная
- Numpy - это библиотека Python, которая используется для вычисления математических операций высокого уровня над большими многомерными массивами и матрицами.
- Matplotlib - это графическая библиотека, которая поможет в построении различных графиков, чтобы упростить интерпретацию данных.
- Модуль Math имеет некоторые встроенные функции, такие как извлечение квадратного корня, которые помогут в вычислении значений.
Теперь здесь я определяю два массива, один - входная или независимая переменная (x), а другой - выходная или зависимая переменная (y), и вставляю некоторые значения в оба из них, а затем рисую результирующие точки на графике.
Определение терминов и расчет значений
Среднее: это сумма наблюдений, разделенная на количество наблюдений.
Дисперсия: это мера того, насколько результаты наблюдений отличаются от среднего значения.
Стандартное отклонение: это мера дисперсии.
Стандартное отклонение обозначается σ (сигма) , которое представляет собой квадратный корень из дисперсии.
Где :
- xᵢ - наблюдение
- x̅ - среднее
- n - общее количество наблюдений.
Примечание. При вычислении дисперсии / стандартного отклонения мы разделили на n-1 вместо n, чтобы убедиться, что дисперсия / стандартное отклонение не смещены. См. Поправка Бесселя для получения дополнительной информации.
Сумма квадратов: используется для определения разброса данных, это сумма квадратов разницы между всеми точками и средним значением.
Где:
- yᵢ это наблюдение
- y это среднее
- n - количество наблюдений
Оценка отклонения: это сумма разницы между всеми наблюдениями и средним значением наблюдений.
Где:
- xᵢ, yᵢ - наблюдение
- x⁻, y⁻ - среднее значение x и y соответственно
- n - количество наблюдений
Оценка R: это соотношение между прогнозируемыми и фактическими значениями. Его значение колеблется от -1 до +1.
Где:
- Прод - это результат оценок отклонений.
- SSx - это сумма квадратов для X
- SSy - сумма квадратов для Y
Уклон: показатель крутизны прямой линии.
Что рассчитывается по:
Где:
- м - уклон.
- stdev - стандартное отклонение.
- r - это оценка r.
Результат
Теперь, когда мы получили наклон, мы можем записать уравнение наиболее подходящей прямой в виде:
Где y⁻ и x⁻ - это среднее значение y и x соответственно, а m - наклон.
Теперь нанесем наиболее подходящую линию поверх диаграммы рассеяния.
Это наиболее подходящая линия, которую мы получили для данных массивов x и y. Теперь ее можно использовать для прогнозирования будущих значений.
Проверка
Теперь используем sklearn, чтобы проверить, правильна ли наша лучшая линия.
Изменение формы массивов, чтобы их можно было использовать в функции LinearRegression (). Изменение формы изменяет форму массива без изменения содержимого.
Заключение
Полученное значение r составляет 0,9672, а значение r, полученное с помощью sklearn, равно 0,9672, поскольку они оба одинаковы, мы пришли к одной и той же строке наилучшего соответствия, но без использования какой-либо из библиотек машинного обучения. Этот подход является чисто статистическим и может использоваться для прогнозирования или регрессионного анализа.