All streams
Search
Write a publication
Pull to refresh
108
0

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

Send message

Поиск адресов в «испорченных» данных

Reading time10 min
Views5.9K

Введение

Для проведения проверки мне необходимо было установить адреса нескольких сотен объектов недвижимости. Проблема в том, что адреса были написаны в разных частях документов, документы имели различные форматы, и сам адрес также мог быть написан разнообразными способами.  

Да, существует возможность использовать для данной задачи различные библиотеки и сервисы, но источники данных с информацией об этих объектах должны быть упорядочены и однородны. Можно ли используя минимум ресурсов решать подобные задачи? Можно! Рассмотрим решение на основе Python 3, Pandas и нескольких библиотек для конвертации файлов в датафреймы.

Читать далее

Анализ аудио. Идентификация голоса

Reading time8 min
Views18K

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

Перед нашей командой стояла задача проанализировать большое число телефонных звонков от клиентов, с целью выявления фактов псевдодоверительного управления, т.е. тех случаев, когда один и тот же человек представляет по телефону интересы нескольких клиентов. Суммарный объем аудиоданных составлял более 500Гб, а общая продолжительность 445 дней (11 тыс. часов). Естественно, прослушать все записи силами нескольких человек невозможно, поэтому решением задачи мы видели автоматическую кластеризацию похожих голосов с последующим анализом полученных групп.

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

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

Читать далее

NER для русского языка в Spacy 3: удобно и легко

Reading time8 min
Views16K

Славянские языки, в том числе и русский, считаются довольно сложными для обработки. В основном, из-за богатой системы окончаний, свободного порядка слов и других морфологических и синтаксических явлений. Распознавание именованных сущностей (далее, NER) представляется трудной задачей для славянских языков, где синтаксические зависимости часто маркируются морфологическими чертами, нежели определенным порядком словоформ. Поэтому NER сложен для этих языков в сравнении с германскими или романскими языками.

Читать далее

Спектральный анализ временных рядов с помощью python

Reading time3 min
Views11K

С развитием информационных технологий профессия DS стала чрезвычайно популярна. Сейчас почти каждый может имея ПК и установленный на нем стандартный пакет Python, анализировать данные и строить на их основе прогнозы.

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

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

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

Данные по посещениям представлены на графике ниже

Читать далее

Полиномиальная регрессия и метрики качества модели

Reading time4 min
Views20K

Давайте разберемся на примере. Скажем, я хочу спрогнозировать зарплату специалиста по данным на основе количества лет опыта. Итак, моя целевая переменная (Y) — это зарплата, а независимая переменная (X) — опыт. У меня есть случайные данные по X и Y, и мы будем использовать линейную регрессию для прогнозирования заработной платы. Давайте использовать pandas и scikit-learn для загрузки данных и создания линейной модели.

Читать далее

Global WHEAT CHALLENGE 2021 или как накормить весь мир

Reading time4 min
Views963

Представляю вашему внимаю обзор на соревнование Global Wheat Challenge 2021, а также делюсь своим опытом участия в нем.

О соревновании

Данное соревнование проводилось на площадке aicrowd.com, аналоге kaggle, и организатором был университет Саска́чеван. Денежные призы присуждались за первые три места: 1) 2000$; 2) 1000$; 3) 1000$.

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

Стоит сказать, что это не первое соревнование, организованное этим университетом в рамках данной задачи. Так, например, в прошлом году он так же проводил соревнование на площадке kaggle.

Датасет

Набор данных состоит из более чем 6000 изображений с разрешением 1024х1024 пикселей, содержащих свыше 300 тыс. уникальных колосьев пшеницы. Изображения получены из 11 стран и охватывают 44 уникальных сеанса измерений. Сеанс измерения — это набор изображений, полученных в одном и том же месте в течение нескольких часов. По сравнению с конкурсом 2020 года на Kaggle, он представляет 4 новые страны, 22 новых сеанса измерений, 1200 новых изображений и 120 тыс. новых голов пшеницы. Стоит отметить, что распределение между test и train было не стратифицировано относительно сеансов измерений, то есть в test попали изображения из стран и временных периодов, не встречающихся в train. Так организаторы пытались подтолкнуть участников создавать робастный метод детекции.

Читать далее

Выявление мошеннических сборов в Instagram

Reading time6 min
Views2.8K

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

Читать далее

Построение графов с помощью библиотеки PyViz на основе текстового анализа ESG стратегий отдельных компаний

Reading time3 min
Views2.1K

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

Анализ огромного потока неструктурированной текстовой информации является одним из постоянных действий любого человека. Для того, чтобы провести быстрый обзор ключевых моментов существуют современные технологичные инструменты, такие как графы знаний или knowledge graph. Графы знаний используются для наглядного представления взаимосвязей между людьми, событиями, предметами и т.д.

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

·        местоимения заменены на наименования компаний;

·        предложения разделены в список.

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

Читать далее

Методы укладки Gephi. Force Atlas и Force Atlas 2

Reading time4 min
Views4.1K

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

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

Рассмотрите свои варианты с точки зрения целостности. Конечная цель создать граф, который не только понятен, но и позволяет рассказать убедительную историю. Если при достижении этих целей макет выглядит впечатляюще, даже лучше! Однако любое прочтение литературы и поиск в интернете быстро покажет, что многие графы выглядят впечатляюще, но не передают смысла данных, и они настолько плотны, что их невозможно прочитать. Не становитесь жертвой создания, чего-то впечатляющего, ради красивой картинки - всегда помните, что вы используете средство просмотра графов, и делаете все возможное, чтобы показать данные чётко. Теперь, когда мы определили приоритеты, мы можем перейти к рассмотрению различных компоновок Gephi.

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

Читать далее

Роль обратного распределения в построении нейросети

Reading time4 min
Views2.9K

Прежде чем приступить к раскрытию темы, необходимо ознакомиться с общими понятиями.

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

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

Размышление, которые привели меня к использованию алгоритма обратного распределения:

1.       Прежде всего, если я хочу создать нейронную сеть мне нужно инициализировать некоторые веса.

2.       Какие бы значения я ни выбрала для весов, я не знаю насколько они верны.

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

4.       Предположим, моя ошибка модели произошла слишком много раз.

5.       Это означает, что мой прогнозируемый результат сильно отличается от фактического. Так что мне делать? Постараюсь минимизировать ошибку.

Читать далее

Аннотирование текстов при помощи BERT

Reading time5 min
Views5.9K

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

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

Задача создания краткой аннотации текстов решается двумя способами: 

·        Абстрактивный подход – генерация нового текста, на основе полученной информации

·        Экстрактивный подход – использование слов/словосочетаний, ранее использованных в текстах

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

Основной минус такого подхода – разметка. Если ваши тексты написаны по принципу пирамиды Минто, то вам скорее всего повезло, разметку можно провести механически, выделив первое или несколько первых предложений в качестве референсного саммари.

Читать далее

Нейросети в исследовании процессов

Reading time8 min
Views6.4K

Нейронные сети – это статистические вычислительные модели, применяемые к множеству практических задач, в том числе обработка изображений, машинный перевод и поиск шаблонов. При обучении с учителем, нейросеть тренируется на примере уже известных объектов, то есть для всех исходных данных у нас есть предопределенный правильный ответ. Главная идея обучения нейросети – это настроить такую конфигурацию, при которой ответы модели будут максимально приближены к корректным. Что же до рекуррентных нейросетей, то они не только обучаются на исходных объектах, но и предоставляют контекст для каждого следующего предсказания. Это помогает нейросети сохранять состояние, в котором было принято решение. В этой статье мы обсудим применение рекуррентных нейросетей (РНС) в проблеме исследования процесса в process mining.

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

Для прояснения подхода возьмём лог событий L = [(a, b, c, d, e), (a, b, d)] в качестве примера. Внутренние вычисления нейросети требуют предобработку последовательностей событий следующим образом.

Читать далее

Кластеризация трасс для оценки качества процессов

Reading time4 min
Views1.2K

Бывают такие случаи в анализе процессов, когда данных не очень много, а действия в процессах хаотичны. И что делать? Конечно, анализировать. Для этого будем использовать привычные инструменты: python и excel. И иногда гугл.

Прежде чем браться за ноутбук, необходимо всегда смотреть на данные глазами. Что имеем: исходный набор состоит из 1 000 000+ строк и 19 столбцов. Внушительно. Чистим и извлекаем нужные данные. После применения некоторых фильтров осталось около 36 000 строк, которые нам необходимы. Разница огромна! Из оставшегося набора выделяем столбцы ‘case_id’, ‘activity’, ‘timestamp’.

Читать далее

Анализ и обработка изображений с использованием операций математической морфологии, python и библиотеки OPEV

Reading time6 min
Views17K

Математическая морфология — это теория, которая зародилась еще в 1964 году, когда Джордж Матерон изучал соотношение геометрии пористой среды и их проницаемости. В то же время Жан Серра попытался количественно оценить петрографию (т.е. макроскопические и микроскопические исследования горных пород) железных руд, а также результаты исследования Серра в 1982 году.

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

Для освоения материала подразумевается, что читатель обладает минимальными знаниями в области.

Читать далее

EDA становится проще, если есть SWEETVIZ

Reading time6 min
Views9.4K

Sweetviz — это библиотека Python с открытым исходным кодом, которая генерирует отчеты с удобной визуализацией для выполнения EDA с помощью всего двух строк кода. Библиотека позволяет быстро создать подробный отчет по всем характеристикам набора данных без особых усилий. В возможности Sweetviz также входит целевой анализ, сравнение двух датасетов, сравнение двух частей датасета, выделенных по определенному признаку, выявление корреляций и ассоциаций, также sweetviz создает позволяет создавать и сохранять отчет как HTML файл.

Использование библиотеки

Установить библиотеку можно с помощью менеджера пакетов pip следующей командой:

Читать далее

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

Reading time8 min
Views7.9K

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

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

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

Читать далее

Борьба с несбалансированностью классов с помощью модуля NEARMISS

Reading time3 min
Views10K

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

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

Метод NearMiss — это метод недостаточной выборки. Он пробует сбалансировать распределение классов путём случайного исключения наблюдений из бо́льших классов. Если экземпляры из двух разных классов очень похожи между собой, метод удаляет наблюдение из мажоритарного класса.

Давайте рассмотрим работу этого метода на практике. Для начала установим необходимые нам библиотеки через стандартный pip в cmd:

Читать далее

Анализ сообщений коммерческого чата на предмет игнорирования вопроса клиента на основе модели nlp

Reading time8 min
Views3.3K

Задача – «Провести анализ сообщений коммерческого чата на предмет игнорирования вопроса клиента менеджером компании»

На входе: лог чатов с клиентом компании в csv формате.

Читать далее

Балансировка массива для ML при недостаточном количестве миноритарных объектов в массиве

Reading time4 min
Views2.1K

При моделировании какого-либо процесса с помощью ML (machine learning), одной из наиболее трудоемких и ответственных задач является создание массива данных, достаточного по объему для создания модели с высокими качественными характеристиками. Что делать, если данных недостаточно?

В рамках одной из задач по созданию математической модели, оценивающей вероятность манипулирования финансовой отчетностью, предоставляемой клиентом в банк, была зафиксирована проблема недостаточности данных для обучения модели с учителем. В качестве объекта массива была выбрана квартальная финансовая отчетность (ФО). Массив состоял из нескольких тысяч объектов, и для нашей задачи этого было достаточно. Проблема появилась при формировании значений целевой переменной. Аналитиками было выявлено всего лишь 20 доказанных случаев манипулирования финансовой отчетностью. Это крайне малое количество для массива, состоящего из нескольких тысяч объектов. При случайной разбивке массива, в нашем случае на 5 фолдов, при применении функции кросс-валидации, высока вероятность того, что какой-либо из фолдов окажется без объектов с доказанными случаями манипулирования ФО. В данном случае функционал кросс-валидации будет бесполезен и процесс по обучению модели будет завершаться ошибкой.  

На первый взгляд, есть решение данной проблемы, которое заключается в применении метода «indersampling», суть которого заключается в дублировании в массиве тех объектов, для которых в нашем случае доказаны факты манипулирования ФО.  Как оказалось, применение метода «indersampling» решило проблему кросс-валидации, но создать модель с приемлемыми метриками качества не получилось. Был сделан вывод о том, что применение метод «indersampling» не целесообразно в случае, когда количество объектов миноритарного класса и мажоритарного класса отличаются на несколько порядков. В нашем случае метод дублирования создает большое количество объектов в массиве, которые являются полными копиями своего родителя. В этом случае массив теряет свою уникальность, и обучение на такой выборке приводит к переобучению модели. Очевидность данного факта демонстрируют метрики качества модели на тестовой выборке.

Читать далее

Information

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