Разное

Датамайнинг что такое: Data Mining: что внутри / Хабр

Добыча данных · Loginom Wiki

Синонимы: Разработка данных, Интеллектуальный анализ данных, DM

Разделы: Бизнес-задачи

Loginom: Data Mining

Data Mining — это методология и процесс обнаружения в больших массивах данных, накапливающихся в информационных системах компаний, ранее неизвестных, нетривиальных, практически полезных и доступных для интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности. Data Mining является одним из этапов более масштабной методологии Knowledge Discovery in Databases.

Знания, обнаруженные в процессе Data Mining, должны быть нетривиальными и ранее неизвестными. Нетривиальность предполагает, что такие знания не могут быть обнаружены путем простого визуального анализа. Они должны описывать связи между свойствами бизнес-объектов, предсказывать значения одних признаков на основе других и т.д. Найденные знания должны быть применимы и к новым объектам.

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

Знания должны быть представлены в виде, понятном для пользователей, которые не имеют специальной математической подготовки. Например, проще всего воспринимаются человеком логические конструкции «если, то». Более того, такие правила могут быть использованы в различных СУБД в качестве SQL-запросов. В случае, когда извлеченные знания непрозрачны для пользователя, должны существовать методы постобработки, позволяющие привести их к интерпретируемому виду.

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

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

Data Mining

Задачи бизнес-анализа формулируются по-разному, но решение большинства из них сводится к той или иной задаче Data Mining или к их комбинации. Например, оценка рисков — это решение задачи регрессии или классификации, сегментация рынка — кластеризация, стимулирование спроса — ассоциативные правила. Фактически задачи Data Mining являются элементами, из которых можно «собрать» решение большинства реальных бизнес-задач.

Для решения вышеописанных задач используются различные методы и алгоритмы Data Mining. Ввиду того, что Data Mining развивалась и развивается на стыке таких дисциплин, как математическая статистика, теория информации, машинное обучение и базы данных, вполне закономерно, что большинство алгоритмов и методов Data Mining были разработаны на основе различных методов из этих дисциплин. Например, алгоритм кластеризации k-means был заимствован из статистики.

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

Основателем и одним из идеологов Data Mining считается Пятецкий-Шапиро. Впервые термин был введен в 1989 году на одном из семинаров, посвященных технологиям поиска знаний в базах данных, проводимых в рамках Международной конференции по искусственному интеллекту (International Joint Conference on Artificial Intelligence) IJCAI-89.

НОУ ИНТУИТ | Лекция | Что такое Data Mining?

Аннотация: В лекции подробно рассмотрено понятие Data Mining. Описано возникновение, перспективы, проблемы Data mining. Дан взгляд на технологию Data Mining как на часть рынка информационных технологий.

«За последние годы, когда, стремясь к повышению эффективности и прибыльности бизнеса, при создании БД все стали пользоваться средствами обработки цифровой информации, появился и побочный продукт этой активности — горы собранных данных: И вот все больше распространяется идея о том, что эти горы полны золота».

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

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

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

Термин Data Mining получил свое название из двух понятий: поиска ценной информации в большой базе данных (data) и добычи горной руды (mining). Оба процесса требуют или просеивания огромного количества сырого материала, или разумного исследования и поиска искомых ценностей.

Термин Data Mining часто переводится как добыча данных, извлечение информации, раскопка данных, интеллектуальный анализ данных, средства поиска закономерностей, извлечение знаний, анализ шаблонов, «извлечение зерен знаний из гор данных «, раскопка знаний в базах данных, информационная проходка данных, «промывание» данных. Понятие «обнаружение знаний в базах данных » (Knowledge Discovery in Databases, KDD) можно считать синонимом Data Mining [1].

Понятие Data Mining, появившееся в 1978 году, приобрело высокую популярность в современной трактовке примерно с первой половины 1990-х годов. До этого времени обработка и анализ данных осуществлялся в рамках прикладной статистики, при этом в основном решались задачи обработки небольших баз данных.

О популярности Data Mining говорит и тот факт, что результат поиска термина » Data Mining » в поисковой системе Google (на сентябрь 2005 года) — более 18 миллионов страниц.

Что же такое Data Mining?

Data Mining — мультидисциплинарная область, возникшая и развивающаяся на базе таких наук как прикладная статистика, распознавание образов, искусственный интеллект, теория баз данных и др., см. рис. 1.1.

Data Mining как мультидисциплинарная область
Рис. 1.1. Data Mining как мультидисциплинарная область

Приведем краткое описание некоторых дисциплин, на стыке которых появилась технология Data Mining.

Понятие Статистики

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

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

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

Понятие Машинного обучения

Единого определения машинного обучения на сегодняшний день нет.

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

Одним из наиболее популярных примеров алгоритма машинного обучения являются нейронные сети.

Понятие Искусственного интеллекта

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

Термин интеллект (intelligence) происходит от латинского intellectus, что означает ум, рассудок, разум, мыслительные способности человека.

Соответственно, искусственный интеллект (AI, Artificial Intelligence) толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека. Искусственным интеллектом называют свойство интеллектуальных систем выполнять творческие функции, которые традиционно считаются прерогативой человека.

Каждое из направлений, сформировавших Data Mining, имеет свои особенности. Проведем сравнение с некоторыми из них.

Data Mining — добыча данных

Развитие методов записи и хранения данных привело к бурному росту объемов собираемой и анализируемой информации. Объемы данных настолько внушительны, что человеку просто не по силам проанализировать их самостоятельно, хотя необходимость проведения такого анализа вполне очевидна, ведь в этих «сырых» данных заключены знания, которые могут быть использованы при принятии решений. Для того чтобы провести автоматический анализ данных, используется Data Mining.

Data Mining – это процесс обнаружения в «сырых» данных ранее неизвестных нетривиальных практически полезных и доступных интерпретации знаний, необходимых для принятия решений в различных сферах человеческой деятельности. Data Mining является одним из шагов Knowledge Discovery in Databases.

Информация, найденная в процессе применения методов Data Mining, должна быть нетривиальной и ранее неизвестной, например, средние продажи не являются таковыми. Знания должны описывать новые связи между свойствами, предсказывать значения одних признаков на основе других и т.д. Найденные знания должны быть применимы и на новых данных с некоторой степенью достоверности. Полезность заключается в том, что эти знания могут приносить определенную выгоду при их применении. Знания должны быть в понятном для пользователя не математика виде. Например, проще всего воспринимаются человеком логические конструкции «если … то …». Более того, такие правила могут быть использованы в различных СУБД в качестве SQL-запросов. В случае, когда извлеченные знания непрозрачны для пользователя, должны существовать методы постобработки, позволяющие привести их к интерпретируемому виду.

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

Задачи, решаемые методами Data Mining:

  1. Классификация – это отнесение объектов (наблюдений, событий) к одному из заранее известных классов.
  2. Регрессия, в том числе задачи прогнозирования. Установление зависимости непрерывных выходных от входных переменных.
  3. Кластеризация
    – это группировка объектов (наблюдений, событий) на основе данных (свойств), описывающих сущность этих объектов. Объекты внутри кластера должны быть «похожими» друг на друга и отличаться от объектов, вошедших в другие кластеры. Чем больше похожи объекты внутри кластера и чем больше отличий между кластерами, тем точнее кластеризация.
  4. Ассоциация – выявление закономерностей между связанными событиями. Примером такой закономерности служит правило, указывающее, что из события X следует событие Y. Такие правила называются ассоциативными. Впервые эта задача была предложена для нахождения типичных шаблонов покупок, совершаемых в супермаркетах, поэтому иногда ее еще называют анализом рыночной корзины (market basket analysis).
  5. Последовательные шаблоны – установление закономерностей между связанными во времени событиями, т.е. обнаружение зависимости, что если произойдет событие X, то спустя заданное время произойдет событие Y.
  6. Анализ отклонений – выявление наиболее нехарактерных шаблонов.

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

Для решения вышеописанных задач используются различные методы и алгоритмы Data Mining. Ввиду того, что Data Mining развивалась и развивается на стыке таких дисциплин, как статистика, теория информации, машинное обучение, теория баз данных, вполне закономерно, что большинство алгоритмов и методов Data Mining были разработаны на основе различных методов из этих дисциплин. Например, процедура кластеризации k-means была просто заимствована из статистики. Большую популярность получили следующие методы Data Mining: нейронные сети, деревья решений, алгоритмы кластеризации, в том числе и масштабируемые, алгоритмы обнаружения ассоциативных связей между событиями и т.д.

Deductor является аналитической платформой, в которую включен полный набор инструментов для решения задач Data Mining: линейная регрессия, нейронные сети с учителем, нейронные сети без учителя, деревья решений, поиск ассоциативных правил и множество других. Для многих механизмов предусмотрены специализированные визуализаторы, значительно облегчающие использование полученной модели и интерпретацию результатов. Сильной стороной платформы является не только реализация современных алгоритмов анализа, но и обеспечение возможности произвольным образом комбинировать различные механизмы анализа.

Data Mining в онлайн играх / Хабр

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

Мы захотели узнать, почему уходят игроки и можно ли предсказать их уход. Предмет исследования – ММОРПГ Аион, однако наши результаты оказались применимы к широкому кругу игр и онлайн сервисов.

Чуть ли не британскими учеными установлено, что у пользователя очень короткая память. Сегодня он ушел из игры, а завтра уже не вспомнит, что он вообще ее устанавливал. Если игрок ушел, то действовать надо немедленно. Но как нам определить, действительно ли ушел человек, или просто сегодня вечером пьет пиво с друзьями и в игре не появится? Идеальным случаем было бы предсказание потенциального ухода еще до того, как пользователь нас покинул. И даже до того, как в его сознании зародилась мысль, что Аион не похож на торт. Наверное, такая задача тоже решаема, однако мы ставили более реалистичную цель – оперативно предсказывать уход в день последнего логина в игру. Уходом назовем неактивность человека в течение недели – и мы как раз не хотим ждать эти 7 дней, а желаем знать как можно скорее, что игрок больше не вернется. Мы желаем знать будущее!

Техническая сторона


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

На проект выделили часть ресурсов нашей системы аналитики – два блейд сервера Dual Xeon E5630 32Gb RAM, 10 Tb холодного хранилища для исходных и промежуточных данных, 3 Tb горячего хранилища в RAID10 SAS массиве для рабочих данных. Оба сервера под MS SQL 2008R2 – один под БД и один под Analysis Services. Программная часть решения – стандартный пакет Business Intelligence от Microsoft, входящий в SQL Server.

Фаза 1 – я все знаю!


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

