All streams
Search
Write a publication
Pull to refresh
108
0

Профессиональное сообщество

Send message

Автоматизация машинного обучения

Reading time8 min
Views4.6K

Data science – это не только fit-predict

Сколько рабочего времени вы тратите на скучные рутинные операции? Представим, что вы начали работать в компании, которая производит однообразные операции с бесконечными таблицами. Например, в крупном ретейлере или у ведущего оператора связи. Ежедневно перед вами ставят задачу выяснить, останется ли клиент с вами или хватит ли товара на полках до конца недели. Алгоритм выглядит просто. Вы берете выборку, изучаете бесконечные ряды признаков, удаляете мусор, генерируете новые признаки, собираете сводную таблицу. Подаете готовые данные в модель, настраиваете параметры и с нетерпением ждете заветных цифр итоговой метрики. Это повторяется день за днем. Затрачивая каждый день всего 60 минут на генерацию фич или подбор параметров, за месяц вы израсходуете минимум 20 часов. Это, без малого, целые сутки, за которые можно выполнить новую задачу, обучить нейросеть или прочесть несколько статей на arxiv’e.

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

Читать далее

Простой граф знаний на текстовых данных

Reading time6 min
Views8.7K

Сегодня на простом примере рассмотрим – как провести краткий обзор неструктурированных данных в виде графа знаний.

Для примера возьмем набор текстов из обращений с портала mos.ru. В данном случае, набор состоит из 90 тыс. обращений. Медианная длина обращений составляет 9 слов. В целом, тексты можно разбить на три основные темы: качество окружающей среды; качество городской среды; доля дорожной среды, соответствующей нормативам.

Для начала импортируем необходимые библиотеки:

Читать далее

Выбираем метод для поиска схожих операций

Reading time4 min
Views1.7K

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

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

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

Фичи, по которым мы будем сравнивать и искать схожие операции:

Читать далее

NLP: разбираем на пальцах практические кейсы без заморочек с ML

Reading time3 min
Views6.4K

Сравнение текстов

Допустим у нас есть три текста: два из них про собачек и один про кошечек.  Как их сравнить между собой?

Читать далее

Дообучение нейросети для поиска лиц в медицинских масках

Reading time4 min
Views5.1K

Первое, что нам понадобится — это датасет (выборка фотографий) людей с масками и без для дообучения нейросети MobileNetV2, которая находится в открытом доступе. У меня был датасет в количестве 981 фотографий людей в масках и столько же без, одних и тех же людей.

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

Итак, разместим наш датасет из 1962 фотографий в двух каталогах в папке dataset в масках в «WithMask» и без маски в «Withoutmask» соответственно. В каждой по 981 фотографии. Ещё одно важное замечание, это то, что дообучаем мы именно на лицах, а не просто, что человек на изображении в маске или без, хотя можно было и так.

Далее импортируем необходимые библиотеки...

Читать далее

Продвинутое использование библиотеки PYTORCH: от подготовки данных до визуализации

Reading time9 min
Views27K

PyTorch — современная библиотека машинного обучения с открытым исходным кодом, разработанная компанией Facebook. Как и другие популярные библиотеки, такие как TensorFlow и Keras, PyTorch позволяет использовать вычислительную мощность видеокарт, автоматически составлять граф вычислений, дифференцировать и считать его. Но, в отличие от предыдущих библиотек, обладает более гибким функционалом, благодаря тому, что использует динамический граф вычислений.

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

Для начала загрузим нужные библиотеки:

Читать далее

Отбор признаков в задачах машинного обучения. Часть 1

Reading time12 min
Views67K

Часто наборы данных, с которыми приходится работать, содержат большое количество признаков, число которых может достигать нескольких сотен и даже тысяч. При построении модели машинного обучения не всегда понятно, какие из признаков действительно для неё важны (т.е. имеют связь с целевой переменной), а какие являются избыточными (или шумовыми). Удаление избыточных признаков позволяет лучше понять данные, а также сократить время настройки модели, улучшить её точность и облегчить интерпретируемость. Иногда эта задача и вовсе может быть самой значимой, например, нахождение оптимального набора признаков может помочь расшифровать механизмы, лежащие в основе исследуемой проблемы. Это может быть полезным для разработки различных методик, например, банковского скоринга, поиска фрода или медицинских диагностических тестов. Методы отбора признаков обычно делят на 3 категории: фильтры (filter methods), встроенные методы (embedded methods) и обёртки (wrapper methods). Выбор подходящего метода не всегда очевиден и зависит от задачи и имеющихся данных. Цель настоящего цикла статей - провести краткий обзор некоторых популярных методов отбора признаков с обсуждением их достоинств, недостатков и особенностей реализации. Первая часть посвящена фильтрам и встроенным методам.

Читать далее

Перехват и анализ сетевого трафика с помощью библиотеки pcap

Reading time5 min
Views12K

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

● посещение нежелательных сайтов;

● скачивание файлов, потенциально зараженных;

● просмотр видеозаписей и скачивание изображений;

● общение в соц. сетях, онлайн-игры.

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

Packet Capture позволяет создавать программы, анализирующие данные, поступающие на сетевую карту компьютера, и (в более новых версиях), передающие пакеты в сеть. В различных подходах к мониторингу и тестированию сети, так называемых программах-снифферах (англ. sniff - нюхать), используют эту библиотеку. Она предназначена для использования совместно с языками C/C++, а для работы с библиотекой на других языках используют обертки. Для Unix-подобных систем - библиотека libpcap, а для Microsoft Windows - WinPcap.

В качестве примера, создадим простейшее консольное приложение, демонстрирующее работу библиотеки pcap под ОС Microsoft Windows, которое будет состоять из двух частей: отправителя, формирующего каждый байт сообщения, и получателя.

Читать далее

Рисуем графы в PyQT

Reading time21 min
Views11K

Графовая аналитика – распространенный инструмент в поиске связей в разрозненных данных. В статье попробуем с использованием PyQT и networkx сделать простейший инструмент для визуализации связей.

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

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

Аналитики, посмотрев на это все, сказали, а может сделаем что-нибудь быстрое для нас, чтобы мы сами там крутили все и смотрели. Конечно же, мой ответ был – а может что-нибудь из open-source? Возьмите Gephi, например. Прошла неделя, приходят обратно – вот это не так, это не то, и вообще сложно. Я честно отбивался, но как видите, не выдержал.

Итак, формируем задачу: Нужно сделать простое приложение для построения графов, не потратив на него много времени, а также, чтобы запускалось и работало без бубнов. Язык – Python. Чтобы не запариваться с оберткой, а сосредоточиться на внутренних алгоритмах, в качестве интерфейса взял PYQT.

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

Читать далее

Поиск нарушений на видео с помощью компьютерного зрения

Reading time7 min
Views6.8K

Автоматизация обработки видеозаписи с целью выявления нарушений — одно из востребованных направлений компьютерного зрения во многих отраслях.
Сегодня мы попытаемся обнаружить на видео отсутствие клиента в кадре в момент проведения операции в автоматизированной системе.

Читать далее

NLP: выделяем факты из текста с помощью Томита-парсера

Reading time9 min
Views11K

NLP - natural language processing

Большая часть данных в мире не структурирована – это просто тексты на русском или на любом другом языке. Извлеченные факты из таких текстов могут представлять особый интерес для бизнеса, поэтому подобные задачи возникают сплошь и рядом. Этим вопросом занимается отдельное направление искусственного интеллекта: обработка естественного языка, тот самый NLP (Natural Language Processing).

Читать далее

«Делай как я!» — изучаем имперсонатор

Reading time4 min
Views1.8K

Самые интересные и перспективные разработки в области AI связаны с нейронными сетями. Сегодня рассмотрим Impersonator++ для накопления опыта в области Deep fake.

Читать далее

Поиск нарушений на видео с помощью компьютерного зрения

Reading time7 min
Views5.5K

Предположим, что данное нарушение возможно. Как же его выявить?

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

Будем искать все моменты на записи, где отсутствовал клиент. В этом нам поможет нейронная сеть MobileNet и CSRT Tracker из библиотеки opencv. А для удобства еще и Tesseract-OCR.

Чтобы найти человека в кадре будем использовать нейросеть MobileNet. Данная сеть позволяет обнаружить и локализовать 20 типов объектов на изображении. Для ее работы необходимо скачать два файла: архитектуру и веса. Данные файлы можно найти в репозитории Github.

Перед написанием кода нам понадобится установка библиотеки компьютерного зрения cv2 и пакета для обработки текста на изображениях pytesseract. 

Читать далее

Как ML помогает при аудите качества клиентского сервиса

Reading time6 min
Views1.7K

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

Читать далее

Шаги построения рекомендательной системы в обучении персонала

Reading time5 min
Views3.4K

Широкое распространение в последние годы получили программы, которые пытаются предсказать, какие объекты будут интересны пользователю, имея определенную информацию о его профиле. До 2006 года такие алгоритмы не пользовались популярностью. Но все изменилось осенью 2006 года, когда компания Netflix предложила разработчикам 1 000 000$ за лучший алгоритм предсказания. Конкурс продлился 3 года.

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

