Прогнозирование уровней загрязнения воздуха с использованием модели линейной регрессии

Доступ к полному закодированному решению здесь…

Постановка задачи: -

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

Данные обучения: -

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

Тестовые данные: -

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

Подход к решению: -

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

1.Импорт всех библиотек

Для этого проекта нам понадобятся pandas, numpy, matplotlib и seaborn. Нам также понадобится библиотека sklearn для импорта моделей.

2. Подготовка данных

Данные обучения и тестирования импортируются из CSV-файлов, находящихся в папках Train & Test соответственно.
pd.read_csv()метод используется для чтения данных из файлов csv, который выводит кадр данных и сохраняется в данных.
data.head() используется для отображения первых 5 строк фрейма данных.
Как видно из фрагмента, значения, присутствующие в столбцах функций, нормализовано. Следовательно, нормализация не требуется.

3. Матрица корреляции

Поиск корреляции параметров объекта с целевым параметром и построение графика с использованием тепловой картыseaborn.

data.corr() используется для построения корреляционной матрицы.
sns.heatmap() — это метод в библиотеке seaborn для отображения тепловой карты с матрицей корреляции.
Из тепловой карты мы видим, что параметры, которые лучше всего коррелируют с целью, — это функция 2, 4 и 1 в порядке убывания значения корреляции.

4. Визуализация данных

Визуализация доступных данных. Мы строим диаграммы рассеяния для каждой функции по сравнению с целью.
Другие графики можно увидеть в блокноте jupyter, доступном на Github. Ссылка доступна в начале этого блога.
Здесь мы видим, что значения корреляции действительно означают линейную связь между функцией и целью. На графике Функция_2 и цель показана некоторая линейная зависимость между ними, в то время как на графике Функция_5 и цель они наиболее разбросаны.

5. Разделение обучения и проверки

Извлечение всех пяти функций в одном фрейме данных и цель в другом фрейме данных.
Мы используем метод train_test_split()для разделения данных на 75% обучающих данных и 25% данных проверки. Параметр test_size указывает, каким должен быть размер проверочных данных. Параметр random_state в основном используется для воспроизведения проблемы при каждом ее запуске. Может быть установлено любое случайное значение от 0 до 2^32 -1.

6. Модель регрессии

Использование sklearn для импорта модели линейной регрессии. Затем метод fit() используется для обучения модели на X_train и y_train.
После обучения модели оценка обучения и проверки проверяется методом score(). Мы видим, что: -
Оценка обучения составляет 96,55%
Оценка проверки составляет 96,76%

Но мы обучили модель, используя все доступные возможности. Теперь мы попытаемся обучить модель только на лучших функциях, у которых значение корреляции больше 0,05.

7. Обучение работе с лучшими функциями

Применение той же концепции разделения с использованием метода train_test_split(), но на этот раз с использованием только трех лучших признаков в качестве параметров обучения.
Здесь мы видим, что: -< br /> Оценка обучения составляет 95,94%
Оценка проверки составляет 96,19%

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