Я одел шляпу «обычного юзера» и прошел бесплатное начало игры за обе расы и несколько классов, выписав все корявости, нелогичности и проблемы, сформировав первый список гипотез для проверки:

  • Раса и класс персонажей. Предполагалось, что класс будет самым сильным фактором, поскольку геймплей за Целителя разительно отличается от косящего всех направо и налево Мага.
  • Играл ли человек в другие игры – у нас единый аккаунт для всех проектов, так что легко проследить кросс-конверсию.
  • Попробовал ли игрок более 1 персонажа – познал ли другие классы и расу.
  • Сколько раз он умер на уровнях 1-4, 5-7 и сколько раз умер всего за триал.
  • Вступал ли в группы с другими игроками, в том числе с высокоуровневыми (т.е. явно знакомыми по другим играм или в реальной жизни)
  • Сколько на компьютере оперативной памяти, поскольку Аион требователен к ресурсам
  • Получал ли персонаж почту и вступал ли в гильдию – явный признак «твинков», вторичных персонажей, созданных уже активными и опытными игроками.
  • Сколько заданий выполнил персонаж к данному уровню, сколько заданий отменил и сколько просто не взял
  • Проходит ли игрок внутриигровые опросы, за которые дают хорошие плюшки
  • Какими умениями персонаж пользуется в бою и убивает монстров

Список получился внушительным, расписанный до деталей, и способов расстроить новичка до потери желания играть было найдено множество. Заводим в модель первые пару гипотез, предсказываем булеву переменную is_leaver – уйдет ли игрок прямо сейчас, на 7-ом уровне:
Как читать lift chart: нижняя наклонная прямая линия — это результат генератора случайных чисел, предсказывающего нашу булеву переменную научным методом бросания монетки. Верхняя линия, быстро доходящая до 100% — это оракул, идеальный предсказатель будущего. Между ними находится неровная, трепещущая ниточка – это наша модель. Чем ближе график к идеальной линии – тем выше предсказательная точность модели. График приведен для 7-го уровня, но картина похожая от первого до девятого.

Fatality! Наша первая модель предсказывает уходящих игроков чуть-чуть лучше метода орла и решки. Отправляем в модели оставшиеся гипотезы, чистим данные, процессим:


Уже лучше, но все равно точность чуть выше 50%. А если посмотреть детальнее recall (ошибки второго рода), то картина грустная:
Эта же таблица русским языком – из каждых 100 предсказанных моделью уходов 49 будут ложные (игрок никуда уходить не собирался), точность модели составит 1008/(1008+982)=51%. При этом еще часть реальных уходов модель вообще пропустит – примерно 28% из истинно ушедших [391/(391+1008)=28%]. Внимание, это не каноническое определение recall, но такая формула нагляднее.

Итог фазы 1: все изначальные идеи провалились, предсказание не работает. Шеф, все пропало!

Фаза 2 – мы ничего не знаем


Полный разгром и бегство с поля боя, и вечный вопрос «Что делать?». На помощь приходит наивный алгоритм Байеса – максимально человеко-читаемый и понятный из всех data mining классификаторов. Анализ Байесом показал, что выбранные гипотезы довольно слабо характеризуют ушедших и остающихся игроков, то есть я ошибся с выбором изначальных предпосылок. Но, поиграв с глубиной и чувствительностью другого алгоритма, дерева принятия решений, стало понятно – есть правильные гипотезы, дерево ветвится по ним, но факторов решительно недостаточно – рост дерева прерывается на 2-3 ветке.

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

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

Для изучения средней активности мы рассчитали несколько метрик:

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

На этом этапе заодно была переделана ETL часть проекта (загрузка, преобразование и очистка данных). Наш SQL-гуру Илья сделал на SSIS анализатор-конструктор, в который легко подключаются новые события из логов игры. Логов гигабайты, так что недостатка информации не было, а новые гипотезы придумывались каждый день.

Загрузили, обучили, верифицировали, проанализировали. Не буду грузить вас морем lift chart’ов по каждому уровню и каждой модели, приведу сразу обработанные и проанализированные данные:


Пик точности на 9 уровне был связан с внутренней особенностью игры на момент исследования.

В целом картина улучшилась в области 2-4 уровней, но 6-8 ниже плинтуса, с такой точностью данные нам просто бесполезны.

Дерево принятия решений бодро показывает – факторы активности являются самыми важными для предсказания ухода. По сути, три величины – время на уровне, убитые монстры и сделанные задания – определяют львиную долю уходов. Остальные факторы добавляют не более 5% точности. Также дерево по-прежнему остается голым, крона обрывается на третьей ветке – то есть модель жаждет больше релевантных метрик. Что еще непонятно – точность трех алгоритмов сильно меняется от уровня к уровню.

Итог фазы 2: успех идеи об измерении средней активности, а не индивидуальных факторов. Но точность предсказания все еще неудовлетворительна. Путь по граблям вывел к правильной последовательности анализа результатов – сначала факторы и корреляции (Байес), потом их влияние на итог (дерево решений).

Фаза 3 – мы знаем куда копать


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

Поэкспериментировав с активностью, мы остановились на следующем наборе:

  • Проведенное время на текущем уровне, на предыдущем уровне и суммарное время в игре к текущему моменту
  • Скорость убивания монстров – штук в минуту на текущем уровне, предыдущем и всего.
  • Скорость выполнения заданий в минуту – аналогично мобам.
  • Среднее время в игре на игровой день, проведенных дней в игре и НЕпроведенных дней (например, человек входил в понедельник и среду – пропущен 1 день).

