Pull to refresh
  • by relevance
  • by date
  • by rating

Наивный Байесовский классификатор в 25 строк кода

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

И так, для примера возьму задачу определения пола по имени. Конечно, чтобы определить пол можно создать большой список имен с метками пола. Но этот список в любом случае будет неполон. Для того чтобы решить эту проблему, можно «натренировать» модель по маркированным именам.
Если интересует, прошу
под кат
Total votes 37: ↑37 and ↓0 +37
Views 77K
Comments 24

Yet another classifier

Python *Data Mining *Algorithms *

Вместо вступления


Лень — двигатель прогресса. Не хочешь сам молоть зерно — сделай мельницу, не хочешь сам кидать во врагов камни — сооруди катапульту, надоело гореть на кострах инквизиции и гнуть спину под феодалом — замути с ребятами ренессанс… впрочем, о чем это я.
Автоматизация, господа. Берешь какой-нибудь полезный процесс, в котором участвует человек, заменяешь человека на сложный механизм, получаешь профит. Относительно недавно также стало модно заменять человека куском кода. О, сколько благородных профессий может пасть под натиском информатизации. Особенно если учесть, что кусок кода в наше время способен не только на заранее определенное поведение, но и на «обучение» какому-то поведению.
Читать дальше →
Total votes 43: ↑36 and ↓7 +29
Views 11K
Comments 43

Классификация документов по их внешнему виду и содержанию

ABBYY corporate blog Data Mining *
imageСегодня мы расскажем вам, как и зачем можно применять классификаторы для разделения и сортировки разных документов по их типам.

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

Но на этом работа классификаторов не заканчивается.
Читать дальше →
Total votes 33: ↑25 and ↓8 +17
Views 11K
Comments 8

Оптимизация гиперпараметров в Vowpal Wabbit с помощью нового модуля vw-hyperopt

DCA (Data-Centric Alliance) corporate blog Algorithms *Big Data *GitHub Machine learning *
Привет, Хабр! В этой статье речь пойдет о таком не очень приятном аспекте машинного обучения, как оптимизация гиперпараметров. Две недели назад в очень известный и полезный проект Vowpal Wabbit был влит модуль vw-hyperopt.py, умеющий находить хорошие конфигурации гиперпараметров моделей Vowpal Wabbit в пространствах большой размерности. Модуль был разработан внутри DCA (Data-Centric Alliance).


Для поиска хороших конфигураций vw-hyperopt использует алгоритмы из питоновской библиотеки Hyperopt и может оптимизировать гиперпараметры адаптивно с помощью метода Tree-Structured Parzen Estimators (TPE). Это позволяет находить лучшие оптимумы, чем простой grid search, при равном количестве итераций.

Эта статья будет интересна всем, кто имеет дело с Vowpal Wabbit, и особенно тем, кто досадовал на отсутствие в исходном коде способов тюнинга многочисленных ручек моделей, и либо тюнил их вручную, либо кодил оптимизацию самостоятельно.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Views 21K
Comments 6

Как использовать Python для «выпаса» ваших неструктурированных данных

Издательский дом «Питер» corporate blog Python *Programming *Data Mining *Professional literature
Translation
Здравствуйте, уважаемые читатели.

В последнее время мы прорабатываем самые разные темы, связанные с языком Python, в том числе, проблемы извлечения и анализа данных. Например, нас заинтересовала книга «Data Wrangling with Python: Tips and Tools to Make Your Life Easier»:



Поэтому если вы еще не знаете, что такое скрепинг, извлечение неструктурированных данных, и как привести хаос в порядок, предлагаем почитать перевод интересной статьи Пита Тамисина (Pete Tamisin), рассказывающего, как это делается на Python. Поскольку статья открывает целую серию постов автора, а мы решили пока ограничиться только ею, текст немного сокращен.

Если кто-то сам мечтает подготовить и издать книгу на эту тему — пишите, обсудим.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 17K
Comments 10

Простая технология классификации распознанных страниц деловых документов на основе метода Template Matching

Smart Engines corporate blog Programming *Data Mining *Algorithms *Image processing *

image


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

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 5.2K
Comments 4

Открытый курс машинного обучения. Тема 3. Классификация, деревья решений и метод ближайших соседей

Open Data Science corporate blog Python *Data Mining *Algorithms *Machine learning *

Привет всем, кто проходит курс машинного обучения на Хабре!


В первых двух частях (1, 2) мы попрактиковались в первичном анализе данных с Pandas и в построении картинок, позволяющих делать выводы по данным. Сегодня наконец перейдем к машинному обучению. Поговорим о задачах машинного обучения и рассмотрим 2 простых подхода – деревья решений и метод ближайших соседей. Также обсудим, как с помощью кросс-валидации выбирать модель для конкретных данных.


UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


Видеозапись лекции по мотивам этой статьи в рамках второго запуска открытого курса (сентябрь-ноябрь 2017).

Читать дальше →
Total votes 63: ↑62 and ↓1 +61
Views 355K
Comments 47

Простой intent classifier

Abnormal programming *Machine learning *
В прошлый раз я научился использовать нейросети, чтобы понимать, что именно пользователь хочет добиться от бота. То, что у меня тогда получилось, обладало рядом недостатков. Во-первых, я ограничился только одним видом фраз. Во-вторых, я использовал тяжеловесный nmt, чтобы выцепить intent из фразы. При этом такую задачу обычно решают обычными классификаторами.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views 4.3K
Comments 2

Применение сверточных нейронных сетей для задач NLP

Open Data Science corporate blog Python *Data Mining *Machine learning *Natural Language Processing *
Когда мы слышим о сверточных нейронных сетях (CNN), мы обычно думаем о компьютерном зрении. CNN лежали в основе прорывов в классификации изображений — знаменитый AlexNet, победитель соревнования ImageNet в 2012 году, с которого начался бум интереса к этой теме. С тех пор сверточные сети достигли большого успеха в распознавании изображений, в силу того факта, что они устроены наподобие зрительной коры головного мозга — то есть умеют концентрироваться на небольшой области и выделять в ней важные особенности. Но, как оказалось, CNN хороши не только для этого, но и для задач обработки естественного языка (Natural Language Processing, NLP). Более того, в недавно вышедшей статье [1] от коллектива авторов из Intel и Carnegie-Mellon University, утверждается, что они подходят для этого даже лучше RNN, которые безраздельно властвовали областью на протяжении последних лет.

Сверточные нейронные сети


Для начала немного теории. Что такое свертка? Мы не будем на этом останавливаться подробно, так как про это написана уже тонна материалов, но все-таки кратко пробежаться стоит. Есть красивая визуализация от Стэнфорда, которая позволяет ухватить суть:

image
Источник
Читать дальше →
Total votes 71: ↑69 and ↓2 +67
Views 48K
Comments 29

Как отличить криптовалюту от не криптовалюты

Distributed Lab corporate blog Cryptography *Monetization of IT systems *Cryptocurrencies
Данный материал является умозаключением, которое, как мы считаем, может быть кому-то полезным. Популярность темы криптовалют привела к тому, что так стали называть даже те цифровые валюты, которые криптовалютами не являются. В этой статье мы постарались выделить основные свойства, которыми должна обладать криптовалюта, а также показать общее положение криптовалюты среди всех цифровых активов. Итак, приступим.
Читать дальше →
Total votes 21: ↑12 and ↓9 +3
Views 7.1K
Comments 78

Кодинг и тестирование kNN в Julia

Programming *Algorithms *Julia *Machine learning *
Sandbox


Новый язык в Data Science. В России Julia довольно редкий язык, хотя за рубежом его используют уже 5 лет (тоже мне, удивили). Источников на русском нет, поэтому я решила сделать показательный пример работы Julia, взятый из одной замечательной книги. Лучший способ выучить язык — начни что-то писать на нем. А чтобы это еще и привлекло внимание, используй machine learning.
Читать дальше →
Total votes 19: ↑15 and ↓4 +11
Views 3.4K
Comments 6

Как я понял, что ем много сладкого, или классификация товаров по чекам в приложении

Python *Data Mining *
Sandbox

Задача


В этой статье мы хотим рассказать, как мы создали решение для классификации названий продуктов из чеков в приложении для учёта расходов по чекам и помощника по покупкам. Мы хотели дать пользователям возможность просматривать статистику по покупкам, собранную автоматически на основе отсканированных чеков, а именно распределить все купленные пользователем товары по категориям. Потому что заставлять пользователя самостоятельно группировать товары — это уже прошлый век. Есть несколько подходов для решения такой задачи: можно попробовать применить алгоритмы кластеризации с разными способами векторного представления слов или классические алгоритмы классификации. Ничего нового мы не изобрели и в этой статье лишь хотим поделиться небольшим гайдом о возможном решении задачи, примерами того, как делать не надо, анализом того, почему не сработали другие методы и с какими проблемами можно столкнуться в процессе.
Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views 10K
Comments 23

Как отличить хороший ремонт от плохого, или как мы в SRG сделали из Томита-парсера многопоточную Java-библиотеку

SRG corporate blog Open source *Java *Machine learning *Natural Language Processing *
В этой статье речь пойдет о том, как мы интегрировали разработанный Яндексом Томита-парсер в нашу систему, превратили его в динамическую библиотеку, подружили с Java, сделали многопоточной и решили с её помощью задачу классификации текста для оценки недвижимости.


Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 2.5K
Comments 16

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

Open Data Science corporate blog Python *Data Mining *Algorithms *Machine learning *

Привет всем, кто выбрал путь ML-самурая!


Введение:


В данной статье рассмотрим метод опорных векторов (англ. SVM, Support Vector Machine) для задачи классификации. Будет представлена основная идея алгоритма, вывод настройки его весов и разобрана простая реализация своими руками. На примере датасета $Iris$ будет продемонстрирована работа написанного алгоритма с линейно разделимыми/неразделимыми данными в пространстве $R^2$ и визуализация обучения/прогноза. Дополнительно будут озвучены плюсы и минусы алгоритма, его модификации.


image
Рисунок 1. Фото цветка ириса из открытых источников

Читать дальше →
Total votes 52: ↑51 and ↓1 +50
Views 54K
Comments 5

Сертификация по программе IBM Data Science Professional Certificate

Python *Data visualization Machine learning *
Sandbox

Статья является кратким обзором о сертификации по программе IBM Data Science Professional Certificate.


Будучи новичком в Python, мне пришлось столкнуться с реализацией задач:


  • Загрузка и парсинг HTML таблиц
  • Очистка загруженных данных
  • Поиск географических координат по адресу объекта
  • Загрузка и обработка GEOJSON
  • Построение интерактивных тепловых карт (heat map)
  • Построение интерактивных фоновых картограмм (choropleth map)
  • Преобразование географических координат между сферической WGS84 и картезианский системой координат UTM
  • Представление пространственных географических объектов в виде гексагональная сетки окружностей
  • Поиск географических объектов, расположенных на определенном расстоянии от точки
  • Привязка географических объектов к полигонам сложной формы на поверхности
  • Описательные статистический анализ
  • Анализ категорийных переменных и визуализация результатов
  • Корреляционный анализ и визуализация результатов
  • Сегментация с использованием k-Mean кластеризации и elbow метода
  • Анализ и визуализация кластеров
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 6.3K
Comments 1

Распознавание мяча в волейболе с OpenCV и Tensorflow

Python *Image processing *Artificial Intelligence TensorFlow *
После первого опыта распознавания спортивных движений у меня зачесались руки сделать что-нибудь еще в этом направлении. Домашняя физкультура уже казалась слишком мелкой целью, так что я замахнулся на игровые виды спорта.

Применение искусственного интеллекта к спорту — недавняя тенденция, но уже есть интересные материалы:


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

Сразу скажу, что с наскока распознать элементы игры получилось с невысокой точностью, так что пришлось придержать амбиции и пилить задачу по частям. И первая часть — про самый маленький, но необходимый объект.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 4.4K
Comments 8

Создание автоматической системы борьбы с злоумышленниками на сайте (фродом)

System Analysis and Design *Big Data *Data Engineering *
Последние примерно полгода я занимался созданием системы борьбы с фродом (fraudulent activity, fraud, etc.) без какой-либо начальной инфраструктуры для этого. Сегодняшние идеи, которые мы нашли и реализовали в нашей системе, помогают нам обнаруживать множество мошеннических действий и анализировать их. В этой статье я хотел бы рассказать о принципах, которым мы следовали, и о том, что мы сделали для достижения текущего состояния нашей системы, не углубляясь в техническую часть.
Читать дальше →
Rating 0
Views 1.1K
Comments 0

Новые возможности анализа табличных данных с алгоритмами машинного обучения в Elastic

STEP LOGIC corporate blog Information Security *Big Data *Data visualization Machine learning *


Elastic stack, также известный как ELK Stack (аббревиатура из программных компонентов: Elasticsearch, Kibana и Logstash), — это платформа построения озера данных с возможностью аналитики по ним в реальном масштабе времени. В настоящее время широко применяется для обеспечения информационной безопасности, мониторинга бесперебойности и производительности работы ИТ-среды и оборудования, анализа рабочих процессов, бизнес-аналитики.


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


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

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 2.7K
Comments 2

Как работать с иерархической структурой классов

Контур corporate blog Programming *Machine learning *Data Engineering *

Задача классификации - одна из самых известных в машинном обучении. Очень многие проблемы, решаемые с помощью ML, так или иначе сводятся к классификации — распознавание изображений, например. И все выглядит просто и понятно, когда нам нужно определить объект в один из нескольких классов. А что если у нас не плоская структура из нескольких классов, а сложная разветвленная иерархия на 683 категории? Именно о таком случае мы сегодня и поговорим. Под катом - рассказ о том, зачем в задачах классификации нужны сложные иерархии и как с ними жить.

Читать далее
Total votes 3: ↑2 and ↓1 +1
Views 2.6K
Comments 1