Линейная регрессия в машинном обучении

Существует два типа алгоритмов или задач машинного обучения с учителем: регрессия и классификация.

• Классификация - Классификация - это процесс категоризации данного набора данных по классам, он может выполняться как для структурированных, так и для неструктурированных данных. Процесс начинается с прогнозирования класса заданных точек данных. Классы часто называют целевыми, метками или категориями.

Пример - спам, проверка неплательщика в соискателе кредита.

• Регрессия - прогнозирует непрерывное значение на основе исторических данных. Он предсказывает будущие значения на основе исторических данных. Пример - Количество пациентов с коронавирусом в июле, продажи автомобилей в 2021 году

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

Он предсказывает непрерывную переменную «Y» на основе данной независимой переменной «X». Если мы нанесем независимую переменную (x) на ось x, а зависимую переменную (y) на ось y. Этот алгоритм дает прямую линию между осями y и x.

Итак, наше уравнение выглядит так, как показано ниже.

Y = θ0 + θ1.X

Где y - прогнозируемое значение

X - это входные данные, либо функции, либо столбцы.

θ 0 и θ 1 - параметры модели. 1-й - это пересечение или смещение, а 2-й - наклон или вес.

Вы можете видеть, что уравнение выглядит как y = mx + c, которое мы изучали в нашей школьной программе, где m - наклон, а c - точка пересечения.

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

y = θ 0 x 0+ θ 1 x 1 + θ 2 x 2 + ⋯ + θnxn

ŷ - прогнозируемое значение.

n - количество функций.

x i - i-е значение функции. X0 всегда 0

θj - j-й параметр модели (включая член смещения θ 0 и веса признаков

θ1, θ2, ⋯, θn).

То же самое мы можем написать в векторной форме.

• θ - вектор параметров модели, содержащий член смещения θ 0 и функцию

веса от θ от 1 до θ n.

• x - вектор признаков экземпляра, содержащий x от 0 до xn, причем x 0 всегда равен 1.

• θ ・ x - скалярное произведение векторов θ и x, которое равно

θ 0 x 0 + θ 1 x 1 + θ 2 х 2 + ⋯ + θnxn.

h θ - функция гипотезы, использующая параметры модели θ.

В машинном обучении векторы часто представлены как векторы-столбцы, которые представляют собой двумерные массивы с одним столбцом. Если θ и x - векторы-столбцы, то прогноз будет следующим: y = θT x, где θT - транспонирование θ (поменять местами строки на столбец или столбец на строки), а θT x - это матричное умножение θT и x. Это, конечно, тот же прогноз, за ​​исключением того, что теперь он представлен как матрица с одной ячейкой, а не как скалярное значение.

Транспонирование - замена строк на столбцы матрицы или наоборот.

Подготовка данных для линейной регрессии

Для алгоритма данные - самая важная часть. Есть поговорка «Мусор на входе, мусор на выходе». Это означает, что если вы скармливаете мусор (нерелевантные данные или зашумленные данные), вывод вашей модели будет мусором (неточным). Следовательно, нам нужно, чтобы данные были в наилучшем виде, прежде чем загружать и тестировать модель.

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

1- ›Линейное предположение: линейная регрессия предполагает, что связь между вашей независимой переменной или X (вход) и зависимой переменной или Y (выход) является линейной или имеет тенденцию быть линейной для лучшей производительности. Если связь не является линейной, к данным можно применить преобразование.

2- ›Удаление коллинеарности: если ваши независимые переменные связаны друг с другом, мы должны просто взять наибольшее количество ко, связанных с Y, и удалить остальное, связанное с этой переменной X. Пример Если у ваших данных есть дата рождения и возраст, мы можем удалить их.

3- ›Гауссовские распределения: линейная регрессия сделает более надежные прогнозы, если ваши входные и выходные переменные имеют гауссово распределение или колоколообразную кривую. Вы можете получить некоторую выгоду, используя преобразования ваших переменных, чтобы их распределение выглядело более гауссово.

4- ›Удаление шума: линейная регрессия предполагает, что ваши входные и выходные переменные не содержат шумов. Нам нужно очистить данные перед их передачей в модель. Это наиболее важно для выходной переменной, и вы хотите удалить выбросы в зависимой переменной или Y, если это возможно.

5- ›Изменение масштаба входных данных. Линейная регрессия часто дает более надежные прогнозы, если вы масштабируете входные переменные с помощью стандартизации или нормализации y.

Средняя история о Standardscaler и MinMax Scaler (нормализация) - https://medium.com/@amitupadhyay6/standardscaler-and-normalization-with-code-and-graph-ba220025c054

Выберите показатель эффективности