Эти метрики дали хорошее снижение пропущенных случаев, практически в полтора раза. Дерево решений начало ветвиться до 9 узлов, что показывает релевантность метрик. Плюс хорошим признаком была унификация деревьев для разных уровней – если в прошлой фазе, как я писал, от уровня к уровню сильно скакала точность алгоритмов, то теперь было явно видно – дерево бьется на первом-втором-третьем узле ровно по одним и тем же показателям, независимо от уровня персонажа. И наивный Байес уже отстает от дерева и нейронной сети процентов на 5-10.

Пришлось повозиться с новыми индивидуальными метриками, связанными с глубиной геймплея и эффективностью игры, например процентом автоатаки. Мы сегментировали персонажей по классам (воины направо, целители налево) и для каждого класса рассчитали 25, 50 и 75-й перцентили распределения по %% автоатаки, и разбили всех на 4 категории. Теперь данные нормализованы, и игровые классы можно сравнивать между собой – на вход data mining моделей уходит номер категории.

В онлайн играх персонажи убивают врагов разными заклинаниями и способностями. Автоатака – бесплатный, самый базовый (и слабый) удар, дающийся с рождения. Если игрок эффективен, то он применяет способности своего персонажа – и %% автоатаки среди всех его ударов будет не очень высоким. Однако сильно от игровой механики зависит, какой же именно этот процент для разных классов. В Аионе получился разброс от медианы в 5% для мага до 70% для воина, и даже внутри класса дисперсия высока.

Индивидуальные метрики закрепились на глубине седьмого-девятого узла дерева, т.е. они прибавили пару процентов к точности предсказания, но не улучшили ситуацию кардинально. Следующим шагом было штудирование книги Data Mining with Microsoft SQL Server 2008 на предмет тонкостей работы с Analysis Services. Сама по себе книга помогла только с настройкой чувствительности дерева (от силы плюс один-два процента прироста точности), но натолкнула на мысль о правильной дискретизации.

В примере выше с автоатакой мы сделали ручную дискретизацию данных – разбиение на категории по каким-то признакам. SQL сервер автоматически делает дискретизацию несколькими способами. Экспериментальным путем я быстро понял, что алгоритм разбиения и число сегментов очень сильно влияют на предсказательную силу модели. Ручное изменение числа сегментов сильно влияет на форму и точность дерева. На ручную подгонку я потратил неделю, скрупулезно для каждой структуры каждого уровня (а это 9 уровней по 30+ метрик) экспериментируя с числом сегментов. Для каких-то метрик оптимальным было 7 сегментов (например, время на текущем уровне), для каких-то 12 (суммарное время в игре), для каких-то больше 20 (число убитых монстров).

Ручная настройка дала сильный прирост предсказанных значений – точность при этом не сильно повысилась, но модели стали делать заметно меньше пропусков, а результаты дерева сравнялись с нейронной сетью:


Итог фазы 3: мы вышли на приемлемые показатели точности и аккуратности и узнали много интересного про нашу игру и наших игроков.

Фаза 4 – только победа


Я, честно говоря, думал, что потолок достигнут – дерево ветвится глубиной до 9-12 узлов, аккуратность сильно улучшена. Новые гипотезы точность никак не повышают, новые факторы никакой информации не дают. В принципе, общая точность в 78% и recall 16% — это удовлетворительно для начала работы с игроками. Я бы, наверное, не стал при таких цифрах давать бесплатную подписку для удержания в игре, но сообщать игроку релевантную информацию уже можно без особых ошибок.

Помощь пришла неожиданно – поскольку data mining проект длился уже третий месяц, у нас несколько устарели логи – игра же изменилась за это время. Подгрузив немного свежих данных, а заодно в очередной раз доработав ETL процедуры, мы заметили изменения в моделях. На новых данных они вели себя иначе – при, в общем-то, прежней точности и аккуратности, разбиения дерева были другими. На этом этапе все три алгоритма обучались очень быстро – минуту на каждый уровень из 9, и накормить их дополнительным набором данных просто.

Сказано – сделано, выгружаем вообще все накопленные за 3 месяца данные и одним махом направляем модели обучаться (процесс стал занимать не минуту, а целых пять на каждый уровень – не критично). Очередной раунд ручной подгонки, и вот итог:



Увеличив объем обучающих данных, мы сделали процесс обработки дольше, но зато какой отличный результат!

С первым уровнем, к сожалению, немного можно сделать – около половины уходов, как сказал бы Авинаш Кошик, “I came, I puked, I left”. У нас есть данные о буквально паре действий игрока – и дальше он закрывает клиент игры и никогда не возвращается обратно.


Напоминаю, что все исследования выше – это обучение на накопленных исторических данных. Теперь я хочу проверки боем! Проверяем на живых данных – берем свежих, сегодняшних пользователей, прогоняем через модель и сохраняем результат предсказания. Через неделю сравниваем предсказания модели с объективной реальностью – кто из недельной давности новичков действительно ушел, а кто в игре остался:

Самое интересное


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

Достигнута ли вторая цель, знаем ли мы теперь почему уходят игроки? Нет. И это самый странный для меня результат – при отличной вероятности предсказания ухода, вопрос «А почему?» остается без ответа. Помните, я начал проект с выписывания гипотез об индивидуальных факторах, вида:

  • Раса и класс персонажа
  • Играл ли человек в другие игры Инновы
  • Попробовал ли игрок более 1 персонажа
  • Сколько раз он умер на уровнях 1-4, 5-7 и сколько раз умер всего
  • Вступал ли в группы с другими игроками
  • Сколько на компьютере оперативной памяти
  • Получал ли персонаж почту и вступал ли в гильдию
  • Сколько заданий выполнил персонаж к данному уровню, сколько заданий отменил и сколько просто не взял
  • Проходит ли игрок внутриигровые опросы
  • Какими умениями персонаж пользуется в бою и убивает монстров
