В статье рассказываем про основные этапы сбора информации, следуя которым, можно подготовить качественные данные в нужном для анализа объеме. Данная методика — не жесткий набор инструкций, а список рекомендаций, которых желательно придерживаться.
B процессе анализа данных (Data Mining) используются алгоритмы машинного обучения, позволяющие прогнозировать развитие ситуации, выявлять закономерности, оценивать значимость факторов и т.п.
Подобных алгоритмов разработано множество, но даже самые мощные из них не способны гарантировать качественный результат. Алгоритмы машинного обучения могут найти закономерности в данных, только если сведения корректно собраны. На практике чаще всего именно проблемы с данными являются причиной неудач.
Ниже описаны этапы сбора информации, следуя которым, можно подготовить качественные данные в нужном для анализа объеме. В предлагаемой методике все достаточно просто и логично, но, несмотря на это, неопытные аналитики почти всегда допускают одни и те же тривиальные ошибки. Следование описанным правилам повысит вероятность получения качественного результата. Данные методика — не жесткий набор инструкций, а, скорее, список рекомендаций, которых желательно придерживаться.
Общая схема применения алгоритмов Data Mining состоит из следующих шагов (подробнее в статье «Методика анализа данных»):
При этом на любом из этапов возможен возврат на один или несколько шагов назад.
Данная последовательность действий не зависит от предметной области, поэтому ее можно использовать для любой сферы деятельности.
Гипотезой считается предположение о влиянии определенных факторов на исследуемый процесс. Форма зависимости значения не имеет. Т.е. в процессе выдвижения гипотезы можно сказать, например, что на продажи влияет отклонение нашей цены на товар от среднерыночной, но при этом не указывать, как именно этот фактор влияет на продажи. Для определения формы и степени выявления зависимостей и используется машинное обучение.
Автоматизировать процесс выдвижения гипотез не представляется возможным, по крайней мере, на современном уровне развития технологий. Эту задачу должны решать эксперты — специалисты в предметной области. Полагаться можно и нужно на их опыт и здравый смысл. Необходимо максимально использовать их знание о предмете и собрать как можно больше гипотез/предположений.
Для этих целей хорошо зарекомендовала себя тактика мозгового штурма, в процессе которого собираются и систематизируются все идеи без попытки произвести оценку их адекватности. Результатом данного шага должен быть список с описанием всех предложенных экспертами факторов.
Например, для задачи прогнозирования спроса это может быть список следующего вида: сезон, день недели, объемы продаж за предыдущие недели, объем продаж за аналогичный период прошлого года, рекламная компания, маркетинговые мероприятия, качество продукции, бренд, отклонение цены от среднерыночной, наличие товара у конкурентов.
В процессе подбора влияющих факторов необходимо абстрагироваться от существующих информационных систем и имеющихся в наличии данных. Очень часто аналитики за отправную точку хотят взять данные из существующих учетных систем. Звучит это примерно следующим образом: «У нас есть такие-то данные: что можно на них получить?».
На первый взгляд, это выглядит логично, но является порочной практикой. В процессе анализа надо отталкиваться от решаемой задачи и подбирать под нее данные, а не брать имеющуюся информацию и придумывать, что из них можно «выжать». Надо учитывать, что учетные системы собирают информацию, необходимую для выполнения своих задач, например, то, что важно для составления бухгалтерского баланса бессмысленно для решения задачи сегментации клиентов.
После подготовки таблицы с описанием факторов нужно экспертно оценить значимость каждого из них. Эта оценка не является окончательной — она будет считаться отправной точкой. В процессе анализа может оказаться, что фактор, который эксперты посчитали важным, таковым не является, и, наоборот, незначимый с их точки зрения атрибут оказывает значительное влияние.
Чаще всего количество гипотез велико, поэтому собрать и проанализировать все данные не представляется возможным. Необходимо взять за основу разумно ограниченный список факторов. Самое простое — отталкиваться от экспертной оценки значимости атрибутов. Тем более, что довольно часто реальные данные подтверждают их мнение.
Результатом этого шага может быть таблица следующего вида:
Показатель | Экспертная оценка значимости (1-100) |
---|---|
Сезон | 100 |
День недели | 80 |
Объем продаж за предыдущие недели | 100 |
Объем продаж за аналогичный период прошлого года | 95 |
Рекламная кампания | 60 |
Маркетинговые мероприятия | 40 |
Качество продукции | 50 |
Бренд | 25 |
Отклонение цены от среднерыночной | 60 |
Наличие данного товара у конкурентов | 15 |
Далее необходимо определить способ представления данных, выбрав один из 4-х типов: – число, строка, дата, логическая переменная (да/нет).
Некоторые данные достаточно просто формализовать, т.е. определить способ их представления. Например, объем продаж в рублях — это число. Но часто возникают ситуации, когда непонятно, как представить фактор.
Чаще всего такие проблемы возникают с качественными характеристиками. Например, на объемы продаж влияет качество товара, но это довольно сложное понятие, которое не понятно как представить. Однако если данный атрибут действительно важен, то нужно придумать способ его формализации. Например, определять качество по количеству брака на тысячу единиц продукции, либо экспертно оценивать, разбив на несколько категорий – отлично/хорошо/удовлетворительно/плохо.
Далее необходимо оценить стоимость сбора нужных для анализа данных. Некоторые данные легко доступны, например, их можно выгрузить из существующих информационных систем. Но есть информация, которую сложно собрать, например, сведения о наличии товара у конкурентов. Поэтому необходимо оценить, во что обойдется сбор данных.
Чем больше данных для анализа, тем лучше. Их проще отбросить на следующих этапах, чем собрать новые сведения. К тому же необходимо учитывать, что не всегда экспертная оценка значимости факторов будет совпадать с реальной, т. е. в начале не известно, что на самом деле является значимым, а что нет. Из-за большой неопределенности, приходится отталкиваться от мнения экспертов относительно значимости факторов, но в действительности эти гипотезы могут не подтвердиться. Поэтому желательно собрать больше данных, чтобы иметь возможность оценить влияние максимального количества показателей.
Однако сбор данных не является самоцелью. Если информацию получить легко, то, естественно, нужно ее собрать. Если данные получить сложно, то необходимо соизмерить затраты на ее сбор и систематизацию с ожидаемыми результатами.
Есть несколько методов сбора, необходимых для анализа данных. Они перечислены в порядке увеличения стоимости:
Стоимость сбора информации различными методами существенно отличается по цене и времени, которое необходимо для этого. Поэтому нужно соизмерять затраты с ожидаемыми результатами. Возможно, от сбора некоторых данных придется отказаться, но факторы, которые эксперты оценили как наиболее значимые, нужно собрать обязательно, не смотря на стоимость этих работ, либо вообще отказаться от анализа.
Очевидно, что если эксперт указал некоторый фактор как важный, то исключать его неразумно. Мы рискуем провести анализ, ориентируясь на второстепенные малозначащие факторы, и, следовательно, получить модель, которая будет давать плохие и нестабильные результаты. Такая модель не представляет практической ценности.
Собранные данные нужно преобразовать к единому формату. Идеальный случай — загрузка в базу или витрину данных. Но можно использовать и более легковесные форматы, например, Excel или текстовой файл с разделителями.
Данные обязательно необходимо стандартизировать, т.е. одна и та же информация везде должна описываться одинаково. Обычно проблемы с единообразным представлением возникают при сборе информации из разнородных источников. В этом случае стандартизация является серьезной самостоятельной задачей, но ее обсуждение выходит за рамки данной статьи.
Для анализируемых процессов различной природы данные должны быть подготовлены специальным образом. Для простоты можно считать, что собранные данные могут быть трех видов:
Упорядоченные данные нужны для решения задач прогнозирования, когда необходимо на основе имеющихся исторических сведений определить, каким образом, скорее всего, поведет себя тот или иной процесс в будущем. Чаще всего в качестве одного из атрибутов выступает дата или время, хотя это и не обязательно. Речь может идти и о неких отсчетах, например, данные, собираемые с датчиков через фиксированное расстояние.
Для упорядоченных данных (обычно это временные ряды) каждому столбцу соответствует один фактор, а в каждую строку заносятся упорядоченные по времени события с единым интервалом между строками. Интервал между строками должен быть одинаковым, пропуски не допускаются. Кроме того, необходимо исключить группировки, промежуточные итоги и прочее, т. е. нужна обычная таблица.
NN | Дата | Частота закупок | Объем продаж(руб.) |
---|---|---|---|
1 | 01.05.2010 | 256 | 459874.00 |
2 | 02.05.2010 | 278 | 515687.00 |
Если для процесса характерна сезонность/цикличность, необходимо иметь данные хотя бы за один полный сезон/цикл с возможность варьирования интервалов (понедельное, помесячное…). Т.к. цикличность может быть сложной, например, внутри годового цикла квартальные, а внутри кварталов недельные, то необходимо иметь полные данные как минимум за один самый длительный цикл.
Максимальный горизонт прогнозирования зависит от объема данных:
Тут указана минимальная глубина погружения (история) для соответствующего горизонта прогнозирования, т.е. времени, на которое можно строить достаточно достоверные прогнозы. В случае отсутствия хотя бы такого объема прогнозирование, основанное на данных, будет невозможно. При этом надо учитывать, что при указанном минимальном объеме данных работают только самые простые алгоритмы. Сложный математический аппарат требует большего объема данных для построения модели.
В общем случае максимальный горизонт прогнозирования ограничивается не только объемом данных. Прогнозные модели исходят из предположения, что факторы, определяющие развитие процесса, будут в будущем оказывать примерно такое же влияние, что и на текущий момент. Данное предположение справедливо не всегда. Например, в случае слишком быстрого изменения ситуации, появления новых значимых факторов и т.п. это правило не работает.
Поэтому в зависимости от задачи требования к объему могут сильно изменяться. Однако необходимо принимать во внимание и то, что использование слишком большой глубины погружения так же нецелесообразно. В этом случае мы будем строить модель по старой не актуальной истории, и, следовательно, могут учитываться факторы, возможно уже утратившие свою значимость.
Неупорядоченные данные нужны для задач, где временной фактор не имеет значения, например, кредитный скоринг, диагностика, сегментация потребителей. В таких случаях мы считаем информацию о том, что одно событие произошло раньше другого несущественной.
Для неупорядоченных данных каждому столбцу соответствует фактор, а в каждую строку заносится пример (ситуация, прецедент). Упорядоченность строк не требуется. Не допускается наличие группировок, итогов и прочее — нужна обычная плоская таблица.
ID клиента | Стаж работы | Наличие автомобиля | Сумма кредита (руб.) |
---|---|---|---|
1 | больше 5 лет | Да | 150000.00 |
2 | меньше 5 лет | Нет | 125000.00 |
В собранных данных количество примеров (прецедентов), т.е. строк таблицы должно быть значительно больше количества факторов, т.е. столбцов. В противном случае высока вероятность, что случайный фактор окажет серьезное влияние на результат. Если нет возможности увеличить количество данных, то придется уменьшить количество анализируемых факторов, оставив наиболее значимые.
Желательно, чтобы данные были репрезентативными, т.е. покрывали как можно больше ситуаций реального процесса, а пропорции различных примеров (прецедентов) примерно соответствовали действительности. Цель Data Mining — выявить закономерности в имеющихся данных, поэтому, чем ближе данные к действительности, тем лучше.
Необходимо понимать, что алгоритмы машинного обучения не могут знать о чем-либо, что находится за пределами поданных на вход данных. Например, если при создании системы медицинской диагностики подавать только сведения о больных, то система не будет знать о существовании здоровых людей, и, соответственно, любой человек с ее точки зрения будет обязательно чем-то болен.
Транзакционные данные используются в алгоритмах поиска ассоциативных правил, этот метод часто называют «анализом потребительской корзины». Под транзакцией подразумевается несколько объектов или действий, сгруппированных в логически связанную единицу.
Часто данный механизм используется для анализа покупок (чеков) в супермаркетах. Но вообще речь может идти о любых связанных объектах или действиях, например, продажа туристических туров с набором сопутствующих услуг (оформление виз, доставка в аэропорт, услуги гида и прочее). Используя данный метод анализа, находятся зависимости вида, «если произошло событие А, то с определенной вероятностью произойдет событие Б».
Транзакционные данные для анализа необходимо подготовить в следующем виде:
Код транзакции | Товар |
---|---|
10200 | Йогурт «Чудо» 0.4 |
10200 | Батон «Рязанский» |
10201 | Вода «Боржоми» 0.5 |
10201 | Сахарный песок, пачка 1 кг |
10201 | Хлеб «Бородинсий» |
Код транзакции соответствует номеру чека, счета, накладной. Товары с одинаковым кодом входят в разовую покупку.
Описанного представления данных достаточно для работы обычных ассоциативных правил, где находятся связи между каждым объектом в отдельности. Пример, «Если купили «Йогурт «Чудо» 0.4», то приобретут и Батон «Рязанский»».
Существует еще алгоритм поиска обобщенных ассоциативных правил, когда имеется возможность найти связи не только между объектами, но и группами объектов. Например, при наличии информации о товарных группах, к которым относятся объекты, можно находить зависимости типа «Если купили Батон «Рязанский», то купят и что-нибудь из йогуртов». Для поиска обобщенных ассоциативных правил необходимо подготовить дополнительную информацию с деревом отношений между объектами — иерархией групп в следующем виде:
ID | ID предка | Объект |
---|---|---|
1 | Хлебобулочные изделия | |
2 | 1 | Хлеб |
3 | 1 | Булки |
4 | 2 | Батон «Рязанский» |
5 | 2 | Хлеб «Бородинский» |
6 | Молочные продукты | |
7 | 6 | Молоко |
8 | 6 | Йогурты |
9 | 8 | Йогурт «Чудо» 0.4 |
10 | 8 | «Растишка персиковый» 0.25 |
ID – уникальный номер объекта. ID предка – номер родительского объекта. Если объект корневой, то это поле должно быть пустым. В поле «Объекты» находятся как группы, так и товар.
Таблица с иерархией объектов соответствует следующей диаграмме.
Для анализа транзакционных данных помимо поиска ассоциативных правил могут применяться алгоритмы выявления последовательных шаблонов, т.е. определения закономерностей, что «после события А с определенной вероятностью произойдет событие Б». Данные для этого собираются так же, как и для поиска ассоциативных правил, но с добавлением временной метки события.
Код транзакции | Дата покупки | Товар |
---|---|---|
10200 | 12.05.2011 | Йогурт «Чудо» 0.4 |
10200 | 12.05.2011 | Батон «Рязанский» |
10201 | 14.05.2011 | Вода «Боржоми» 0.5 |
10201 | 14.05.2011 | Сахарный песок, пачка 1 кг |
10201 | 14.05.2011 | Хлеб «Бородинсий» |
Анализ транзакций целесообразно производить на больших наборах данных, иначе могут быть выявлены статистически необоснованные правила. Алгоритмы поиска ассоциативных связей и последовательных шаблонов способны быстро перерабатывать огромные массивы информации. Их основное достоинство заключается именно в масштабируемости, т.е. способности обрабатывать большие объемы.
Примерное соотношение между количеством объектов и объемом данных:
При недостаточном количестве транзакций целесообразно уменьшить количество анализируемых объектов, например, сгруппировать их.
Существует большое количество алгоритмов машинного обучения и их описание выходит за рамки данной статьи. Каждый из них имеет свои ограничения и решает определенный класс задач. На практике, чаще всего добиться успеха можно, комбинируя методы анализа.
В целом, можно дать следующие, не зависящие от Data Mining алгоритма, рекомендации по построению моделей:
При невозможности построения качественной модели следует вернуться на предыдущие шаги Data Mining процесса. К сожалению, ошибки могут быть допущены на любом шаге: может быть некорректно сформулирована первоначальная гипотеза, могут возникнуть проблемы со сбором необходимых данных и прочее. К этому нужно быть готовым, т.к. Data Mining — это исследование, т.е. процесс поиска ранее неизвестных закономерностей.
Для оценки адекватности полученных результатов необходимо привлекать экспертов в предметной области. Интерпретация модели, так же как и выдвижение гипотез, может и должно делаться экспертом, т.к. для этого нужно глубокое понимание процесса, выходящее за пределы анализируемых данных.
Кроме того, нужно воспользоваться и формальными способами оценки качества модели: тестировать построенные модели на различных выборках для оценки их обобщающих способностей, т.е. способности выдавать приемлемые результаты на данных, которые не предоставлялись системе при построении модели.
Дело в том, что некоторые механизмы анализа могут «запоминать» предъявленные ей данные и на них демонстрировать прекрасные результаты, но при этом полностью терять способность к обобщению и на тестовых (из неизвестных системе ранее) данных выдавать очень плохие результаты. При формальной оценке можно отталкиваться от идеи, что если на тестовых данных модель дает приемлемые результаты значит она имеет право на жизнь.
При получении приемлемых результатов нужно начать использование полученных моделей, но необходимо понимать, что начало применения не является завершением Data Mining проекта. Работать над совершенствованием моделей нужно всегда, т.к. по прошествии времени обязательно наступит момент, когда придется опять проходить описанный цикл. К тому же, после получения первых удовлетворительных результатов, обычно встает вопрос о повышении точности.
Необходимо периодически оценивать адекватность модели текущей ситуации, потому что даже самая удачная модель со временем перестает соответствовать действительности.
Другие материалы по теме: