Data Science skills: попасть в топ-5 на Kaggle

Команда R&D инженера Олега Паничева заняла 5-е место на Kaggle в конкурсе по прогнозированию эпилептических приступов по измеренному сигналу электроэнцефалограммы. В интервью Олег рассказал о своем участии в соревновании и работе в области Data Science.

Олег выступал на Kaggle в команде с Ириной Иваненко

— Олег, расскажи, пожалуйста, о своей работе и профессиональных интересах. Чем ты занимаешься?

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

Также последние три года работаю над диссертацией на тему «Прогнозирование эпилептических приступов на основе анализа электроэнцефалограмм».

— Почему решил принять участие в соревновании Kaggle?

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

— Расскажи, пожалуйста, о самой платформе. Что такое Kaggle? Как там все работает?

Kaggle — это платформа для людей, которые интересуются анализом данных, машинным обучением и смежными направлениями. Самый популярный раздел Kaggle — это соревнования. Там различные компании и/или исследовательские организации размещают свои задачи и объявляют вознаграждение за топовые решения. Эти задачи решаются методами машинного обучения.

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

Еще на Kaggle есть форум и кернелы — там можно узнать, какие трюки используют профессионалы, и посмотреть код. Как по мне, так Kaggle сейчас является неотъемлемой частью при изучении машинного обучения.

— В чем суть конкурса, в котором ты принял участие?

Соревнование заключалось в том, что нужно было по измеренному сигналу электроэнцефалограммы (ЭЭГ) человека, больного эпилепсией, построить алгоритм для прогнозирования эпилептического приступа. Организаторами и спонсорами соревнования являются Мельбурнский университет, MathWorks и многие другие. В конкурсе принимали участие 478 команд со всего мира.

Всем участникам была доступна база сигналов ЭЭГ от троих пациентов, которая содержала 10-минутные записи двух типов — задолго до приступа и за час перед приступом. Необходимо было найти/придумать и рассчитать такие параметры из этих сигналов, которые бы отличались для этих двух классов сигналов. Затем использовались методы машинного обучения для классификации.

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

— Как проходила работа над решением задачи? Сколько это заняло времени?

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

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

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

Если кому-то интересно узнать больше технических деталей о нашем решении, то вот тут есть описание проекта, а тут можно посмотреть код.

— А по каким критериям организаторы оценивали решения?

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

Команда Олега и Ирины — на 5-м месте

— Что будет дальше? Какая дальнейшая судьба разработок?

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

Импланты для предотвращения эпилептических приступов

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

— Как оцениваешь свой опыт участия в конкурсе? Что вынес для себя?

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

— Что можешь сказать о Data Science в целом? Насколько эта область развита в Украине?

В Украине это направление сейчас очень активно набирает обороты. В принципе, как и во всем мире, но, как всегда, с некоторым запаздыванием. Уже есть довольно большое сообщество и открываются вакансии в различных компаниях. В университетах появляются специальности, полностью посвященные Data Science и машинному обучению (например, в КПИ и УКУ). При поддержке образовательного проекта DataminDS был организован Ukrainian Data Science Сlub.

У нас в R&D лабе в Ciklum есть люди, которые занимались или продолжают заниматься детектированием болезни Альцгеймера на ранних стадиях, создании алгоритмов для предварительной обработки и анализа данных секвенирования РНК, совместным анализом сигналов ЭЭГ и ЭКГ и многим другим.

Команда Ciklum R&D на хакатоне Garage48 IoT & Machine Learning 2016

К сожалению, у нас до сих пор распространено заблуждение, что человек, который занимается Data Science и машинным обучением, должен в первую очередь быть программистом. Тут стоит понимать разницу между Data Science инженером, который использует методы машинного обучения, статистического анализа и другие для построения систем анализа данных, и Machine Learning инженером, который занимается чаще имплементацией и оптимизацией таких систем. Разумеется, и тем, и другим без программирования никак не обойтись, но задачи все-таки у них немного отличаются.

Сейчас существует еще огромное количество задач, которые можно решить методами Data Science и машинного обучения, но к которым просто-напросто еще не подобрались. Именно поэтому, я думаю, уже в ближайшем будущем нас захлестнет волна новых компаний, продукт которых основывается или был получен с помощью Data Science и машинного обучения.

Похожие статьи:
Усім привіт, мене звуть Ілля, я Software Engineer у Dev.Pro. Ця стаття — про коміти та їхню надважливу функцію у житті розробника. Вона стане...
У квітні подорожчали зарплатні пропозиції для фахівців DevOps і QA, а винагороди для FrontEnd- і PHP-розробників — дещо «просіли», про...
У вересні-жовтні 2023 року ми провели щорічне опитування про пошук роботи в ІТ. І отримали 4485 відповідей від айтівців усіх...
Міністерство оборони України шукає технологічні рішення для вдосконалення безпілотних систем на фронті. 28-29 січня...
3 серпня розробник Стівен Лейсі заявив, що ніби «знайшов те, що може виявитися широкомасштабною атакою на 35 тисяч...
Яндекс.Метрика