Прогнозирование уровней загрязнения воздуха с использованием модели линейной регрессии
Постановка задачи: -
В Дели сейчас зима. Аки хочет выйти на улицу, но боится новостей о качестве воздуха в Дели, опубликованных вчера. Аки — эксперт по машинному обучению. Поэтому он решил помочь местным жителям, собрав пробы воздуха в разных местах Дели. Он взял эти образцы в свою лабораторию и извлек пять характеристик, которые можно использовать для прогнозирования индекса качества воздуха. Задача Аки заключается в том, чтобы использовать извлеченные функции и прогнозировать индекс качества воздуха, чтобы он мог сообщить своим местным жителям, безопасно ли переезжать или нет.
Данные обучения: -
Данные поезда состоят из пяти столбцов признаков и одного столбца назначения. Все столбцы функций являются числовыми, и целевое значение также является числовым.
Тестовые данные: -
Тестовые данные состоят из всех столбцов в виде данных поезда, за исключением целевого столбца, который Аки должен предсказать с помощью модели, обученной на доступных данных поезда.
Подход к решению: -
Мы будем использовать модель линейной регрессии для прогнозирования индекса качества воздуха с заданными 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%
Использование лучших функций здесь не улучшает оценку валидации. Но когда в наборе данных много функций, использование корреляционной матрицы для выбора лучших параметров дает значительное улучшение оценок проверки.