Введение

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

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

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

Цель

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

Методы

1. Получение набора данных.
2. Проверка набора данных.
3. Выполнение визуализации набора данных.
4. Выполнение разработки признаков набора данных.
5. Сравнение регрессионных моделей с целевым преобразованием и без него.

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

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

Набор данных мы получаем с сайта https://data.jakarta.go.id/dataset/indeks-standar-pencemaran-udara-ispu-tahun-2020 и https://data.jakarta.go.id/ набор данных/индексы-стандарт-пенсемаран-удара-испу-тахун-2021. Я объединил весь набор данных, и вы можете найти его на сайте https://github.com/dhiboen/Project/blob/main/ISPU.csv.

Дано имя атрибута, тип атрибута, единица измерения и краткое описание.

Этот набор данных содержит стандартный индекс загрязнения воздуха, измеренный на 5 станциях мониторинга качества воздуха в провинции Джакарта в 2021 году. Объяснение переменных из приведенного выше набора данных следующее:

1. tanggal : Дата измерения качества воздуха
2. stasiun : Место измерения на станции
3. pm10 : Твердые частицы (один из измеряемых параметров)
4. pm25 : Твердые частицы (один из измеряемые параметры)
5. so2 : Сульфид (в форме SO(один из измеряемых параметров)
6. co : Угарный газ (один из измеряемых параметров)
7. o3 : Озон (один из измеряемых параметров)
8. no2 : Оксид азота (один из измеряемых параметров)
9. max : Максимальное значение измерения всех параметров, измеренных одновременно
10. критический : Параметры с наивысшими результатами измерения
11. категория : Результаты расчета стандартного индекса категории загрязнения воздуха

В этом наборе данных целью является переменная `categori`

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

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

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

Сначала мы получаем набор данных. Набор данных получаем через сайт https://github.com/dhiboen/Project/blob/main/ISPU.csv.

Набор данных содержит 4875 образцов с 11 переменными.

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

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

В столбце pm25 из 4 875 проб была заполнена только 1 081 проба. Так что в столбце pm25 заполнено всего около 22% данных. Поэтому мы удалим столбец pm25.

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

Далее, давайте сначала посмотрим на состояние цели.

Есть 40 образцов с целевой меткой «TIDAK ADA DATA», что означает, что в образце нет данных. Поэтому мы удалим образцы с целевой меткой «TIDAK ADA DATA».

Сейчас данные составляют 4835 проб.

Давайте еще раз посмотрим на состояние данных.

Мы видим, что вся выборка заполнена. Просто если мы посмотрим на исходные данные, содержащиеся на веб-сайте, мы увидим пустые места, отмеченные знаком «—-».

Сначала мы разберемся с этими отсутствующими значениями.

Обработка пропущенного значения

Сначала мы меняем «—-» на NaN, что означает «не число».

Смотрим еще раз на данные по измеряемым параметрам. Эти типы данных являются объектами, поэтому мы сначала преобразуем их в числа с плавающей запятой или целые числа.

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

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

Теперь все образцы заполнены.

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

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

Сначала мы смотрим на состояние цели

Из целевых условий мы знаем, что имеем дело с несбалансированным набором данных. Поэтому мы выполним стратифицированное разделение данных.

Но сначала удалим столбцы tanggal и stasiun, потому что нам нужны только измеренные параметры.

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

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

Далее мы будем использовать анализ основных компонентов (PCA) для визуализации данных.

Сначала мы разделяем данные на X_train, X_test, y_train и y_test.

Далее мы визуализируем данные с помощью pca.

Из визуализации мы можем предсказать, что линейный классификатор не будет оптимально работать с этими данными.

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

Далее мы займемся моделированием данных. Сначала мы сделаем кодирование цели.

Цель кодирования

На мишени есть 4 типа меток, а именно «БАЙК», «СЕДАНГ», «ТИДАК СЕХАТ» и «САНГАТ ТИДАК СЕХАТ». Порядок этикеток следующий: «BAIK» › «SEDANG» › «TIDAK SEHAT» › «SANGAT TIDAK SEHAT», поэтому код этикетки становится следующим:

  • БАЙК = 3
  • СЕДАНГ = 2
  • ТИДАК СЕХАТ = 1
  • САНГАТ ТИДАК СЕХАТ = 0

Мы снова разделяем данные на X_train, X_test, y_train и y_test.

Давайте еще раз посмотрим на условия меток для y_train и y_test.

Первое моделирование

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

Второе моделирование

Для второй модели мы будем использовать дерево решений и случайный лес. Обе модели не требуют масштабирования функций.

Результат и обсуждение

Из моделей, которые мы используем, мы получаем следующую матрицу путаницы

Класс 0 (САНГАТ ТИДАК СЕХАТ)

На основе матрицы путаницы условия класса 0 можно обобщить в следующей таблице:

Точность, отзыв, специфичность и показатель F1 можно свести в следующую таблицу:

Вся точность в классе 0 равна 1,00 во всех моделях. Между тем, значение отзыва для всех моделей составляет 1,00, за исключением логистической регрессии, которая составляет 0,50. Это связано с тем, что четыре модели точно идентифицируют класс 0, в то время как логистическая регрессия имеет ложноотрицательное значение 1. Ложноположительное значение для всех моделей равно нулю, поэтому истинно отрицательное значение для всех моделей равно 1 .

Оценка F1 по четырем моделям для класса 0 равна 1, за исключением логистической регрессии 0,67.

Класс 1 (ТИДАК СЕХАТ)

На основе матрицы путаницы условия класса 1 можно резюмировать в следующей таблице:

Точность, отзыв, специфичность и показатель F1 можно свести в следующую таблицу:

Наивысшие значения точности и доля истинно отрицательных результатов были получены с помощью линейной модели SVC. Истинная положительная частота и наивысший балл F1 были получены с помощью модели случайного леса.

Класс 2 (СЕДАНГ)

На основе матрицы путаницы условия класса 2 можно резюмировать в следующей таблице:

Точность, отзыв, специфичность и показатель F1 можно свести в следующую таблицу:

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

3 класс (БАИК)

На основе матрицы путаницы условия класса 3 можно обобщить в следующей таблице:

Точность, отзыв, специфичность и показатель F1 можно свести в следующую таблицу:

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

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

Исходя из этих данных, точность модели Random Forest также является самой высокой среди других моделей. Значение точности модели Random Forest составляет 0,96. Точность моделей, используемых в этой статье, представлена ​​в следующей таблице:

Вывод:

На основании вышеизложенного можно сделать следующие выводы:

  1. Наилучшей моделью в этой статье, которую можно использовать для классификации стандартного индекса загрязнения воздуха, является модель случайного леса.
  2. Значение точности модели Random Forest составляет 0,96 со следующими параметрами:
  • критерий = энтропия
  • максимальная_глубина=9
  • max_features=5
  • n_оценщиков = 200
  • случайное_состояние = 42

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

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