В этой статье представлены основы регрессионного анализа на примере набора данных о жилищном строительстве Калифорнии в качестве наглядного примера.

Задачи машинного обучения можно разделить на четыре категории:

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

Структура статьи следующая:

  1. Что такое регресс?
  2. Разница между регрессией и классификацией
  3. Типы регрессии: из-за большого количества регрессионных моделей мы представляем наиболее распространенные.
  4. Как выбрать правильную модель
  5. Линейная модель. Из всех доступных регрессионных моделей в этой статье основное внимание уделяется теории и предположениям линейной модели.
  6. Пример линейной модели: проанализируйте набор данных California Housing с помощью модели линейной регрессии.
  7. Другие примеры регрессионного анализа

1. Что такое регресс?

Регрессионный анализ определяется в Википедии как:

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

Терминология, связанная с регрессионным анализом, которую вы часто будете слышать:

  • Зависимая переменная или целевая переменная: прогнозируемая переменная.
  • Независимая переменная или переменная-предиктор: переменные для оценки зависимой переменной.
  • Выброс: наблюдение, которое значительно отличается от других наблюдений. Этого следует избегать, так как это может помешать результату.
  • Мультиколлинеарность: ситуация, в которой две или более независимых переменных сильно линейно связаны.
  • Гомоскедастичность или однородность дисперсии: ситуация, в которой термин ошибки одинаков для всех значений независимых переменных.

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

2. Разница между регрессией и классификацией

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

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

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

Следующая ссылка собирает некоторые функции потерь при обучении моделей классификации и регрессии.

Есть некоторое совпадение между алгоритмами классификации и регрессии; Например:

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

Некоторые алгоритмы могут использоваться как для классификации, так и для регрессии с небольшими изменениями, например, деревья решений и искусственные нейронные сети. Некоторые другие алгоритмы труднее реализовать для обоих типов задач, например, линейная регрессия для прогнозного моделирования регрессии и логистическая регрессия для прогнозного моделирования классификации [1].

3. Типы регрессии

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

  1. "Линейная регрессия"
  2. Полиномиальная регрессия
  3. Опорная векторная регрессия
  4. Регрессия дерева решений
  5. Случайная лесная регрессия
  6. Хребтовая регрессия
  7. Регрессия лассо
  8. "Логистическая регрессия"

Подробное объяснение каждой из них затронет несколько статей, поэтому, если читателя интересует дополнительная информация о регрессорах, я рекомендую прочитать [2, 3, 4].

4. Как выбрать правильную регрессионную модель?

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

Хотя я думаю, что этот опыт, вероятно, является правильным ответом на этот вопрос, некоторые советы [5, 6] таковы:

  1. Линейные модели являются наиболее распространенными и простыми в использовании. Если у вас есть непрерывная зависимая переменная, вам, вероятно, следует рассмотреть линейную регрессию.
  2. Если зависимая переменная является непрерывной, а ваша модель имеет коллинеарность или много независимых переменных, вы можете попробовать, например, модели гребня или лассо. Вы можете выбрать окончательную модель на основе R-квадрата или RMSE.
  3. Если вы работаете с категориальными данными, вы можете попробовать пуассоновскую, квазипуассоновскую и отрицательную биномиальную регрессию.
  4. Чтобы избежать переобучения, мы можем использовать метод перекрестной проверки для оценки моделей. Для исправления проблемы переобучения можно использовать методы регрессии гребня, лассо и эластичной сетки.
  5. Попробуйте поддержать векторную регрессию, если у вас нелинейная модель.

5. Линейная модель.

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

Построение модели линейной регрессии - это только половина работы. Для практического использования модель должна соответствовать допущениям линейной регрессии [7, 8]:

  1. Линейный по параметрам.
  2. Выборка репрезентативна для населения в целом.
  3. Независимые переменные измеряются без ошибок.
  4. Количество наблюдений должно быть больше количества независимых переменных.
  5. Нет мультиколлинеарности внутри независимых переменных
  6. Среднее значение остатков равно нулю.
  7. Нормальность остатков
  8. Независимые переменные и остатки некоррелированы
  9. Гомоскедастичность остатков (дисперсия остатков постоянна во всех наблюдениях)
  10. Нет автокорреляции остатков (особенно применимо для данных временных рядов). Математически дисперсионно-ковариационная матрица ошибок является диагональной.

Выполнить все эти предположения сложно, поэтому специалисты-практики разработали множество методов для поддержания некоторых или всех этих желаемых свойств в реальных условиях. Следующие статьи [9, 10] объясняют некоторые примеры.

6. Пример линейной модели.

Чтобы продемонстрировать некоторые из ранее представленных концепций, мы внедрили модель линейной регрессии в Набор данных по жилищному строительству Калифорнии. Вот код с кратким объяснением для каждого блока.

Сначала мы импортируем необходимые библиотеки.

Затем мы загружаем данные о жилье из библиотеки scikit-learn:

dict_keys(['data', 'target', 'feature_names', 'DESCR'])

Чтобы узнать больше об особенностях, мы печатаем california_housing_dataset.DESCR:

- MedInc        median income in block
- HouseAge      median house age in block
- AveRooms      average number of rooms
- AveBedrms     average number of bedrooms
- Population    block population
- AveOccup      average house occupancy
- Latitude      house block latitude
- Longitude     house block longitude

Это восемь независимых переменных, на основе которых мы можем предсказать стоимость дома. Стоимость дома указывается переменной AveHouseVal, которая определяет нашу зависимую переменную.

Теперь мы загружаем данные в фрейм данных pandas, используя pd.DataFrame.

Предварительная обработка данных

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

Исследовательский анализ данных

Сначала построим график распределения целевой переменной AveHouseVal в зависимости от Latitude и Longitude. Предполагается, что на изображении изображен штат Калифорния, США. Как было замечено, дома, расположенные близко к морю, дороже остальных.

Затем мы создаем корреляционную матрицу, которая измеряет линейные отношения между переменными.

Наблюдения:

  • Чтобы соответствовать модели линейной регрессии, мы выбираем те характеристики, которые имеют высокую корреляцию с нашей зависимой переменной AveHouseVal. Посмотрев на матрицу корреляции, мы можем увидеть, что MediaInc имеет сильную положительную корреляцию с AverageHouseVal (0,69). Две другие переменные с наибольшей корреляцией - это HouseAve и AveRooms.
  • Важным моментом при выборе функций для модели линейной регрессии является проверка мультиколлинеарности. Например, признаки Latitude и Longitude имеют корреляцию 0,92, поэтому мы не должны включать их оба одновременно в нашу регрессионную модель. Поскольку корреляция между переменными MediaInc, HouseAve и AveRooms невысока, мы рассматриваем эти три переменные для нашей регрессионной модели.

Обучение и тестирование модели

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

Распределение остатков:

Напечатаем распределение остатков, чтобы впоследствии проверить предположения линейной модели.

Проверка предположений:

  1. Линейный по параметрам (Хорошо)
  2. Выборка репрезентативна для всего населения (Предполагается)
  3. Независимые переменные измеряются без ошибок (Предполагается)
  4. Количество наблюдений должно быть больше количества независимых переменных (Хорошо)
  5. Нет мультиколлинеарности внутри независимых переменных (Хорошо для исследуемых переменных)
  6. Среднее значение остатков равно нулю (Хорошо)
  7. Нормальность остатков (Нет)
  8. Независимые переменные и остатки не коррелированы (Не отмечено)
  9. Гомоскедастичность остатков (дисперсия остатков постоянна в разных наблюдениях) (Нет)
  10. Нет автокорреляции остатков (особенно применимо для данных временных рядов). Математически матрица дисперсии – ковариации ошибок является диагональной (Не проверено)

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

В качестве подсказки здесь есть хорошая ссылка о том, как продолжить:

Одна из больших проблем, связанных с ненормальностью остатков и гетероскедастичности, заключается в том, что количество ошибок в вашей модели не соответствует всему диапазону наблюдаемых вами данных. Это означает, что их способность к прогнозированию не одинакова для всего диапазона зависимой переменной. Преобразование зависимой переменной может помочь исправить это, но затрудняет интерпретацию. Если преобразование квадратного корня не полностью нормализовало ваши данные, вы также можете попробовать обратное преобразование. Сила преобразований имеет тенденцию идти от 1. Логарифмическая, 2. Квадратный корень, 3. Обратный (1 / x).

7. Другие примеры регрессионного анализа.

Если читателям интересно, рекомендую попробовать следующие наборы данных:

По поводу набора данных о жилье в Бостоне я рекомендую прочитать эту другую статью.

Кроме того, в этой веб-ссылке есть набор некоторых тематически связанных наборов данных, которые подходят для различных типов регрессионного анализа.

Наконец, многие наборы данных можно найти в:

Спасибо за чтение !!

использованная литература

[1] Machine Learning Mastery, Разница между классификацией и регрессией в машинном обучении

[2] Аналитика Видхья, 7 техник регрессии, которые вы должны знать!

[3] ListenData, 15 типов регрессии в науке о данных

[4] Джаватпоинт, Регрессионный анализ в машинном обучении

[5] ListenData, Как выбрать правильную регрессионную модель?

[6] Статистика Джима, Выбор правильного типа регрессионного анализа

[7] R-статистика, Допущения линейной регрессии.

[8] Университет Колорадо, Допущения и диагностика линейной модели.

[9] Средний, Линейная регрессия и ее допущения

[10] Средний, Как решить вашу следующую проблему регрессии