Пару дней назад, случайно зайдя на Хабр без адблока, я увидел баннер: ”Билайн, будь мужиком — реши шайтан-задачу”. Челендж звучал интересно, определить возраст по набору таких параметров, как регион, тарифный план и т.д.



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



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



Не сильно расстроившись, все ж питон не R. И с серьезными намерениями и молодецким задором выкачал триал JetBrains PyCharm. Поковыряв несколько примеров, примерно, понял, что к чему решаюсь, наконец взяться за билайн.

Предвкушая, как буду накладывать свою социальную картину мира на предоставленные данные, пытаясь понять кому и сколько лет начал скачивать задание. Скачав данные, почуствовал себя сильно обманутым. Вместо обещанных тарифов и прочих ништяков я увидел набор безсвязных колонок 1-61 и значений в таблице в виде хешей и каких-то сумасшедших чисел. Привет суровая киберпанкщина.



Разработав решение для такой постановки задачи становится совершенно не ясно, а что же реально оно будет делать? Рекомендовать кружевные трусики японским тян или выносить массово судебные приговоры в Китае. Отбросив рефлексию и остановившись на том, что это безобидный конкурс я начал ковырять данные. Первое, что я сделал рандомно раскидал 3 самые популярные группы и залил результат, который составил 27.03%, ок с этого и начнем.

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



Но последней каплей стало осознание того, сколько я трачу времени на кодинг, какой-то ерунды, хотя мне всего лишь нужен один график! И в этот момент боли и дискомфорта от всех этих инструментов, отказываясь верить, что все так плохо я, почему-то, вспомнил про вкладку machine learning у azure, хотя ни разу ее и не открывал.



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



Выбрав самый точный алгоритм решил воспользоваться модулем подбора параметров. Капитанский модуль после перебора всех вариантов отрапортовал, что чем больше — тем лучше. Не долго думая увеличил базовые параметры в 100 раз и оставил все это дело обучаться. Самое неудобное в этом процессе это отсутствие какого-либо прогресс бара или хоть каких-то эстимейтов и по факту остается только гадать, когда закончится процесс. Несколько раз были мысли остановить, но я дотерпел до окончания и заняло это 13 часов.



В результате я получил:



Это всего на 0.9% меньше, чем топ25, с учетом того, что в топ25 разброс в 0.6% и к низу он увеличивается, то в топ40, думаю я попал. Считаю это отличным результатом для человека, который еще вчера ничего в этой области не знал.

К слову о материальной стороне обошлось все это баловство в ML студии мне за 24.38 Hours в РУБ1,219.04.

Комментарии (12)


  1. Agb
    19.10.2015 13:44
    +8

    Тема «кококо» не раскрыта.


    1. nail84
      19.10.2015 13:47
      +3

      Я так понял, ее аккуратно затрагивает последний тэг.


    1. Imp5
      19.10.2015 14:02
      +2

      Тему «кококо» раскрывает весь этот пост.


  1. evnuh
    19.10.2015 13:59
    +26

    «Чёт лень стало кодить, давайте вы за меня там на ферме сами обучитесь по стандартным алгоритмам, сами посчитаете по стандартным алгоритмам и пришлёте мне обычный результат, а я вам за это заплачу РУБ1,219.04, и никому не будет никакого толку.»


    1. BelBES
      20.10.2015 12:22
      +2

      Почему нет толку? По моему статья наглядно показала, что такой челендж — это профанация. Спрятав реальные данные за безликими параметрами билайновцы сами толкают участников с пути погружения в данные, на путь code monkey и бездумного фитттинга абстрактных моделей) Ну и то, что такой подход дал результаты сравнимые с топ50, очень наглядно это подтверждает)


      1. mephistopheies
        20.10.2015 20:49

        естественно нет, тема авто обуения не новая, вот например свежак arxiv.org/pdf/1507.02188v1.pdf — автор этой статьи ничего не делая в кэгле занимает постоянно топ10, и что? ни разу еще не выиграл

        судя по всему азуре мл пока еще даже не умеет подбирать какие модели для каких данных лучше, у Абхишека уже это есть

        но без понимания природы моделей выше топ10 не пройти, благо Абхишек не дурак и иногда сам делает решения, и попадает в топ3 например, но ИИ пока не изобрели и Абхишеку придется еще долго самому тюнить свои решения


  1. 13alex
    19.10.2015 17:32
    +9

    Шёл второй год как Билайн пытался получить хоть какие-то вменяемые алгоритмы, теперь уже пытаясь подоить хабрасообщество.
    Все эти алгоритмы машинного обучения уже есть, их активно используют (тот же Azure), а эта акция не больше чем пиар и попытка нахаляву найти хоть сколько-нибудь толкового дата-майнера. Денег жалко на решения сторонние, а пилить внутри дирекции намного проще :)


  1. gandjustas
    20.10.2015 12:36
    +6

    Примерно такой же результат получил в связке SSAS DataMining + Excel Addin, на локальной машине за 20 минут (бесплатно, без СМС). Тоже думал сначала сделать статью, но не попав в 25 решил не позориться.


  1. gaploid
    20.10.2015 16:10
    +1

    image

    То же делал на Azure ML. Только я заплатил 0.0 руб. Там же есть бесплатная подписка.


    1. limitium
      20.10.2015 16:39
      -1

      Отлично! Какой алгоритм использовал? Данные как-то подготавливал?


      1. gaploid
        20.10.2015 17:31
        -1

        Multiclass Decision Forest. Там есть еще функциональный блок который перебором тебе подбирает параметры. Плюс я там еще упрощал и убирал шумящие столбцы и строки.


  1. AlexBin
    21.10.2015 17:40
    +2

    Фотографии получились говно. Наверно камера плохая. Найму фотографа.