Таких факторов было проверено множество — более 60. Ни один из них не является сколь-нибудь существенным и определяющим уход игрока. Ни один! Не нашли мы в игре какого-то магического барьера, который вызывает отток игроков.

Самый главный фактор? Прошел ли игрок первые 7 уровней в первый же день знакомства с игрой (7 уровней – это примерно 3 часа игры). Это ключевой предсказатель ухода – если в первую же сессию игрок не увлекся и не потратил 3 часа, то очень вероятно, что игру он бросит. Следующая по силе группа факторов – это общая активность игрока:

  • Проведенных минут в игре на текущем уровне, прошлом и суммарно
  • Минут нахождения в игре в среднем за игровой день
  • Убитых монстров в час на текущем уровне, прошлом и всего
  • Скорость выполнения заданий – штук в час

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

Победа!


За два месяца, с нуля – никто из нас никогда даже близко с data mining не сталкивался, — с помощью двух книг и желания попробовать что-то новое, на основе созданной нами мощной, но пассивной системы аналитики в Иннове, мы сделали инструмент, активно смотрящий в будущее. В отличие от обычной отчетности и аналитики трендов на исторических данных, мы в 6 утра уже знаем почти наверняка о наших вчерашних новичках в Аионе – увидим ли мы их сегодня в игре или нет. И можем действовать, пока еще не поздно.

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

PS. Если тема хабравчанам интересна, то можно продолжить – про предсказание уходов старичков, сегментацию и кластеризацию, миграцию между кластерами и другие data mining проекты, которые мы сделали в уходящем году.

PS2. Вторая книга, рекомендую абсолютно всем — Программируем коллективный разум

Бизнес кейсы использования Data Mining. Часть 1 / Хабр

Привет, хабр.
Очень рад, что тема Data Mining интересна сообществу.

В данном топике (а если понравится, — в серии топиков) расскажу, какие примеры использования Data Mining есть в Российском и не только бизнесе. Почему я пишу об этом? Я работаю в компании, которая тесно связана с ВЦ РАН (Вычислительный центр Российской академии наук), что позволяет нам иметь отличный научно-исследовательский отдел и разрабатывать новые проекты, применяя отечественные достижения в математике. В данном топике будет больше бизнеса, чем науки, но если последняя все же вас интересует, тогда вам сюда: mmro.ru или сюда: www.machinelearning.ru

Итак, поехали:

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

Пример1. Ритейл (торговые сети).

Большая торговая сеть, например Копейка, Перкресток, Пятерочка, Ашан, имеет сотни магазинов по всей РФ, десятки тысяч активных товаров. Данные о продажах каждого товара (SKU) в каждом конкретном магазине в каждый момент времени (день или час) хранится в учетной системе компании.
Торговая сеть ежедневно должна заказывать товары в свои магазины. Т.е. ежедневно в матрице, например [5000 Х 10 000] должно стоять значение — сколько везти этого товара?

Если торговая сеть закажет меньше, чем будет реальный спрос, то получит УБЫТКИ из-за дефицита (и потеряет наценочную стоимость), если сеть закажет больше товаров, чем будет реальный спрос, то получит УБЫТКИ из-за стоимости хранения товароов на складе, замороженных средств, порчи товара после истечения срока годности. Эти два типа убытков называются соответственно out-of-stock и over-stock.

Что же делать? На основе накопленной истории по товародвижениям в каждом магазине и каждому товару можно научиться на прецедентах и построить прогнозирующую модель, которая будет учитывать:
1. Недельную сезонность (например, водка продается начиная с четверга, энергетики продаются больше по пятницам)
2. Годовая сезонность (например, пиво покупают летом больше)
3. Праздники (например, Советское шампанское продается в 100 раз больше чем в среднем на 8 марта, 31 декабря, 23 февраля)
4. Промо-акции (например, всплеск продаж песиколы в сентябре — это не годовая сезонность, а эффект от проведения промо-акции с Бритни :))

В любой data-mining задаче важно грамотно очистить данные перед работой и построением моделей. Поэтому в случае с продажами, важно обучаться не на реальных продажах, а на «восстановленном спросе». Что это?
Допустим конфеты у вас продавались в течении месяца равномерно, а в последнюю неделю их не завезли и продажи были равны 0. Это ведь не означает, что не было спроса (и в последней неделе следующего месяца спроса тоже не будет :)). Поэтому в данной ситуации важно восстановить спрос в местах отсутствия продаж.

А что делать, если у вас появляется новый товар (по которому еще нет истории)? В данном случае важно смотреть на историю по товарной группе. Например появления чая «icetea lipton персиковый» можно прогнозировать по товарной группе «холодные чаи», при этом не забыть учесть фактор «как появление нового товара в истории отражалось на продажах в целом по группе».
Тоже самое происходит с новыми магазинами — сколько товаров заказывать во вновь открывшийся магазин? Нужно найти «похожий» магазин и первое время прогнозировать на основе его истории, а потом плавно переключиться на историю нового магазина.
Все это задачи работы с данными в data minnig.

