🏆 Рейтинг ІТ-работодателей 2019: уже собрано более 5000 анкет. Оцените свою компанию!
×Закрыть

Как я резюме обновлял, или ML-эксперимент с базой ФОПов

Появилась свободная минута на то, чтобы не в последний раз смахнуть пыль со своего резюме и удалить аббревиатуры, расшифровки которых я уже не помню, а вместо них добавить чего-нибудь посовременнее. Что там сейчас в тренде? Data Science, ML, AI? Ну что же, начнем...

Анаконда уже установлена и нежится на рабочем столе в ожидании данных. Титаник мне не интересен, до Чемпионата мира еще далеко, а вот нашумевшая база ФОПов (да-да, та самая с адресами и фамилиями) — в самый раз. Забегая наперед, успокою многоуважаемых, что под катом никаких личных данных.

Все желающие могут лицезреть полный исходный код с датасетами на Kaggle.

Анализ данных

Для начала разомнемся и выведем количество IT-шников, сгруппировав по статусу ЧП. Предварительно отфильтруем их от остальных ФОПовцев по КВЭД 62-63:

Одной картинки на Data Science инженера маловато будет — нужно кодить. И не просто кодить, а геокодить! Положиться на бесплатные сервисы и загеокодить ~250 000 записей по точному адресу — никаких лимитов не хватит, а заморачиваться с установкой своего инстанса Open Street Map ой как не хотелось. Ищем на просторах интернета и находим базу украинских почтовых адресов с геокоординатами — то что нужно!

17 000+ не замапилось (ожидал, что будет хуже). Не беда — поселим ~10 000 «бездомных» на соседние почтовые индексы, а остальные 7 000 распределим на уровне городов — на общие цифры это не повлияет.

Забываем пока об остановленных (мы к ним еще вернемся) и выведем распределение зарегистрированных IT-шников по регионам:

Останавливаться тут не над чем — тройка лидеров известна каждому джуну. Задачка на мидла — проецируем записи из базы на карту:

Чем темнее точка — тем больше IT-шников зарегистрировано в данном регионе. Недостаток вышеприведенной карты в том, что в максимально красной точке может быть зарегистрировано сколько угодно IT-шников. Например, визуально кажется, что во Львовской области больше зарегистрированных, чем в Киевской. Хотя осмелюсь предположить, что в Киеве они просто любят жить в обществе себе подобных.

Фиксим график путем притягивания за уши Machine Learning алгоритмов. В сеньоры не метим и ограничимся одним из самых простых — k-means алгоритмом. Эмпирическим путем выбираем количество кластеров, равное 15-ти. 3 строчки кода на Python — вот и весь ML:

Как видно из картинки, ML разбил позиции всех IT-шников на 15 кластеров. В центре масс каждого кластера расположена точка с радиусом, пропорциональным количеству зарегистрированных особ в данном кластере. Все становится на свои места: в Киеве в два раза больше зарегистрированных, чем в Харькове. Львовяне тем временем не отстают.

В чем сила, брат? В параметрах! Тонкий тюнинг моделей с последующей оценкой ее качества — довольно сложный процесс и больше похож на искусство. В k-means особо тюнить нечего, кроме как количество кластеров, поэтому в преддверии выборов немного поиграемся и установим n_clusters = 2:

Ха! Запад победил! Ну а справедливости ради, если делить по Днепру... Меньше воды, больше графиков. Вспомним о неактивных ЧП и распределим их по регионам:

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

Среди наиболее лояльных (меньше всего закрытых) — львовяне, харьковчане и киевляне. Крымчан, если честно, ожидал увидеть в первой тройке — не могу объяснить данную аномалию.

Вывод

Пока скрипт экзекьютится, а графики отрисовываются, подведем итоги:
1 статья, 19 комитов, 7 графиков, 80 строк на питоне и +3 строчки в резюме, а выводы делайте сами.

Что дальше

Еще во времена, когда Nokia выпускала своего первого убийцу айфона, а Android делал первые неуверенные шаги, уже тогда наш Screenshot-based доморощенный солюшен использовал Computer Vision техники (видосик для затравочки в конце статьи). Поэтому в следующий раз поговорим о том, как далеко можно послать селекторы и применим Computer Vision и Deep Learning техники для Screenshot-based автоматических тестов.

LinkedIn

20 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

Я может ошибаюсь, но при чем здесь АИ, МЛ и прочее? Это вроде обыкновенная статистическая обработка данных. Excel-level...

АИ действительно не при чем. Вот если бы к каждой записи в базе можно было бы еще и соответствующий LinkedIn профиль сопоставить — вот тогда было бы где развернуться. А так — работаем с точками на плоскости. Что можно еще сделать с точками? Выбрал k-means потому, что он известен практически каждому. Другие алгоритмы кластеризации (scikit-learn.org/...​e/modules/clustering.html) не сложнее в реализации.

не сложнее в реализации.

не сложнее в юзании.

K neighbor, простой но рабочий метод МЛ

но при чем здесь АИ, МЛ и прочее

ML тут уже есть благодаря использованию K-means.
А вот если бы автор использовал не его, а что-то «революционное» типа тех же глубоких нейронок, то было бы и AI, не так ли? ;)

Excel-level...

Начнем с того, что в Экселе (без специальных плагинов) такой визуализации нет.
Вообще, как я понял, автор захотел потренироваться в ML и визуализации его результатов на конкретной задаче. И в отличие от большинства горе-датасцаентистов, бездумно крапающих модели в Керасе, автор сущность задачи понимает. Понравилась мне и визуализация.
Ну а то, что как тут правильно отметили, место регистрации != место проживания и работы — так это уже пилотаж следующего уровня, как рассчитывать такие поправки с минимальными тратами.

глубоких нейронок, то было бы и AI

Точно не АІ.

cdn-images-1.medium.com/...​lqVsxwqbemdMtBwpNpHMg.png

Слайд по ссылке неправильный. Верно было бы: if it is written in power Point, it is likely AI NS (natural stupidity)

Я так понимаю, основой для данных вычислений, стала бд, с данными, в каких регионах зарегистрированы ФОП? Я думаю, тут большая погрешность, т.к. довольно много ФОП зарегистрировано по месту прописки, а по факту, работают в Киеве, имхо, реальная картина в регионах намного бледнее, в плане точек )

Всегда хотел, чтобы автотестами занимался ИИ

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

Спасибо! Очень интересно :)

Очень интересно!

Насчет вот этого:

откуда «мозги текут» активнее всего

Удивило, что Севастополь на последнем месте.
Хотя Севастополь административно действительно отдельный, но тут, чисто географически, его стоит считать вместе с остальным Крымом — тогда Крым выходит на 3-4 место, что логично.

k-means заюзал — уже машин лернинг.

opencv заюзал — и уже "кампутер вижон ингинер"©

Подписаться на комментарии