Чтобы рассказать что-то релевантное всем слушателям, которые могли быть очень неоднородны по знаниям и умениям, я выбрал тему, которую пропагандировал несколько лет назад… решать можно (и часто нужно) простыми методами, буквально в несколько строк. Ниже сокращённое описание доклада.

simple - Простые методы анализа данных

Анализ данных всегда начинается с разведывательного анализа данных (EDA), который, кроме основной цели «понять, как устроены данные», имеет ещё несколько важных подцелей:

  • найти «волшебные признаки» (которые почти решают задачу, или с помощью которых чётко видны какие-то паттерны),
  • понять, как «меняются признаки» (насколько можно верить данным или синтезируемым признаковым описаниям при изменении времени или категорий объектов),
  • использовать контекст (= экспертные знания, нашу интуицию и т.п.),
  • выявить информационные утечки (не содержат ли описания явно/неявно  лишнюю информацию),
  • построить простые бенчмарки (алгоритмы в несколько строчек кода, которые надёжны, интерпретируемы и т.п.).

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

Классификация сигналов в 34 символа

Когда-то (в докэгловскую эпоху — в 2008 году) я принимал участие в соревновании «Ford Classification Challenge».  Необходимо было разработать алгоритм, который по сигналу датчика детектирует поломку. Сигналы классов: 1 (есть поломка) и 0 (нет) показаны на рис. 1.

signals  - Простые методы анализа данных

Рис. 1. Сигналы разных классов в задаче FCC-2008.

Здесь, чтобы не загромождать картинку, показано всего 4 сигнала, но если проанализировать большее число, то будет заметно, что сигналы

  • непериодические (хотя и напоминают колебания),
  • не содержат заметных паттернов,
  • неоднородные.

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

means  - Простые методы анализа данных

Рис. 2. Средние значения сигналов в начале и конце.

Кроме того, не находятся и волшебные признаки (по которым классы неплохо разделялись)… Когда фантазия по придумыванию признаков заканчивается, можно «поменять сигнал». Например, придумывать признаковое описание не самого сигнала, а его производной, см. рис. 3. На первый взгляд, на рис. 3 не видно ничего хорошего…

diff  - Простые методы анализа данных

Рис. 3. Среднее и дисперсия модуля производной.

Но если увеличить масштаб…

diff large - Простые методы анализа данных

Рис. 4. Увеличение рис. 3.

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

feature - Простые методы анализа данных

Рис. 5. Среднее модуля производной vs число точек с нулевой производной.

Казалось бы мы нашли волшебный признак — число точек (понятно, что лучше взять процент), в которых производная обратилась в ноль! Но давайте на этом не остановимся… Как можно обобщить выражение, которое подсчитывает число точек с нулевой производной? На рис. 6 показано два способа:

  1. Вместо подсчёта числа точек, в которых разница текущего и следующего значения равна нулю, можно задаться некоторым порогом (чтобы разница отличалась не больше, чем на этот порог).
  2. Можно считать совпадения не соседних значений, а вообще — все совпадения, которые есть в сигнале (это, правда, не обобщение, а модификация идеи).
2formulas 1 - Простые методы анализа данных

Рис. 6. Два обобщения формулы.

На рис. 7 показана диаграмма рассеивания в координатах двух новых признаков, построенных по обобщениям (1) и (2). Обобщение (1) провалилось, но зато обобщение (2) оказалось идеальным признаком! По нему обучающая выборка разделяется со 100%-й точностью!

new features - Простые методы анализа данных

Рис. 7. Диаграмма рассеивания по обобщениям волшебного признака.

После окончания соревнования выяснилось, что и на тестовой выборке точность также 100% (тогда не было публичных турнирных таблиц, каждый участник делал всего одну отсылку, по которой и считалось качество) — она была лишь у одного участника и была получена с помощью 34 символов кода в системе Matlab