Читать далее

Расширяющийся нейронный газ

Reading time3 min
Views4K

При проведении проверок с использованием моделей машинного обучения одной из часто решаемых задач является задача кластеризации. Например, необходимо разбить на несколько кластеров отзывы клиентов на мобильное приложение (задача тематического моделирования). Для задач кластеризации часто используют модель k-means. Это обусловлено её простотой и понятностью. Однако, у этого алгоритма есть один большой недостаток - необходимость изначально задать число кластеров. Эта проблема прекрасно решается с помощью расширяющегося нейронного газа.

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

1)    Генерация первых двух нейронов случайным образом

2)    На каждом шаге итерационного процесса берется один элемент данных. Два ближайших к нему нейрона двигаются в его сторону

3)    Между наиболее часто перемещающемуся нейроном и его ближайшим соседом создается новый нейрон

4)    Удаляются связи, если соединенные им нейроны вместе не передвигаются, и нейроны без связей

Рассмотрим этот итерационный алгоритм на примере со следующими данными.

Читать далее

Подбор гиперпараметров ML-модели с помощью HYPEROPT

Reading time5 min
Views24K

В машинном обучении гиперпараметрами называют параметры модели, значения которых устанавливаются перед запуском процесса её обучения. Ими могут быть, как параметры самого алгоритма, например, глубина дерева в random forest, число соседей в knn, веса нейронов в нейронный сетях, так и способы обработки признаков, пропусков и т.д. Они используются для управления процессом обучения, поэтому подбор оптимальных гиперпараметров – очень важный этап в построении ML-моделей, позволяющий повысить точность, а также бороться с переобучением. На сегодняшний день существуют несколько популярных подходов к решению задачи подбора, например:

1.Поиск по решётке. В этом способе значения гиперпараметров задаются вручную, затем выполняется их полный перебор. Популярной реализацией этого метода является Grid Search из sklearn. Несмотря на свою простоту этот метод имеет и серьёзные недостатки:

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

Часто в целях экономии времени приходится укрупнять шаг перебора, что может привести к тому, что оптимальное значение параметра не будет найдено. Например, если задан диапазон значений от 100 до 1000 с шагом 100 (примером такого параметра может быть количество деревьев в случайном лесе, или градиентном бустинге), а оптимум находится около 550, то GridSearch его не найдёт.

2.Случайный поиск. Здесь параметры берутся случайным образом из выборки с указанным распределением. В sklearn он этот метод реализован как Randomized Search. В большинстве случаев он быстрее GridSearch, к тому же значения параметров не ограничены сеткой. Однако, даже это не всегда позволяет найти оптимум и не защищает от перебора заведомо неудачных комбинаций.

3.Байесовская оптимизация. Здесь значения гиперпараметров в текущей итерации выбираются с учётом результатов на предыдущем шаге. Основная идея алгоритма заключается в следующем – на каждой итерации подбора находится компромисс между исследованием регионов с самыми удачными из найденных комбинаций гиперпараметров и исследованием регионов с большой неопределённостью (где могут находиться ещё более удачные комбинации). Это позволяет во многих случаях найти лучшие значения параметров модели за меньшее количество времени.

Читать далее

Ранжирование текстов по похожести на опорные тексты при помощи модели TF-IDF в реализации GENSM

Reading time6 min
Views14K

Бывает так, что критерии поиска текстов слишком сложны, чтобы обойтись регулярными выражениями. В таких случаях на помощь приходит ML. Если из списка текстов выбрать самый подходящий для нас, можно выяснить похожесть всех остальных текстов на этот. Похожесть(similarity) это численная мера, чем выше – тем более текст похож, поэтому при сортировке по убыванию по этому параметру мы увидим наиболее подходящие нам тексты из выборки.

В качестве примера возьмем любой набор текстов. Здесь http://study.mokoron.com/ можно скачать небольшое csv с твитами.  В реальной работе это могут быть разного рода комментарии, ответы от техподдержки, запросы пользователей. Так или иначе, импортировав все нужные библиотеки, загрузим в pandas наш список текстов и взглянем на первые из них:

Читать далее

Распознавание символов

Reading time9 min
Views8.7K

Работа с изображениями — одна из самых распространенных задач в машинном обучении. Мы покажем пример обработки изображения, получение матриц (тензоров) чисел, подготовку данных обучающего множества, пример архитектуры нейронной сети.

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

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

— анализ изображений;

— подготовка данных;

— генерация данных;

— тренировка нейронной сети, предсказание ответов.

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity