ПРОБЛЕМА

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

Подход машинного обучения к решению проблемы

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

ДАННЫЕ

Данные предоставлены Министерством водного хозяйства Танзании и TAARIFA и доступны для скачивания на сайте DRIVENDATA. Задача прогнозирования помпы была организована в виде конкурса компанией DRIVENDATA. Для каждого водяного насоса доступны следующие данные:

· ‘id’:идентификационный номер точки водоснабжения.

· ‘amount_tsh’:количество общего статического напора точки подачи воды, TSH – это мера воды, доступной для водяного насоса.

· 'date_recorded':дата записи данных водяного насоса.

· «спонсор»:кто предоставил средства для водяного насоса.

· 'gps_height': высота, на которой находится водяной насос.

· «Установщик»: название организации, установившей насос.

· 'долгота' и 'широта':координаты GPS, которые определяют местоположение точки с водой.

· ‘wpt_name’: название точки водоснабжения.

· 'num_private':информация об этой функции отсутствует.

· бассейн: название географического водного бассейна.

· 'подселок', 'район', 'лга', 'район':название района, описывающее географическое расположение водяного насоса.

· "region_code" и "district_code": числовой код, описывающий географическое положение точки водоснабжения.

· "население": население вокруг точки водопоя.

· 'public_meeting':логические данные о том, проводилось ли публичное совещание по водяному насосу.

· 'recorded_by': название агентства, которое записало данные о водяном насосе.

· «схема_управление» и «управление»: название организации/органа, управляющего точкой водоснабжения.

· ‘scheme_name’: название схемы, по которой был установлен пункт водоснабжения.

· 'разрешение': логические данные, описывающие, есть ли у точки водоснабжения разрешение или нет.

· 'construction_year': год, когда была построена точка водоснабжения.

· ‘extraction_type’, ‘extraction_type_group’, ‘extraction_type_class’:описание метода добычи, с помощью которого водозабор извлекает воду

· 'management_group':класс управления, к которому относятся полномочия по управлению точкой водоснабжения.

· «платеж», «тип_платежа»:описывает, как осуществляется оплата за точку водоснабжения.

· ‘water_quality’, ‘quality_group’: описывает качество воды, доступной в точке водоснабжения.

· 'количество', 'количество_группа':описывает количество воды, доступное в точке водоснабжения.

· ‘source’, ‘source_type’:Источник воды для точки водопоя.

· 'source_class':класс источника, т. е. является ли источник подземными или поверхностными водами.

· ‘waterpoint_type’, ‘waterpoint_type_group’: описание типа водозабора

Набор обучающих данных содержит 59400 точек данных/записей.

СУЩЕСТВУЮЩИЕ ПОДХОДЫ

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

1. Кремонич, Златан. «Прогнозирование состояния водяных насосов в Танзании». Златан Кремонич — Мой

Mathematical Mind, 23 января 2017 г., https://zlatankr.github.io/posts/2017/01/23/pump-it-up

Авторы этой статьи сочли следующие функции бесполезными или не вносящими вклад: ["id", "amount_tsh", "num_private", "scheme_name"] и поэтому эти функции были исключены.

Для «Широта», «Долгота», «gps_height» и «население» были введены

осуществляется путем получения среднего значения этих характеристик в пределах «бассейна» или любого другого

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

Функция «Население» преобразуется путем логарифмирования значений.

Функция «date_recorded» преобразуется в порядковую форму, чтобы модели было легче ее интерпретировать.

Кроме того, из функции date_recorded создаются две новые функции, а именно «month_recorded» и «year_recorded», а затем они преобразуются в фиктивные переменные.

Признак «строительный_год» имеет 35% нулевых значений, которые рассчитываются с использованием среднего значения за все годы.

Логические функции, а именно «разрешение» и «public_meeting», вменяются путем приравнивания нулей к False.

Пороговое значение 20 было выбрано для значений категориальных признаков, имеющих низкую частоту, и все значения, имеющие частоту ниже 20, были помещены в одну категорию под названием «другие». Это было сделано для уменьшения переобучения и вычислительных затрат. Хотя авторы предлагают увеличить отсечку до 100.

