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

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

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

Более четкое определение (по крайней мере, для меня): Коэффициент детерминации R2 используется для анализа того, как различия в одной переменной могут быть объяснены разницей во второй переменной. Более конкретно, R-квадрат дает вам процентное изменение y, объясняемое переменными x . Чаще всего (если не слишком много переменных) R-квадрат используется для оценки производительности модели.

Немного знаний предметной области; Производится и используется больше тонн бетона, чем любого другого технического материала. Это связано с его низкой стоимостью и широкодоступным сырьем (вода, шлак, цемент…). Кроме того, цемент является связующим материалом в бетоне. Прочность бетона (целевое значение) зависит от многих факторов, таких как качество сырья, соотношение вода / цемент, соотношение крупного и мелкого заполнителя, возраст бетона и т. Д.

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

1. Линейная регрессия,

2. Регрессия лассо,

3. Хребетная регрессия,

4. Регрессия случайного леса,

5. Регресс XGBOOST.

Я попытался сконцентрироваться на следующих вопросах:

  • Какой алгоритм регрессии дал наилучшие результаты?
  • Эффективна ли перекрестная проверка для повышения производительности регрессии?
  • Результаты определения важных характеристик с использованием только тех параметров, которые влияют на производительность алгоритма.

Я использовал набор данных Kaggle. Как поясняется на веб-сайте, первые семь параметров - это добавка к бетону (единицы измерения в кг в м3 смеси и Возраст в днях (от 1 до 365)). Есть 8 количественных входных переменных и 1 количественная выходная переменная (прочность на сжатие (в МПа) бетона); 1030 экземпляров без недостающих данных.

Очистка данных

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

Согласно набору данных, было 1030 различных подготовленных бетонов и никаких пропущенных значений.

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

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

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

Я использовал приведенную ниже функцию Python для предсказания ошибок.

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

Я начал с использования линейной регрессии, чтобы смоделировать взаимосвязь между функциями и целевой переменной. Результаты MAE и RMSE были выражены в МПа (единица измерения прочности на сжатие), и они говорят нам, что разница между наблюдаемыми и прогнозируемыми результатами составляет ± 7,74 (MAE) и ± 9,79 (RMSE) МПа. Показатель R2, равный 0,6275, не является очень высоким значением и показывает, что даже зашумленные данные с высокой изменчивостью могут иметь значительную тенденцию. Тенденция показывает, что переменная-предиктор по-прежнему предоставляет информацию об ответе, даже если точки данных располагаются дальше от линии регрессии.

Ридж-регрессия

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

Результаты регрессионного анализа хребта представлены в виде:

Регрессия Риджа использует α (альфа) в качестве параметра, который уравновешивает акцент, уделяемый минимизации RSS и минимизации суммы квадратов коэффициентов. α может принимать различные значения. Для Ridge Cross Va; idation я определил массив из 100 возможных значений альфа от 0,1 до 20; оптимальное значение оказалось 0,1. Когда я снова подобрал модель, используя 0,1 в качестве альфа, было огромное увеличение r2_score - с 0,45 до 0,60.

Регрессия лассо

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

Результаты анализа перекрестной проверки лассо для оптимального значения альфа 0,1 и 0,0001 представлены как:

Скачок в r2_score очень велик от 0,44 до 0,62, когда значение альфа становится почти нулевым. Это показывает нам, что невозможно улучшить r2_score с помощью модели регрессии Лассо.

Анализ случайного леса

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

Результаты анализа случайного леса показывают огромное увеличение показателя r2_score:

Средний балл перекрестной проверки составляет почти 0,90:

Следующим шагом была оценка важности характеристик при анализе:

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

В результате я использовал только 4 функции (вместо 8) - только те, которые считались наиболее важными, а показатель r2_score упал с 0,8995 до 0,8712. В нашем случае было всего 1030 данных, но при работе с огромными наборами данных работа с меньшим количеством функций сэкономит много времени с небольшой потерей точности.

Анализ XGBoost

XGBoost (Extreme Gradient Boosting) - это оптимизированная библиотека распределенного повышения градиента, которая используется для контролируемых задач машинного обучения. XGBoost принадлежит к семейству алгоритмов повышения, которые превращают слабых учеников в сильных.

Я использовал XGBoost и получил наилучшие результаты, как показано:

Еще раз, я использовал функцию важных функций и выбрал 4 самых важных параметра. Падение r2_score было бесконечно малым - с 0,9300 до 0,9234:

Заключение

В этой статье я использовал 5 алгоритмов регрессии и некоторые ключевые факты, связанные с каждым методом. Анализ свидетельствует о том, что:

  • Наилучшие результаты показал алгоритм XGBoost, за ним следует алгоритм случайного леса.
  • Результаты алгоритмов линейной регрессии, лассо и хребта были довольно близки.
  • После перекрестной проверки точность регрессий Лассо и Риджа резко возросла.
  • Использование только 4 наиболее важных функций (из 8) привело к небольшому снижению точности результатов с большим потенциалом экономии времени для больших наборов данных.

Вы можете получить доступ к этой и подобным статьям здесь.