2*((sum(diff(sort(X'))==0)<20)'-1)

Чтение мысли с помощью параллельного переноса

Ещё одна история из давних времён… В начале 2000х проводилась серия соревнований «Brain Computer Interface», в которых предлагались задачи анализа сигналов головного мозга. В частности, сейчас я расскажу об одном решении бинарной классификации кортикограмм. Особенность задачи состояла в том, что обучающая и контрольная выборки были собраны в разные дни… для сигналов головного мозга это означает, что они будут очень непохожими (меняется эмоциональное состояние испытуемого, сопротивление проводников, даже точки установок электродов для снятия сигналов).

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

f space - Простые методы анализа данных

Рис. 8. Признаковое пространство в задаче классификации кортикограмм.

Поэтому в этой задаче решение было примитивным… пороговое правило по очень простому признаку. Порог выбран не с помощью скользящего контроля на обучении (как принято), а просто «по картинке» (верхнее облако теста — класс 1, нижее — класс 0).  Это, кстати, обеспечило 3е место в соревновании, в котром принимали участие лаборатории, специализирующиеся на BCI (первое место заняла китайская лаборатория, использовавшая SVM над CSSD + FDA + WM + FDA).

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

Узнайте о других решениях

Утечки («лики») в данных

Сейчас уже ликами никого не удивишь и рассказы победителей разных соревнований на 70% состоят из того, как они нашли что-то в данных, от чего зависит решение (хотя это и не может быть использовано при реальной эксплуатации алгоритма — только для фиксированного набора данных).

Автор первый раз столкнулся с ликами где-то 6 лет назад на платформе crowdanalytix. Там решалась задача определения реакции пользователя на рассылку: откликнется (1) или нет (0). Упрощённо (выбрасывая некоторые признаки) обучающая таблица выглядела так:

table - Простые методы анализа данных

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

table2 - Простые методы анализа данных

Нетрудно видеть, что если какое-то предложение было успешным (y=1), то число успешных предложений увеличивалось на единицу в следующей строке. Понятно, что даже если y нам не известен он почти полностью (кроме последнего значения) восстанавливается по парам (число предложенией, число успешных) для каждого клиента! Это следует просто из названий признаков. Любопытно, что только 5 участников из 55 тогда заметили это (т.е. использовали смысл признаков для решения задачи). Полезно также отметить, что культура решения задач заметно выросла за 6 лет. Думаю, сейчас больший процент решателей понимают, что названия признаков тоже важны.

Кстати, подобный лик повторила компания WikiMart, когда устраивало своё соревнование. Тогда в данных был признак «число страниц в сессии», «номер страницы по порядку посещения», нужно было определить, является ли текущая страница последней в сесии пользователя…

kNN жив!

Не всегда задачи решаются сложными методами. Есть простые и довольно универсальные методы, которые работают. Например, метод k ближайших соседей (kNN) и различные его обобщения. В соревновании VideoLectures.Net Recommender System Challenge нужно было разработать рекомендательную систему, причём, в одной из подзадач — для работы в режиме холодного старта (cold start): надо рекомендовать новые видео (для них нет статистики просмотров) для совершенно нового пользователя (для которого нет истории поведения, но есть информация о первом просмотренном видео) на ресурсе видеолекций. Простая идея: давайте синтезируем «хорошую» метрику на множестве видео-лекций и решим задачу обычным ближайшем соседом (к уже просмотренной лекции порекомендуем самые похожие из новинок).

А как сделать метрику? Легко придумать метрики для частей описания видео-лекции:

  • Сравнение категорий видео (хэмингово расстояние — совпадают или нет)
  • Сравнение авторских коллективов (косинусная мера сходства на характеристических векторах авторов)
  • Сравнение языков (хэмингово расстояние — совпадают или нет)
  • Сравнение названий (любая метрика над текстами)
  • Сравнение описаний (любая метрика над текстами)
  • и т.п.

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

Резюме

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

Методы анализа

Напишите нам

и мы ответим в течении часа

support@asu-analitika.ru

prodvizhenie 1200x350 66x66 - Простые методы анализа данных
Что выбрать Spotfire,Tableau,Microsoft BI или Qlik Sense?

Конечно, Tableau и Spotfire предлагают унифицированное представление данных, но не настолько эффективно, как QlikSense. QlikSense …

business analytics vs business intelligence 66x66 - Простые методы анализа данных
Сравнение топ-4 популярных BI платформ. Какую выбрать?

Загрузить программу ВІ Демонстрации решений Сегодня существует огромное количество BI-платформ и инструментов визуализации данных, которые …

131 66x66 - Простые методы анализа данных
Gartner BI Magic Quadrant 2019: обзор лидеров рынка

Загрузить программу ВІ Демонстрации решений В январе Gartner традиционно выпускает масштабное исследование рынка систем бизнес-аналитики, …

sap 7 66x66 - Простые методы анализа данных
Начало работы с Tibco Spotfire Desktop

Загрузить программу ВІ Демонстрации решений Для успешной работы с продуктами Tibco Spotfire, Вам потребуется 10 …

quienes somos 03 66x66 - Простые методы анализа данных
Цены на продукты

Загрузите бесплатно Демонстрация Мы подготовили для Вас ориентировочные цены на различные продукты и пакеты программ, …

img243 66x66 - Простые методы анализа данных
Видео демонстрации и обучение

Видео материалы по Tibco Spotfire Лучше один раз увидеть ! Обучающие видео, презентации и комментарии …

46009d452fee4dc89c8c9f4e396ed6cb 66x66 - Простые методы анализа данных
Что такое Business Intelligence

Загрузить программу ВІ Демонстрации решений Существует огромное количество терминов: аналитика, data mining, анализ данных, business …

10 66x66 - Простые методы анализа данных
Розничная торговля: анализ переменных кросс-продаж для увеличения доходов

Загрузить программу ВІ Демонстрации решений Легко и просто создавайте и разворачивайте статистический анализ данных многократного …

tibco soft 1 66x66 - Простые методы анализа данных
Основы предиктивной аналитики для менеджеров

Загрузить программу ВІ Демонстрации решений Компаниям, добывающим драгоценные камни бизнес-инсайтов из больших данных, просто необходимы исследователи …

19 66x66 - Простые методы анализа данных
Используйте аналитику и обнаружение данных, чтобы определить, чего действительно хотят ваши клиенты

Загрузить программу ВІ Демонстрации решений Опросы клиентов и фокус-группы могут помочь руководителям лучше понять потребности …

active icon pdf - Простые методы анализа данных
Финансовая аналитика
active icon pdf - Простые методы анализа данных
Наша компания
active icon pdf - Простые методы анализа данных
Tibco Spotfire

Несколько видео о наших продуктах

085 - Простые методы анализа данных
Проиграть видео
Презентация аналитической платформы Tibco Spotfire
106 - Простые методы анализа данных
Проиграть видео
Отличительные особенности Tibco Spotfire 10X
1 11 - Простые методы анализа данных
Проиграть видео
Как аналитика данных помогает менеджерам компании
2019-08-06T00:36:48+00:00

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.