Модель, выбранная авторами для классификации, представляет собой «Классификатор случайного леса», для которого они выполнили настройку гиперпараметров с помощью GridSearchCV и, таким образом, получили лучшие «min_samples_split» и «n_estimators» как 6 и 1000 соответственно. Используя полученные выше оптимальные гиперпараметры, они получили нестандартную оценку 0,8134, а когда они выполнили k-кратную перекрестную проверку с k = 3, они получили оценку 0,8071.

1. Агравал, Каришма и др. Накачайте интеллектуальный анализ данных для водного кризиса в Танзании. andrew.cmu.edu , 2015 г., стр. 1–12, Накачайте интеллектуальный анализ данных для водного кризиса в Танзании.

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

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

Авторы объединили функциональный и нефункциональный класс «status_group» как одну метку и сосредоточились на классификации классов функционального ремонта от остальных. (Это также противоречит предыдущему бумажному подходу, в котором проводилась троичная классификация)

Окончательная классификационная модель состояла из необработанных данных, дополненных 10 основными компонентами, полученными от спонсора, и случайным лесом, состоящим из 50 деревьев глубиной 10 каждое. В результате окончательная модель работала с истинным положительным результатом 23,45.

1. Алекс Фам, Бен Бакус, Лорен Чжу. Накачайте это: добыча грунтовых вод. https://cs230.stanford.edu/projects_spring_2018/reports/8291176.pdf

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

Выполненная предварительная обработка была более или менее похожа на ранее описанные подходы, такие как однократное горячее кодирование категориальных данных и выбор порога для группировки менее частых категорий в объекте в единую категорию «другие», для медианы года постройки годы были выбраны для импутации, для населения была рассчитана медиана значений в пределах региона (район_код) для импутации, для дат день был удален, и использовались только месяц и год.

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

(4000,192,96,48,24,12,6,3) соответственно, все с блоком активации ReLu. Используемым оптимизатором был Адам. Используемая функция потерь представляла собой кросс-энтропию. Модель была обучена до 560 эпох с затухающей скоростью обучения, инициализированной до 10 ^ -5, со скоростью затухания 0,99 с размером шага 2000. Достигнутая точность обучения составила 0,785, а достигнутая точность теста - 0,786.

1. Аддисон, Джозеф. Накачай: сбор данных о грунтовых водах. Еще один парень из Compsci, 12 июля 2017 г., https://jitpaul.blog/2017/07/12/pump-it-up/.

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

Авторы создали новый признак «возраст скважины», используя разницу date_recorded year и building_year.

Строки, которые содержали 0 или отсутствовали данные, были опущены авторами.

Авторы пришли к выводу, что классификатор Random Forest лучше всего подходит для задачи классификации, и, используя его на тестовых данных, они достигли точности 80,59%.

УЛУЧШЕНИЕ СУЩЕСТВУЮЩИХ ПОДХОДОВ

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

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

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

Наивысшая достигнутая оценка точности составляет 0,8120, а наивысшая достигнутая взвешенная оценка F1 составляет 0,8040 в наборе перекрестной проверки. Оценка точности, полученная на тестовом наборе, предоставленном веб-сайтом DRIVENDATA, составляет 0,8160.

ИССЛЕДОВАТЕЛЬСКИЙ АНАЛИЗ ДАННЫХ

График подсчета общего статического напора (amount_tsh) для каждого класса:

Наблюдение: у нас есть большинство точек данных с amount_tsh = 0, а точки с более высоким значением amount_tsh имеют более высокую долю работающих насосов.

График рассеяния между общим статическим напором (amount_tsh) и метками классов:

