Ниже представлено введение в регрессию. Это может быть полезно, если вы совсем новичок в этой теме.

[Примечание. Предположим, что «x» в f(x) — это вектор входных данных, если речь не идет об одном входе.]

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

Это делается путем подгонки модели к заданным обучающим данным — это данные, для которых у нас есть входные значения, а также связанные выходные значения.

Наша «модель» здесь — это функция, которая отображает ввод в вывод.

Так, например, если мы рассмотрим линейную регрессию (то есть мы используем линейное уравнение для сопоставления входных данных с выходными) с двумя входными данными, x1 и x2, мы получим уравнение вида

f(x) = w0 + w1.x1 + w2.x2

Следовательно, определение значений весов (w1 и w2) дает нам отношение вход-выход.

Определение значений веса

Ошибка измерения

Давайте еще раз подумаем, какова наша цель. У нас есть куча точек данных, к которым мы должны подобрать уравнение. Для простоты предположим, что у нас есть один вход, и мы хотим подобрать прямую линию (то есть простую линейную регрессию). Теперь линия наилучшего соответствия будет максимально приближена ко всем точкам данных.

Суммируя все различия между заданными выходными значениями и выходом нашей функции, мы получаем следующее уравнение;

∑( y — f(x) ), где f(x) = w0 + w1.x

Это сумма всех красных линий, показанных ниже.

Однако, поскольку некоторые ошибки положительны, а некоторые отрицательны, они будут компенсированы. Следовательно, мы возводим в квадрат различия так, чтобы все ошибки имели положительный вклад, и мы получаем правильную оценку общей ошибки в нашей строке, называемую остаточной суммой квадратов (RSS).

RSS = ∑(y — f(x))²

Минимизация ошибок

Чтобы получить линию наилучшего соответствия, мы хотим найти значения w0 и w1, которые дадут минимально возможное значение RSS.

Снова рассмотрим уравнение RSS;

RSS = ∑(y — f(x))²

= ∑( y — w0 — w1.x )²

Если мы нанесем значения RSS на w0 и w1, мы получим выпуклый (в форме чаши) график, подобный приведенному ниже.

Теперь есть 2 способа найти минимальный RSS и соответствующие значения веса.

  1. Алгебраическое решение

Градиент или дифференциал функции при ее максимальном или минимальном значении равен нулю.

Следовательно, мы частично дифференцируем RSS по w0 и w1 и приравниваем дифференциал к нулю.

Поскольку уравнение 2 состоит только из известных величин, мы можем найти w1, а затем w0.

2. Градиентный спуск

Более эффективным может быть использование итеративного алгоритма, называемого градиентным спуском (итерационный алгоритм начинается со случайного или оценочного решения и улучшает его на каждой итерации).

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

На практике, однако, мы продолжаем до тех пор, пока градиент не станет равным некоторому малому значению, скажем, α.

Таким образом, алгоритм можно резюмировать следующим образом;

Примечание: градиентный спуск требует, чтобы веса обновлялись одновременно, то есть все частные производные рассчитывались с весами из предыдущей итерации, отсюда и использование temp0 и temp1.

Прогнозирование результатов

Когда у нас есть значения веса, прогнозировать результат для заданных входных данных достаточно просто — нам просто нужно применить формулу.

Оценка эффективности модели

Чтобы проверить точность нашей модели, мы используем другой набор данных с входными значениями, а также соответствующими выходными данными, называемыми «тестовыми данными». Мы подаем входные данные через модель и сравниваем выходные данные модели с фактическими выходными данными.

Ошибка теста = (1/м) * RSS

где m — количество выборок в тестовых данных.

Разные модели

Мы можем подогнать к нашим данным различные типы уравнений. Например;

Линейные модели:

  • Одномерный/Простой, как было показано выше.
  • многовариантный;
    Они имеют более одного входа, и соответствующий вес описывает степень, в которой вход влияет на результат. Уравнение для N входных данных будет иметь вид:
    f(x) = w0 + w1.x1 + w2.x2 + .. + wNxN
    Следовательно, линейная регрессия для 2 входных данных будет состоять из подбора плоскости к данным;
    f(x) = w0 + w1.x1 + w2.x2

Полиномы.
Для более сложных взаимосвязей ввода-вывода можно использовать полиномы более высокого порядка.

Однако здесь трудно интерпретировать значение весов, поскольку входные данные не являются независимыми друг от друга.

Общая модель

Общая модель измерений D может быть сформулирована как;

f(x) = w0h0(x) + w1 h1(x) + … + wD hD(x)

где x — входной вектор N-размера, а hi(x) — функция, такая как sin(x) или log(x), или даже комбинация различных входных данных, например x1.x2.

Выбор модели

Другой набор данных, известный как набор «перекрестной проверки», используется для выбора конкретной модели. После того, как все модели обучены с использованием обучающего набора, они проверяются на наборе перекрестной проверки, и выбирается модель с наибольшей точностью (или с наименьшей ошибкой). Затем эта модель тестируется на тестовом наборе для измерения ее производительности.

Смещение и отклонение

Модели низкой сложности (модели, состоящие из меньшего количества входных данных и полиномов низкого порядка) часто имеют высокое смещение и низкую дисперсию, в то время как модели высокой сложности (модели, состоящие из многих входных данных и полиномов высокого порядка) часто имеют высокую дисперсию и низкое смещение.

Смещение можно рассматривать как жесткость модели. Модели с высоким смещением плохо соответствуют обучающим данным или тестовым данным.

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

Например, вот некоторые данные, которые, кажется, имеют линейную зависимость между x и y;

Модель с высоким смещением не может скорректировать свои веса, чтобы правильно отобразить взаимосвязь вход-выход. Слишком много лежащих в основе предположений;

Например, здесь ошибочно предполагается, что выход не зависит от входа.

Однако модель с высокой дисперсией слишком точно соответствует обучающим данным и плохо работает с тестовыми данными;

Следовательно, оптимальная модель балансирует между смещением и дисперсией.