Ежедневно системы прогнозирования в ритейле обрабатывают гигабайты (а где-то терабайты) данных, что сделать прогноз и ответить на вопрос: Сколько каждого конкретного товара заказать в каждый конкретный магазин, чтобы сократить финансовые издержки и максимально учесть (спрогнозировать) спрос.
Если у вас 1-2 магазина и несколько тысяч позиций — человек вам спрогнозирует лучше любой машины, но когда у вас WallMart и сотни тысяч товаров на полках — никакая армия аналитиков и товароведов не справятся с решениям такой задачи, именно поэтому в торговых сетях так пристально обращают внимание на автоматизация бизнес-процессов.
ФАКТ: улучшение прогнозирующей модели способно снизить издержки торговой сети на 1-2 процента от оборота. А теперь подумайте, какие это деньги, учитывая тот факт, что оборот крупнейших российских сетей — от 1 миллиарда долларов.

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

Что такое датамайнинг и зачем он нужен игроку?

Поделись с друзьями

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

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

И вот почему

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

Особенно актуальным является тот аспект майнинга, что при активном мультитейблинге  зачастую не уследишь за какими-то мелочами или редкими ситуациями, информация о которых нередко может решить исход раздачи. Благодаря датамайнингу к распоряжению игрока представлены не только базовые показатели типа VPIP/PFR/3Bet, но и вообще всё, что только можно знать о его игре (о чём он, возможно, даже не подозревает сам), включая, например, частоту третьего барреля в блеф в 3бет-потах или процент чек-рейза на сухих спаренных флопах.

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

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

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

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

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

Инструментарий — Theano / Хабр


В предыдущих материалах этого цикла мы рассматривали методы предварительной обработки данных при помощи СУБД. Это может быть полезно при очень больших объемах обрабатываемой информации. В этой статье я продолжу описывать инструменты для интеллектуальной обработки больших объёмов данных, остановившись на использовании Python и Theano.

Рассмотрим задачи, которые мы будем решать, и какими инструментами для этого воспользуемся. Читать предыдущие части [1,2,3] желательно, но не обязательно. Исходные данные, которые были получены в результате выполнения предыдущих частей цикла статей можно взять отсюда[Исходные данные].
Задачи

Если среди данных есть скрытые взаимосвязи, корреляция между признаками, структурные связи, то в таком случае возникает задача уменьшения размерности входных данных. Эта проблема особенно ярко себя проявляет в ситуации, когда обрабатывается большое число разреженных данных.
Для сравнения методов уменьшения размерности данных мы собираемся рассмотреть метод нейросетевого сжатия (Autoencoder) и метод главных компонент (PCA).
Классический путь решения этой задачи — метод анализа главных компонент (PCA). В википедии неплохо описано [4], там же есть ссылка [5] на сайт с примерами в Excel, и подробным и довольно понятным описанием. Вот еще ссылки на статьи на Хабре[6,7].
Как правило, результаты уменьшения размерности входных данных, в первую очередь сравнивают именно с результатами применения этого метода.
В статье [8] описано что такое автоенкодер и как он работает, потому основной материал будет посвящен именно реализации и применению этого подхода.
Бангио и Йошуа написали хороший и внятный обзор применения нейросетевого сжатия, если вдруг кому-нибудь нужна библиография и ссылки на работы в этом направлении, чтобы сравнивать свои результаты с существующими, в работе [9], раздел 4.6, стр. 48 — 50.
В качестве инструментария, я решил применять Python и Theano[10]. Этот пакет я обнаружил после прослушивания курсов Neural Networks for Machine Learning, изучая ссылки предоставленные преподавателем J. Hinton. При помощи этого пакета реализованы нейронные сети «глубокого обучения» (deep learning neural networks). Такого рода сети, как было описано в лекциях и статье [11, 12] легли в основу системы для распознавания голоса, используемой Google в Android.
Этот подход к построению нейронных сетей по мнению некоторых ученых является достаточно перспективным, и уже показывает неплохие результаты. Потому мне стало интересно применить его для решения задач на Kaggle.
Также, на сайте deeplearning.net достаточно много примеров построения систем машинного обучения с использованием именно этого пакета.
Инструменты

В документации разработчиков, дано такое определение:
Theano — это библиотека Python и оптимизирующий компилятор, которые позволяют определять, оптимизировать и вычислять математические выражения эффективно используя многомерные массивы
Возможности библиотеки:
  • тесная интеграция с NumPy;
  • прозрачное использование GPU;
  • эффективное дифференцирование переменных;
  • быстрая и стабильная оптимизация;
  • динамическая генерация кода на C;
  • расширенные возможности юнит-тестирования и самопроверок;

Theano используется в высокоинтенсивных вычислительных научных исследований с 2007 года.
По сути, программирование под Theano не является программированием в полном смысле этого слова, так как пишется программа на Python, которая создает выражение для Theano.
С другой стороны, это является программированием, так как мы объявляем переменные, создаем выражение которое говорит что делать с этими переменнымии компилируем эти выражения в функции, которые используются при вычислении.
Если кратко, то вот список того, что именно может делать Theano в отличии от NumPy.
  • оптимизация скорости выполнения: Theano может использовать g++ или nvcc для того чтобы откомпилировать части части вашего выражения в инструкции GPU или CPU, которые выполняются намного быстрее чистого Python;
  • диференциицирование переменных: Theano может автоматически строить выражения для вычисления градиента;
  • стабильность оптимизации: Theano может распознать некоторые численно неточно вычисляемые выражения и рассчитать их используя более надежные алгоритмы