Наблюдение: Из диаграммы разброса значений total_static_head и меток класса видно, что все насосы с tsh выше 125 000 исправны (нет неработающих или нуждающихся в ремонте насосов со статическим напором более 125000. Таким образом, мы можем сказать, что чем выше ТТГ, тем выше вероятность того, что помпа будет работать, поэтому ТТГ может быть важным признаком.

Подсчитайте график ‘date_recorded’ для каждого класса:

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

Подсчитайте график ‘date_recorded’ для каждого класса:

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

Анализ характеристик GPS_height, широты и долготы:

Наблюдение: для высоты GPS выше 2400 неработающих и нуждающихся в ремонте насосов очень мало, тогда как исправных насосов много.

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

ФУНКЦИЯ KDE PLOT FOR POPULATION:

Наблюдение. Наибольшее количество точек водоснабжения — это те, для которых отсутствуют данные о населении (0 населения в наборе данных), а также по мере увеличения населения преобладают работающие насосы.

СЧИТАТЬ УЧАСТОК ДЛЯ РАЗРЕШЕНИЯ И ФУНКЦИИ PUBLIC_MEETING (BOOLEAN TYPE):

Наблюдение:Из приведенного выше графика видно, что для точек водоснабжения, для которых значение public_meeting равно FALSE, разница в доле работающих насосов и неработающих насосов не слишком велика, тогда как для точек водоснабжения, для которых значение public_meeting равно TRUE доля функциональных насосов выше, чем неработающих насосов. Таким образом, эта функция может играть важную роль в прогнозировании функционального состояния насосов.

АНАЛИЗ ФУНКЦИЙ SCHEME_NAME:

СЧЕТЧИК ДЛЯ ФУНКЦИИ SCHEME_MANAGEMENT:

Наблюдение:управление схемой может быть важной характеристикой, так как некоторые схемы_управления имеют равновероятный статус насосов, тогда как для некоторых вероятность функциональных насосов выше, чем у двух других групп статусов. Кроме того, схема_управления, такая как SWC, имеет более высокую долю неработающих насосов.

СЧИТАТЬ УЧАСТОК НА ГОД ПОСТРОЙКИ:

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

СЧИТЫВАЙТЕ УЧАСТОК ДЛЯ ТИПА ВОДЫ, КАЧЕСТВА ВОДЫ И КОЛИЧЕСТВА ВОДЫ:

Наблюдение:мы видим, что для водонапорных точек типа «общий колонок», «ручной насос» и «улучшенный родник» функциональные насосы выше, чем нефункциональные, тогда как для «общих колонок несколько» и « другой» тип водоразборной точки нефункциональные точки выше, чем функциональные. Из-за этих пропорций тип_водной_точки может быть важной характеристикой для определения состояния скважины.

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

Наблюдение: Как мы видим, при достаточном количестве воды доля работающих насосов намного больше, чем неработающих насосов, по сравнению с недостаточным количеством, когда скважина сухая, почти все они не работают. .

СЧЕТ УЧАСТКА ТИПА ОПЛАТЫ, ТИПА ИЗВЛЕЧЕНИЯ И ИСТОЧНИКА:

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

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

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

СООТНОШЕНИЕ МЕЖДУ ЧИСЛОВЫМИ ПРИЗНАКАМИ:

Наблюдение:region_code и District_code сильно коррелируют с корр. коэффициент 0,68, как видно из приведенной выше карты корреляции, из этих двух код района слабо коррелирует с меткой класса (коэффициент корр. 0,066), поэтому мы можем исключить район_код и сохранить регион_код. gps_height не сильно коррелирует с двумя другими функциями, поэтому мы можем сохранить его.

ЭТИКЕТКИ КЛАССА (функция группы статусов):

Набор данных несбалансирован, так как у нас 32 259 исправных насосов, тогда как неработающих 22 824, т.е. на 9435 меньше, а исправных, но нуждающихся в ремонте, очень меньше, всего 4317.

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

МНОГОМЕРНЫЙ АНАЛИЗ ЧИСЛОВЫХ ПРИЗНАКОВ:

Наблюдение. Из приведенных выше парных графиков мы не можем определить какую-либо границу решения для классификации между метками классов. Мы можем наблюдать, что в регионе с высокими значениями gps_height население меньше, а также что выше 1,25 000 tsh все насосы работают, что уже наблюдалось при одномерном анализе признака «количество_tsh».

ОПРЕДЕЛЕНИЕ ПОХОЖИХ ФУНКЦИЙ:

Наблюдение: из 21 категории в регионе 18 присутствуют в пригородах, поэтому функцию региона можно опустить.

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

Из 125 категорий функции lga 59 присутствуют в поддеревне, поэтому lga можно исключить, если мы хотим.

Функция бассейна не имеет много общего с другими функциями, поэтому ее следует сохранить.

Другие похожие функции:

· 5 из 7 категорий в функции «source_type» также присутствуют в функции «source», поэтому мы можем исключить любую из них.

· 4 из 6 категорий в свойстве «quality_group» уже присутствуют в свойстве «water_quality», поэтому мы можем отказаться от признака «quality_group».

· Функции «количество» и «количество_группа» имеют одинаковые категории, поэтому мы можем исключить функцию «количество_группа».

· 5 из 7 категорий из функции «extraction_type_class» присутствуют в «extraction_group_type», 7 из 13 категорий из функции «extraction_type_group» присутствуют в функции «extraction_type». Таким образом, мы можем сохранить функцию «extraction_type» и отказаться от двух других.

· Все категории «waterpoint_type_group» присутствуют в функции «waterpoint_type», поэтому мы можем отказаться от функции «waterpoint_type_group».

· Мы можем сохранить функцию «management» и удалить две другие, поскольку «scheme_management» имеет похожие категории, которые не могут быть обнаружены в наборе пересечений из-за разницы в стиле текста, также 3 из 5 категорий в функции «management_group» присутствуют в «management_group». ' особенность.

· «Payment» и «payment_type» имеют одинаковые категории, поэтому мы можем удалить одну из них.

ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ДАННЫХ

1. УДАЛЕНИЕ БЕЗ ДОПОЛНИТЕЛЬНЫХ ФУНКЦИЙ:

Следующие аналогичные функции, указанные в EDA, были удалены:

[«исходный_тип», «группа_качества», «группа_количества», «группа_типа_извлечения», «класс_типа_извлечения»,

«waterpoint_type_group», «pay_type», «management_group», «scheme_management», «регион»,

«код_района»]

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

Все экземпляры функции «recorded_by» являются одним и тем же «GeoData Consultants Ltd», поэтому эта функция удалена.

98,72% экземпляров в функции «num_private» равны 0, поэтому мы отказываемся от этой функции.

2. ОБЪЕДИНЕНИЕ ФУНКЦИЙ:

Функции «широта» и «долгота» объединяются в одну функцию «местоположение» путем вычисления евклидова расстояния от начала координат. Расстояние гаверсуса также можно попробовать вместо евклидова расстояния.

Функции «construction_year» и «date_recorded» были объединены для создания новой функции возраста насоса путем вычисления разницы между этими двумя функциями, для этого функция «date_recorded» была преобразована в год, а затем из нее вычтена конструкция_year.

3. КОДИРОВАНИЕ КАТЕГОРИЧЕСКИХ ФУНКЦИЙ

Ниже приведены категориальные функции в наборе данных:

{ 'спонсор' , 'установщик' , 'бассейн' , 'подпоселок' ,'лга', 'палата', 'общественное_собрание' ,'название_схемы' ,'разрешение' ,'тип_извлечения', 'управление' ,'оплата' ,' качество_воды», «количество», «источник», «класс_источника», «тип_воды» }

Из перечисленных выше категориальных функций функции «permit» и «public_meeting» имеют логический тип, поэтому мы конвертируем их в 0 и 1, а также присваиваем нулевые значения 0.

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

Для остальных категориальных признаков сначала категории, имеющие количество/частоту менее 20, группируются в единую категорию «другое». После этого для каждого объекта выполняется одно горячее кодирование.

ЭКСПЕРИМЕНТЫ С РАЗЛИЧНЫМИ МОДЕЛЯМИ МО

НИЖЕ ПРЕДСТАВЛЕНЫ РАЗЛИЧНЫЕ МОДЕЛИ, КОТОРЫЕ БЫЛИ ОБУЧЕНЫ НА 80% ДАННЫХ ДЛЯ ОБУЧЕНИЯ.

  1. ПОДДЕРЖКА ВЕКТОРНОГО КЛАССИФИКАТОРА МАШИН С ЯДРОМ RBF

SVC с ядром RBF работает посредственно с показателем f1 0,755 и показателем точности 0,775. Как мы видим из матрицы путаницы, класс меньшинства «функционально, но нуждается в ремонте» является классом, который неправильно классифицируется больше всего.

2. МАШИННЫЙ КЛАССИФИКАТОР ОПОРНЫХ ВЕКТОРОВ С ПОЛИНОМИАЛЬНЫМ ЯДРОМ

Как мы видим, SVC с полиномиальным ядром степени 4 работает почти так же, как SVC с ядром RBF, с незначительным увеличением показателя производительности.

Как видно из матрицы путаницы, только 13,5% класса меньшинства правильно классифицируются обеими моделями SVM, поэтому мы не можем использовать эти модели для точного прогнозирования.

3. МОДЕЛЬ ДЕРЕВА РЕШЕНИЙ

Модель дерева решений Scikit-learn использовалась для прогнозирования набора перекрестной проверки с настройкой гиперпараметров. Гиперпараметры, такие как max-depth, min_samples_split, min_samples_leaf, критерий разделения, были настроены с помощью RandomizedSearchCV в 5 раз, чтобы получить лучшую модель, прежде чем подгонять ее к обучающим данным.

Показатели производительности модели дерева решений почти аналогичны классификатору SVM, но неправильная классификация миноритарного класса меньше, 25% миноритарного класса классифицируются правильно по сравнению с 13,5% в случае SVM.

4. МОДЕЛЬ МАШИНЫ ДЛЯ ПОВЫШЕНИЯ СВЕТОВОГО ГРАДИЕНТА

Как мы можем заметить, показатель точности и показатель f1 модели LGBM намного лучше, чем SVM и деревья решений: 0,8009 и 0,7909 соответственно. Кроме того, правильно классифицированные экземпляры меньшинства составляют 27,69%, что больше, чем у модели дерева решений.

5. МОДЕЛЬ XGBOOST

Из вышеизложенного мы можем заметить, что оценка f1 и оценка точности для модели XGBOOST имеют более низкую оценку точности, чем модель LGBM.

Из матрицы путаницы мы можем сделать вывод, что, хотя показатель точности и показатель f1 меньше, модель работает лучше в классе меньшинств с правильно классифицированным экземпляром 31,6% по сравнению с 27,69% модели LGBM.

6. СЛУЧАЙНАЯ МОДЕЛЬ ЛЕСА

По сравнению с существующим документом с решением, в котором максимальное количество используемых деревьев составляло 1000 для случайного леса, здесь мы можем наблюдать, что настройка гиперпараметров с использованием RandomizedSearchCV дает наилучшее количество деревьев = 1500.

Производительность модели случайного леса:

Поскольку мы можем наблюдать, что модель случайного леса плохо работает с классом меньшинств по сравнению с моделью XGBoost, правильно классифицированные баллы составляют 28,8% по сравнению с 31,6% модели XGBoost, но общий показатель точности и показатель f1 выше 0,8120 и 0,8027 соответственно.

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

ЭФФЕКТИВНОСТЬ ВСЕХ ВЫШЕУКАЗАННЫХ МОДЕЛЕЙ ML:

Стековый классификатор-1:использование SVM, модели дерева решений и многоуровневых классификаторов RFC и XGB в качестве мета_классификатора

Стековый классификатор-2:использование SVM, модели дерева решений и многоуровневых классификаторов XGB Random Forest в качестве метаклассификатора

Стабильный классификатор-3:использование XGBClassifier в качестве метаклассификатора и удаление классификатора svm

Стабильный классификатор-4:использование RandomForest в качестве метаклассификатора и удаление классификатора svm

Стековый классификатор 5:LGBM, SVM, модель дерева решений и многоуровневые классификаторы RFC и XGBoost в качестве метаклассификатора

Стабильный классификатор 6:LGBM, модель дерева решений и стековые классификаторы RFC и XGBoost в качестве метаклассификатора

· Как видно из таблицы, показатель точности и показатель f1 топ-3 моделей получены для 1000 деревьев. Для 1500 деревьев достигнуты следующие результаты: точность_оценки = 0,8120 и f1_score = 0,8027 для топ-3 моделей.

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

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

ПОЭКСПЕРИМЕНТИРОВАТЬ С ОВЕРСАМПЛИНГОМ:

Поскольку наш набор данных несбалансирован с 32 259 исправными насосами, в то время как неработающих насосов 22 824, то есть на 9 435 меньше, а исправных, но требующих ремонта очень меньше, всего 4 317, была предпринята попытка увеличить выборку набора данных с помощью метода SMOTE.

SMOTE над выборкой со значением k_neighbors 5 и 20 был опробован на модели RFC, в которой k_neighbors = 20 дал лучшие результаты, чем k_neigbors = 5, поэтому SMOTE над выборкой данных с k_neighbors = 20 использовался для обучения и измерения производительности ранее протестированных топ-моделей. .

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

Как видно, показатель точности не лучше, чем у модели RFC, достигнутой на исходном наборе данных.

Кроме того, были опробованы передискретизированные данные SMOTE с введенным вручную размером класса, но это также не дало лучших результатов, чем модели, обученные на исходном наборе данных.

АНАЛИЗ ПОСЛЕ ТРЕНИРОВКИ:

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

1. ВИЗУАЛИЗАЦИЯ ОШИБОК МАСКЛАССИФИКАЦИИ

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

2. ВИЗУАЛИЗАЦИЯ TSNE НЕПРАВИЛЬНО КЛАССИФИЦИРОВАННЫХ И ПРАВИЛЬНО КЛАССИФИЦИРОВАННЫХ ТОЧЕК ДАННЫХ ПЕРЕКРЕСТНОЙ ПРОВЕРКИ

Здесь мы создаем два разных набора данных неправильно классифицированных и правильно классифицированных экземпляров и помечаем неправильно классифицированные точки как «0», а правильно классифицированные как «1». Затем, используя TSNE, мы визуализируем данные в 2D, чтобы определить, существуют ли какие-либо отдельные кластеры неправильно классифицированных экземпляров, указывающие на то, что они отличаются от правильно классифицированных.

3. СРАВНЕНИЕ РАСПРЕДЕЛЕНИЯ НЕПРАВИЛЬНО КЛАССИФИЦИРОВАННЫХ И ПРАВИЛЬНО КЛАССИФИЦИРОВАННЫХ ТОЧЕК ДАННЫХ ПО ПРИЗНАКАМ

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

ПОВЫШЕНИЕ ТОЧНОСТИ

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

Из приведенного выше чтения мы видим, что максимальная достигнутая точность составляет 0,8120, но с дальнейшими экспериментами я смог достичь точности 0,8134 на наборе перекрестной проверки. Применив эту модель к тестовому набору, предоставленному DRIVENDATA, на тестовом наборе был достигнут показатель точности 0,8189.

Это дальнейшее повышение точности было достигнуто путем изменения следующего:

· При вменении значений «0» в признак «население» вместо вменения его медианного значения всего обучающего набора среднее значение было рассчитано для того же признака «бассейн» и соответствующим образом вменено.

· Функция «amount_tsh» была удалена. (70% значений «0» могут быть отсутствующими данными)

· Был опробован RFC с деревьями в диапазоне 800–2000, и 900 деревьев дали наилучшие результаты, а также при настройке гиперпараметров GridSearchCV, включая другие гиперпараметры, такие как class_weight и max_samples.

БУДУЩИЕ РАБОТЫ

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

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

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

· Попытка использовать данные о годе и дате постройки по отдельности, а не объединять их.

· Использование одной горячей кодировки для функции «water_quantity» вместо пользовательской порядковой кодировки метки.

МОЙ ПРОФИЛЬ В LINKEDIN: https://www.linkedin.com/in/kunal-dipakranjan-baidya-43b32b196/

ССЫЛКИ

.Case-study, выполненный под руководством наставника из команды AppliedRoots. https://www.appliedaicourse.com/course/11/Applied-Machine-learning-course

· Кремонич, Златан. Прогнозирование состояния водяных насосов в Танзании. Златан Кремонич — Мой математический разум, 23 января 2017 г. https://zlatankr.github.io/posts/2017/01/23/pump-it-up

· Агравал, Каришма и др. Накачайте интеллектуальный анализ данных для водного кризиса в Танзании. andrew.cmu.edu , 2015 г., стр. 1–12, Накачайте интеллектуальный анализ данных для водного кризиса в Танзании.

· Алекс Фам, Бен Бакус, Лорен Чжу. Накачайте это: добыча грунтовых вод. https://cs230.stanford.edu/projects_spring_2018/reports/8291176.pdf

· Аддисон, Джозеф. Накачай: сбор данных о грунтовых водах. Еще один парень из Compsci, 12 июля 2017 г., https://jitpaul.blog/2017/07/12/pump-it-up/.