Рубрика «data mining» - 42

В 2016/2017 годах мы обнаружили, что на каждой из наших конференций есть 1-3 доклада о Big Data, нейросетях, искусственном интеллекте или машинном обучении. Стало понятно, что под эту тему можно собрать хорошую конференцию, о чём я сегодня вам и расскажу.

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

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

Учёные строят нейросети в теории, архитекторы делают распределённые системы для корпораций с целью обработки огромных потоков данных в реальном времени, без конечной цели унифицировать к ним доступ, инженеры-практики пишут под это всё софт для сугубо узких задач, которые потом нереально перенести на что-то другое. В общем, каждый копает свою грядку и не лезет к соседу… Так? Да нет же!

На деле: Все занимаются частью общего. Как сама Smart Data (а «умные данные» — это очень узкий перевод) по природе своей, так и те, кто с ней работает, по сути, делают распределённую сеть различных наработок, которые могут создавать порой неожиданные сочетания. Это и формирует фундамент Умных данных в своей красоте и практической значимости.

Итак, что это за кусочки паззла и кто их создает, можно будет посмотреть и даже обсудить с создателями на конференции SmartData 2017 Piter 21 октября 2017. Подробности под катом.

image

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

Привет! Продолжаем серию материалов от выпускника нашей программы Deep Learning, Кирилла Данилюка, об использовании сверточных нейронных сетей для распознавания образов — CNN (Convolutional Neural Networks).

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

Spatial Transformer Network (STN) — один из примеров дифференцируемых LEGO-модулей, на основе которых можно строить и улучшать свою нейросеть. STN, применяя обучаемое аффинное преобразование с последующей интерполяцией, лишает изображения пространственной инвариантности. Грубо говоря, задача STN состоит в том, чтобы так повернуть или уменьшить-увеличить исходное изображение, чтобы основная сеть-классификатор смогла проще определить нужный объект. Блок STN может быть помещен в сверточную нейронную сеть (CNN), работая в ней по большей части самостоятельно, обучаясь на градиентах, приходящих от основной сети.

Весь исходный код проекта доступен на GitHub по ссылке. Оригинал этой статьи можно посмотреть на Medium.

Чтобы иметь базовое представление о работе STN, взгляните на 2 примера ниже:

Распознавание дорожных знаков с помощью CNN: Spatial Transformer Networks - 1

Слева: исходное изображение. Справа: то же изображение, преобразованное STN. Spatial transformers распознают наиболее важную часть изображения и затем масштабируют или вращают его, чтобы сфокусироваться на этой части.
Читать полностью »

План статьи

  1. Постановка задачи.
  2. Формальное описание задачи.
  3. Примеры задач.
  4. Несколько примеров на синтетических данных со скрытыми линейными зависимостями.
  5. Какие ещё скрытые зависимости могут содержаться в данных.
  6. Автоматизация поиска зависимостей.

  • Число признаков меньше пороговой величины.
  • Число признаков превышает пороговую величину.

Постановка задачи

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

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

Формальное описание задачи

Перед нами ставится задача классификации L объектов, заданных n вещественными числами. Мы будем рассматривать простой двухклассовый случай, когда метки классов — это −1 и +1. Наша цель — построить линейный классификатор, то есть такую функцию, которая возвращает −1 или + 1. При этом набор признаковых описаний таков, что для объектов противоположных классов, измеренных на данном множестве признаков, практически не работает гипотеза компактности, а разделяющая гиперплоскость строится крайне неэффективно.

Иными словами, всё выглядит так, будто задача классификации на данном множестве объектов не может быть решена эффективно.
Читать полностью »

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

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

Аналитика в госсекторе: особенности больших систем хранения данных - 1 Читать полностью »

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

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

Однако сейчас персональные рекомендации становятся “must have” для классифайдов (и не только) по всему миру. Мы хотим помогать пользователю в поиске того, что ему нужно. Уже сейчас всё более значительная доля просмотров объявлений на Avito производится с рекомендаций на главной странице приложений или рекомендаций похожих объявлений на карточке товара. В этом посте я расскажу, какие именно задачи решает наша команда в Avito.

Рекомендации на Avito - 1

Читать полностью »

Визуализация результатов выборов в Москве на карте в Jupyter Notebook - 1
Всем привет!

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

В качестве примера возьмем недавно отгремевшие муниципальные выборы в Москве. Сами данные можно взять с сайта мосгоризбиркома, в можно просто забрать датасеты с https://gudkov.ru/. Там даже есть какая-никакая визуализация, но мы пойдем глубже. Итак, что же у нас в итоге должно получиться?

Читать полностью »

Сбор данных из различных источников, преобразование с целью унифицирования либо удобства довольно распространенная задача. Конечно, в большинстве случаев можно обойтись собственным решением, но чтобы оно было гибким и легко расширяемым придется потратить немало времени. В таком случае разумным будет воспользоваться готовым решением. Talend Open Studio (TOS) одно из таких решений.

Меня несколько удивило отсутствие статей про работу с TOS на Хабре. Возможно, тому есть причины, мне непонятные. Как бы то ни было, постараюсь восполнить этот пробел.

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

Представьте: вы открываете приложение, чтобы в очередной раз заказать такси в часто посещаемое вами место, и, конечно, в 2017 году вы ожидаете, что все, что нужно сделать – сказать приложению «Вызывай», и такси за вами тут же выедет. А куда вы хотели ехать, через сколько минут и на какой машине — все это приложение узнает благодаря истории заказов и машинному обучению. В общем-то все, как в шутках про идеальный интерфейс с единственной кнопкой «сделать хорошо», лучше которого только экран с надписью «все уже хорошо». Звучит здорово, но как же приблизить эту реальность?

Как мы обучали приложение Яндекс.Такси предсказывать пункт назначения - 1

На днях мы выпустили новое приложение Яндекс.Такси для iOS. В обновленном интерфейсе один из акцентов сделан на выборе конечной точки маршрута («точки Б»). Но новая версия – это не просто новый UI. К запуску обновления мы существенно переработали технологию прогнозирования пункта назначения, заменив старые эвристики на обученный на исторических данных классификатор.

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

Читать полностью »

«Сила машинного обучения окружает нас, методы её окружают нас и связывают. Сила вокруг меня, везде, между мной, тобой, решающим деревом, лассо, гребнем и вектором опорным»

Так бы, наверное, мне сказал Йода если бы он учил меня пути Data Science.

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

В прошлых двух статьях мы решали задачу классификации источников света по их спектру (на Python и C# соответственно). В этот раз попробуем решить задачу классификации светильников по их кривой силе света (по тому пятну которым они светят на пол).

Если вы уже постигли путь силы, то можно сразу скачать dataset на Github и поиграться с этой задачей самостоятельно. А вот всех, как и я новичков прошу подкат.

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

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

Анализируем требования рынка для data scientist - 1

В первую очередь сформулируем задачу и разработаем план:
Задача:
Посмотреть все вакансии на рынке и узнать общие требования, указанные в них.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js