Наиболее близкий к Theano пакет это sympy. Пакет sympy можно сравнить с Mathematica, в то время как NumPy более похож на пакет MATLAB. Theano является гибридом, разработчики которого попытались взять лучшие стороны обоих этих пакетов.
Скорее всего, в продолжение цикла, будет написана отдельная статью о том как настроить theano, подключить использование CUDA GPU к тренировке нейронных сетей и решать проблемы, возникающие при установке.
А пока, на моей операционной системе Linux Slackware 13.37 установлен python-2.6, setuptools-0.6c9-py2.6, g++, python-dev, NumPy, SciPy, BLAS. Подробный мануал по установке для распространеных ОС на английском языке: [12].
Прежде чем мы начнем снижать размерность данных, попытаемся реализовать простой пример использования Theano для написания функции, которая позволит нам решить нашу задачу о разбиении группы на две части.
В качестве метода для разбиения данных на два класса воспользуемся логистической регрессией[13].
Код примера основывается на [14] с некоторыми изменениями:
import numpy 
import theano
import theano.tensor as T
import csv as csv 

#Открываем и читаем csv файл
csv_file_object = csv.reader(open('./titanik_train_final.csv', 'rb'), delimiter='\t')
data=[]                                     #Создаем переменную-массив
for row in csv_file_object:      # Каждую строку
    data.append(row)                # заносим в  массив data
data = numpy.array(data)        # Превращаем обычный массив в тип numpy.array 
data = data.astype('float')        # Конвертируем в тип float
Y = data[:,1]                            # Все строки первого столбца заносим в Y
X = data[:,2:]                           # Все строки со второго столбца и до последнего заносим в X 
#Аналогично для тестовой выборки, только без Y
csv_file_object = csv.reader(open('./titanik_test_final.csv', 'rb'), delimiter='\t')
data_test=[]                         
for row in csv_file_object:     
    data_test.append(row)           
Tx = numpy.array(data_test)
Tx = Tx.astype('float')
Tx = Tx[:,1:]
#Создаем объект для получения случайных чисел
rng = numpy.random
#Количество строк
N = 891
#Количество столбцов
feats = 56
#Количество тренировочных шагов
training_steps = 10000

# Декларируем символьные переменные Theano 
x = T.matrix("x")
y = T.vector("y")
w = theano.shared(rng.randn(feats), name="w")
b = theano.shared(0., name="b")

# Создаем «выражение» Theano
p_1 = 1 / (1 + T.exp(-T.dot(x, w) - b))           # Вероятность того, что результат равен  1
prediction = p_1 > 0.5                                    # Порог для прогнозирования
xent = -y * T.log(p_1) - (1-y) * T.log(1-p_1) # Функция ошибки для перекрестной энтропии
cost = xent.mean() + 0.01 * (w ** 2).sum()  # Стоимость минимизации
gw,gb = T.grad(cost, [w, b])                          # Рассчитываем градиент стоимости
                                          
# Компилируем «выражение» Theano
train = theano.function(
          inputs=[x,y],
          outputs=[prediction, xent],
          updates=((w, w - 0.1 * gw), (b, b - 0.1 * gb)))
predict = theano.function(inputs=[x], outputs=prediction)

# Тренировка модели
for i in range(training_steps):
    pred, err = train(X, Y)

#Прогнозирование
P = predict(Tx)
#Сохраняем в файл
numpy.savetxt('./autoencoder.csv',P,'%i')
 

Наиболее интересными в этом коде являются строки:
# Создаем «выражение» Theano
p_1 = 1 / (1 + T.exp(-T.dot(x, w) - b))           # Вероятность того, что результат равен  1
prediction = p_1 > 0.5                                    # Порог для прогнозирования
xent = -y * T.log(p_1) - (1-y) * T.log(1-p_1) # Функция ошибки для перекрестной энтропии
cost = xent.mean() + 0.01 * (w ** 2).sum()  # Стоимость минимизации
gw,gb = T.grad(cost, [w, b])                          # Рассчитываем градиент стоимости
                                          
# Компилируем «выражение» Theano
train = theano.function(
          inputs=[x,y],
          outputs=[prediction, xent],
          updates=((w, w - 0.1 * gw), (b, b - 0.1 * gb)))
predict = theano.function(inputs=[x], outputs=prediction)
 

Здесь происходит следующее(разбираем с конца !): У нас есть два «выражения» train и predict. Они «компилируются»(это не только компиляция, но в начале изучения лучше будет упростить) при помощи theano.function в вид, который может быть потом вызван и исполнен.
Входными параметрами у нас для прогнозирования является x, а выходным — выражение prediction, которое равно p_1 > 0,5 — т. е. порог, который возвращает значение да/нет, т. е. значения 0 или 1. В свою очередь, выражение p_1 содержит сведения о том, что именно нужно делать с переменной х, а именно:
p_1 = 1 / (1 + T.exp(-T.dot(x, w) - b))
где x, w, b — переменные, при этом w и b мы определяем при помощи выражения train.
Для train входными данными будут x, y, а выходными prediction и xent. При этом мы будем обновлять(искать оптимальные значения) для w и b, обновляя их по формулам
w-0.1*gw, b-0.1*gb
где gw и gb — градиенты, связанные с ошибкой xent через выражение cost.
А ошибка, вычисляемая по формуле, получается из вот такого выражения:
xent = -y * T.log(p_1) - (1-y) * T.log(1-p_1)
И когда мы «компилируем» выражения predict и train, Theano берет все необходимые выражения, создает для них код на С для CPU/GPU и исполняет их соответствующим образом. Это дает заметный прирост в производительности, при этом не лишая нас удобств использования среды Python.
Результатом исолнения указанного кода будет качество прогноза, равное 0.765555 про правилам оценивания Kaggle для соревнования Titanik.
В следующих статьях цикла мы попытаемся уменьшить размерность задачи используя разные алгоритмы, а результаты сравним.