Наша модель готова прогнозировать стоимость, но перед тем, как запустить ее в производство, нам необходимо проверить производительность модели. Для этого нам сначала нужно измерить, насколько хорошо (или плохо) модель соответствует обучающим данным. Наиболее распространенным показателем эффективности регрессионной модели является среднеквадратическая ошибка (RMSE). Он дает представление о том, сколько ошибок система обычно допускает в своих прогнозах, с большим весом для больших ошибок. Следовательно, чтобы обучить модель линейной регрессии, вам необходимо найти значение θ, которое минимизирует RMSE. На практике минимизировать среднеквадратическую ошибку (MSE) проще, чем RMSE, и это приводит к тому же результату.

Среднеквадратичная ошибка:

RMSE - это квадратный корень из дисперсии остатков. Он указывает на абсолютное соответствие модели данным - насколько близки наблюдаемые точки данных к прогнозируемым значениям модели. В то время как R-квадрат - это относительная мера соответствия, RMSE - абсолютная мера соответствия.

Среднеквадратичная ошибка:

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

Средняя абсолютная ошибка:

Несмотря на то, что RMSE обычно является предпочтительным показателем производительности для задач регрессии, в некоторых контекстах вы можете предпочесть использовать другую функцию. Например, предположим, что в ваших данных много выбросов. В этом случае вы можете рассмотреть возможность использования средней абсолютной ошибки.

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

• Вычисление корня из суммы квадратов (RMSE) соответствует евклидову

норма: это также называется нормой ℓ2, отмеченной ∥ ・ ∥2 (или просто ∥ ・ ∥).

• Вычисление суммы абсолютов (MAE) соответствует норме ℓ1, отмеченной как ∥ ・ ∥1.

Его также называют нормой Манхэттена, потому что она измеряет расстояние между двумя точками.

Наиболее распространенная интерпретация r-квадрата - насколько хорошо регрессионная модель соответствует наблюдаемым данным. Например, r-квадрат 60% показывает, что 60% данных соответствуют регрессионной модели. Как правило, более высокий R-квадрат указывает на лучшее соответствие модели.

R-квадрат или R2 объясняет степень, в которой ваши входные переменные объясняют вариацию вашей выходной / прогнозируемой переменной. Итак, если R-квадрат равен 0,8, это означает, что 80% вариации выходной переменной объясняется входными переменными. Проще говоря, чем выше R в квадрате, тем больше вариаций объясняется вашими входными переменными и, следовательно, лучше ваша модель.

Где SSres, остаточная сумма квадратов ошибок нашей регрессионной модели или ошибка.

& SStot, - общая сумма квадратов ошибок.

Скорректированный квадрат R:

Однако проблема с R-квадратом заключается в том, что он либо останется прежним, либо увеличится с добавлением дополнительных переменных, даже если они не связаны с выходными переменными. Здесь на помощь приходит «Скорректированный R-квадрат». Скорректированный R-квадрат наказывает вас за добавление переменных, которые не улучшают вашу существующую модель.

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

Как правило, чем больше незначительных переменных вы добавляете в модель, тем больше увеличивается разрыв в R-квадрате и Скорректированном R-квадрате.

Как мы знаем, всякий раз, когда мы добавляем новую функцию или входную переменную, квадратное значение R2 будет оставаться таким же или увеличиваться, что является хорошим признаком, чем выше значение r2, тем выше производительность нашей модели, но если вы добавляете незначительную переменную или функцию , даже если значение r2 останется прежним или будет увеличиваться. чего не должно происходить, поэтому мы используем скорректированный квадрат r2, давайте рассмотрим оба случая.

1- ›Добавление соответствующей функции или входной переменной в набор данных - Если вы добавляете соответствующую функцию, значение r2 будет увеличиваться, что означает, что (1-r2) будет маленьким значением, и если вы умножите маленькое значение на большое число {( 1-r2) * (n-1) / (np-1)}, значение будет уменьшено. ex 10 * 2 = 20 и 10 * 0,5 = 5, следовательно (1 - {(1-r2) * (n-1) / (np-1)}) будет большим числом, поскольку мы вычитаем маленькое число из 1 .

2- ›Добавление нерелевантной функции или входной переменной в набор данных - Если вы добавляете нерелевантную функцию, значение r2 останется таким же или немного увеличится, что означает (1-r2) будет немного меньше, но если мы увидим знаменатель ( np-1), это значение будет уменьшаться по мере увеличения p. следовательно, номинатор {(1-r2) (n-1)} делит малое значение, сделает большее значение, например 10/2 = 5, уменьшит знаменатель 10 / 0,5 = 20. Следовательно, 1 - большее число результирующее скорректированное значение r2 будет уменьшено. Что должно произойти в случае добавления нерелевантной функции в набор данных.