Димас Бунтарто

Введение

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

Регрессия - это аналитический метод, обычно используемый для просмотра эффекта между двумя или многими переменными. Обычно регрессионный анализ используется для предсказаний или прогнозов. Между тем, взаимосвязь между этими переменными является функциональной, что реализовано в математической модели.

Переменная, значение которой прогнозируется, называется целевой. В регрессии цель имеет непрерывное значение.

В реальном мире иногда встречаются цели, которые нормально не распределяются. Иногда это влияет на производительность модели в отношении данных.

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

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

Задача

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

Методы

1. Получение набора данных с веб-сайта http://archive.ics.uci.edu/ml/datasets/Abalone.
2. Проверка набора данных.
3. Выполнение исследовательского анализа данных для набора данных.
4. Разработка функций для набора данных.
5. Сравнение регрессионных моделей с целевым преобразованием и без него.

Мы будем использовать следующие регрессионные модели:
1. Линейная регрессия
2. K ближайших соседей
3. Дерево решений
4. Машина опорных векторов

Что касается целевого преобразования, мы будем использовать np.sqrt

О наборе данных

Набор данных берется из http://archive.ics.uci.edu/ml/datasets/Abalone. Приведены имя атрибута, тип атрибута, единица измерения и краткое описание.

Импорт библиотек

Получение набора данных

Сначала мы получаем набор данных. Получаем набор данных по морскому ушку через сайт http://archive.ics.uci.edu/ml/datasets/Abalone

Из таблицы выше мы видим, что данные содержат 4 177 образцов с 9 функциями.

Проверка набора данных

Сначала мы проверяем состояние данных, которое включает типы функций и описания данных.

Все функции являются числами с плавающей точкой и целыми числами, за исключением функции «Секс». Из приведенной выше информации мы можем узнать, что в данных нет пропущенных значений.

Мы смотрим на описание данных, чтобы убедиться, что данные информативны.

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

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

Данные в столбце Height могут содержать ошибки измерения. Сначала мы проверяем положение и количество значений 0.

В столбце Height есть 2 образца, которые, по оценкам, имеют ошибки измерения. Два пустых значения относятся к полу младенца (I).

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

Мы видим, что в наборе данных нет пустых значений.

Разделение набора данных

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

Установлен возраст морского ушка.

Затем мы разделим данные на группы данных поездов и тестовых данных. Мы определим размер тестовых данных до 30% набора данных.

Чтобы упростить следующий шаг, мы разделим существующие переменные.

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

Половая особенность

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

Если посмотреть, то распределение по полу довольно сбалансировано, около 30 процентов для каждого пола.

Мы по-прежнему будем использовать эту категориальную особенность в дальнейшем моделировании.

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

Числовые особенности

Теперь давайте посмотрим на распределение числовых характеристик.

Из приведенного выше графика мы видим, что числовые характеристики не распределены нормально, за исключением функции Height, которая выглядит немного нормально распределенной. Характеристики Length и Diameter имеют значения, которые распределены справа от кривой, что означает, что их асимметрия отрицательна. Остальные функции имеют распределение значений, которое находится слева от кривой, что означает положительный перекос.

Посмотрим, есть ли выбросы в этих числовых характеристиках.

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

Мы не будем удалять этот выброс, потому что опасаемся, что потеряем информацию в наборе данных.

Что касается числовых признаков, в следующем процессе мы будем масштабировать непрерывные объекты с помощью MinMaxScaler

Целевое распространение

Далее мы посмотрим на целевое распределение (столбец Age)

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

Чтобы убедиться в этом, мы проверяем, нет ли в цели выброса.

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

Мы выполним преобразования на мишени в надежде улучшить характеристики модели.

Корреляции Пирсона

Мы увидим, как корреляция между функциями, особенно числовыми функциями, с целью.

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

Кроме того, мы можем увидеть это на следующем графике рассеяния

Мы можем видеть, что существует линейная связь между числовыми характеристиками и целью, даже если вычисленная корреляция Пирсона является умеренной.

Предварительная обработка и разработка функций

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

Мы видим, что столбец в наборе данных увеличился до 11. Давайте посмотрим на набор поездов для получения результата.

Затем мы разделяем функции с целью.

Моделирование

Сначала мы масштабируем функции с помощью MinMaxScaler. Мы также будем использовать pipeline, чтобы упростить процесс. Мы также будем использовать GridSearchCV, чтобы оценить лучшие параметры, где cv равно 5.

Для процесса использования преобразованных целей мы будем использовать TransformedTargetRegressor.

Мы преобразуем цель с помощью np.sqrt.

Линейная регрессия

Начнем с модели линейной регрессии. Для линейной регрессии мы оцениваем параметр fit_intercept.

Линейная регрессия без преобразования цели

Линейная регрессия с целевым преобразованием

Регрессия ближайших соседей

Параметр, который мы оценим, равен n_neighbors.

Регрессия ближайших соседей без преобразования цели

Регрессия ближайших соседей с целевым преобразованием

Регрессия дерева решений

Параметры, которые мы установим для регрессии дерева решений: max_depth и max_features.

Дерево решений без преобразования цели

Дерево решений с целевой трансформацией

Регрессия опорных векторов

Мы будем устанавливать параметры C и gamma.

Поддержка векторной регрессии без преобразования цели

Поддержка векторной регрессии с целевым преобразованием

Расчет всех вышеперечисленных моделей мы резюмируем в следующей таблице.

Обсуждение

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

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

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

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

Заключение

Из всех приведенных выше расчетов можно сделать вывод:

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

Дальнейший анализ

В будущем необходимо будет проводить анализ с использованием других регрессионных моделей, а также других методов целевой трансформации, таких как boxcox, np.log1p, np.log и так далее.

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

1. http://archive.ics.uci.edu/ml/datasets/Abalone
2. https://thomassoseco.blogspot.com/2019/02/skewness-dan-kurtosis.html
3. https://www.kaggle.com/ashokkumarpalivela/abalone-age-prediction-end-to-end-project
4. https://scikit-learn.org/ стабильный / auto_examples / compose / plot_transformed_target.html
5. https://www.merdeka.com/jateng/regresi-adalah-metode-untuk-menentukan-sebab-akibat-kenali-jenis-dan-contohnya -kln.html? page = 2