Что такое интеллектуальный анализ данных? | SAS

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

Кластеризация
Группирование похожих записей вместе.
Обнаружение аномалий
Выявление многомерных выбросов.
Изучение правил ассоциации
Обнаружение отношений между записями.
Анализ основных компонентов
Обнаружение взаимосвязей между переменными.
Группировка по родству
Группировка людей с общими интересами или схожими целями (например, люди, которые покупают X, часто покупают Y и, возможно, Z).

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

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


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

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

Прогнозная аналитика плюс правила
Разработка правил «если / то» на основе шаблонов и прогнозирование результатов.
Оптимизация маркетинга
Моделирование наиболее выгодного медиа-микса в реальном времени для максимально возможной рентабельности инвестиций.
.Учебное пособие по интеллектуальному анализу данных

: процесс, методы, инструменты, ПРИМЕРЫ

Guru99
  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Testing Database
      • Testing Database JIRA
      • Назад
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Центр контроля качества
      • SAPM
      • Центр контроля качества
      • SAPM
      • Selenium
      • SoapUI
      • Управление тестированием
      • TestLink
  • SAP

      • 9 0004 Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • CRM
      • Crystal Reports 9000
      • QM
      • Заработная плата
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Security
      • Менеджер решений Guru9985
      • Web Successfactors
      • SAP

      • SAP

        • Назад
        • Apache
        • AngularJS
        • ASP.Net
        • C
        • C #
        • C ++
        • CodeIgniter
        • СУБД
        • JavaScript
        • Назад
        • Java
        • JSP
        • Kotlin
        • Linux
        • Linux
        • Kotlin
        • Linux
        • js
        • Perl
        • Назад
        • PHP
        • PL / SQL
        • PostgreSQL
        • Python
        • ReactJS
        • Ruby & Rails
        • Scala
        • SQL
        • 000 0004 SQL
        • UML
        • VB.Net
        • VBScript
        • Веб-службы
        • WPF
    • Обязательно учите!

        • Назад
        • Бухгалтерский учет
        • Алгоритмы
        • Android
        • Блокчейн
        • Business Analyst
        • Веб-сайт сборки
        • CCNA
        • Облачные вычисления
          • 0005
          • COBOL 9000 Compiler
              0005
                9000 Встроенный COBOL 9000 Дизайн 9000
              • Ethical Hacking
              • Учебные пособия по Excel
              • Программирование на Go
              • IoT
              • ITIL
              • Jenkins
              • MIS
              • Сетевые подключения
              • Операционная система
              • Назад
              • Управление проектами Обзоры
              • Salesforce
              • SEO
              • Разработка программного обеспечения
              • VBA
          • Big Data

              • Назад
              • AWS
              • BigData
              • Cassandra
              • Cognos
              • Хранилище данных
              • 0005
              • MicroStrategy
              • Пн
          .

          Data Mining — Простая английская Википедия, бесплатная энциклопедия

          Data Mining — это термин из информатики. Иногда это также называется обнаружением знаний в базах данных (KDD). Интеллектуальный анализ данных — это поиск новой информации во множестве данных. Мы надеемся, что информация, полученная в результате интеллектуального анализа данных, является новой и полезной.

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

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

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

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

          • Распознавание образов (Попытка найти сходство в строках в базе данных в виде правил. Маленький -> зеленый. (Маленькие яблоки часто зеленые))
          • Использование байесовской сети (Попытка сделать что-то, что могло бы сказать, как различные атрибуты данных связаны / влияют друг на друга. Размер и цвет связаны. Так что, если вы знаете что-то о размере, вы можете угадать цвет.)
          • Использование нейронной сети (Попытка создать модель, похожую на мозг, что трудно понять, но компьютер может сказать, что если яблоко зеленое, у него больше шансов быть кислым, если мы скажем компьютеру, что яблоко зеленое .Так что это как модель черного ящика, мы не знаем, как это работает, но это работает.)
          • Использование дерева классификации (со всеми остальными знаниями, пытаясь сказать, что еще будет в предмете, на которое мы смотрим. Вот яблоко с размером, цветом и блеском, каково оно будет на вкус?)
          .

          Что такое интеллектуальный анализ данных

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

          Data Explosion

          Data Explosion - What is data mining article. Data Explosion - What is data mining article.

          Data Explosion

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

          Обнаружение знаний

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

          Knowledge Discovery Process - What is Data Mining Knowledge Discovery Process - What is Data Mining

          Процесс обнаружения знаний

          Давайте подробно рассмотрим процесс обнаружения знаний на диаграмме выше:

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

          Конечная цель процесса обнаружения знаний и интеллектуального анализа данных — найти закономерности, которые скрыты среди огромных наборов данных, и интерпретировать их для получения полезных знаний и информации. Как описано на схеме процесса выше, интеллектуальный анализ данных является центральной частью процесса обнаружения знаний. Давайте ответим на вопрос « что такое интеллектуальный анализ данных?» путем изучения нескольких определений интеллектуального анализа данных .

          Что такое интеллектуальный анализ данных — определения интеллектуального анализа данных

          Определение интеллектуального анализа данных появляется в первых документах по коммерческому интеллектуальному анализу данных и определяется как:

          Процесс извлечения ранее неизвестной, понятной и действенной информации из больших баз данных и ее использования для принятия важных бизнес-решений — Simoudis 1996.

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

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

          • Было ли это руководство полезным?
          • Да Нет
          .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *