Сравнение различных видов ML классификаторов в задаче распознавания сигналов
Задача состоит в классификации гидроакустических сигналов. Сонары (гидролокаторы) посылают звук высокой частоты в определенном направлении и получают отраженную звуковую волну. По характеристике этой волны можно сделать вывод, от чего именно она отразилась – от морской мины или же от подводного камня, скалы. Используемый для решения задачи набор данных был разработан сотрудником аэрокосмического технологического центра Полом Горманом в разгар холодной войны. Для получения данных металлический цилиндр и цилиндрическая горная порода, оба длиной около 1,5 метров, размещались на песчаном дне океана.
База данных о гидроакустических сигналах содержит 208 экземпляров и 60 атрибутов. Файл «sonar.mines» содержит 111 экземпляров, полученных путем отскакивания сигналов от мины под разными углами и при различных условиях. Файл «sonar.rocks» содержит 97 экземпляров, полученных от камней или скал в аналогичных условиях. Переданный сигнал гидролокатора представляет собой частотно-модулированный ЛЧМ, повышающийся по частоте. Каждый экземпляр представляет собой набор из 60 чисел в диапазоне от 0,0 до 1,0. Каждое число представляет энергию в пределах определенной полосы частот, полученной за определенный период времени. Метка, связанная с каждой записью, содержит букву «R», если объект представляет собой камень/скалу («Rocks»), и «M», если это мина («Mines»). Оба файла с представлением данных были интегрированы в один csv-файл «sonar.all-data.csv».
Текущая работа посвящена сравнению различных классификаторов машинного обучения на описанном наборе данных. Среди таких классификаторов были выбраны многослойный персептрон, решающее дерево (деревья решений), случайный лес, логистическая регрессия и метод k ближайших соседей. Для создания классификаторов использовалась Python-библиотека Scikit-Learn.
Набор данных уже нормализован. Следовательно, единственная предварительная обработка, которую здесь необходимо выполнить, состоит в том, чтобы разбить набор данных на атрибуты и метки классов (листинг 1), а затем разделить его на данные для обучения и тестирования. Так, использование разбиения 20:80 для тестирования и обучения оставляет 166 экземпляров для обучения (и проверки), а также 42 экземпляра для окончательной оценки. После этого можно применить различные алгоритмы классификации для получения окончательного результата.
Листинг 1. Исходный код функции разбиения данных для обучения модели
По нажатию кнопки «Результат выбранной модели» программа выводит на экран результаты и точность прогноза модели выбранного в раскрывающемся списке классификатора. Для этого вызывается соответствующая ему функция (на примере многослойного персептрона – см. рисунок 1 и листинг 2), в которой выполняется построение модели, ее обучение и тестирование (листинг 3).
Листинг 2. Исходный код функции для обучения и тестирования модели многослойного персептрона
Листинг 3. Исходный код функции для обучения и тестирования модели model на данных X, Y
Также в программе предусмотрено построение графиков точности распознавания по каждой модели и построение диаграмм размаха (так называемых «ящиков с усами»), позволяющих оценить медианные значения точности всех используемых классификаторов (см. листинг 4 и рисунок 2). Таким образом, по результатам перекрестной проверки с разделением используемого набора данных по 10 блоков модель многослойного персептрона демонстрирует максимальную точность.
Листинг 4. Исходный код функции построения графиков всех моделей
Благодаря быстрому развитию науки и технологий, автоматическое распознавание объектов было реализовано за короткое время. Однако у традиционных методов есть множество недостатков, которые необходимо устранить. Из-за природы подводного мира процедура сбора и обработки данных более ограничена, чем на суше (или в воздухе), поэтому существует несколько проблем при использовании более агрессивных и открытых методов. По этой причине наиболее уместным видится сочетание традиционных методов исследования с методами машинного обучения, которые позволяют значительно снизить количество ложных срабатываний.
Рисунок 2 – Диаграммы размаха для оценки точности различных классификаторов
Таким образом, в рамках работы была решена задача бинарной классификации сигналов: отклику классификатора 1 соответствует метка «M» (mines – мина), 0 – «R» (rocks – камень, скала). Итогом стало сравнение точности различных классификаторов машинного обучения на наборе данных «Sonar, Mines and Rocks». Благодаря выполненной работе будущим исследователям будет легче проанализировать существующие методы, извлечь необходимые уроки и разработать эффективную модель для преодоления существующих недостатков.
Следует отметить, что задачи подобного класса часто решаются в аудите. Одним из примеров может служить расчет аудиторского риска по имеющимся данным финансовой отчетности фирм в различных секторах. В ходе планирования аудита изучаются существующие и исторические факторы риска. Предназначенный для решения задачи классификатор (например, модель глубокого обучения) позволяет получить соответствующий отклик: единице соответствует метка «мошенническая фирма», 0 – «не мошенническая фирма». Другой пример – промышленный аудит внутри конкретной компании. Например, в сфере медицины аудит качества доступности лекарственных средств (0 – «лекарство недоступно», 1 – «доступно») имеет дело с данными по их лабораторным исследованиям, сроку годности, доставке в больницы и т.п. Чтобы ускорить автоматизацию аудита в эпоху больших данных, для решения этой задачи могут быть использованы различные ансамблевые модели, сочетающие два и более классификаторов машинного обучения.