Извлечение данных или знаний?

    Приветствую!

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

    Исторически сложилось, что у термина Data Mining есть несколько вариантов перевода:
    • извлечение данных
    • извлечение знаний, интеллектуальный анализ данных

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

    Извлечение данных


    Извлечение данных — это процесс нахождения, сбора информации, а также сохранения (конвертация) их в разных форматах. По простому, программы для извлечения данных называют парсерами (parser), граберами (grabber), спайдерами (spider), кроулерами (crawler) и т.д. Фактически, такие программы существенно облегчают всем жизнь, так как позволяют систематизировать данные (именно данные, а не знания!). Такие программы могут собирать адреса компаний в вашей отрасли, ссылки из нужных форумов, парсить целые каталоги, также могут служить отличным средством для составления баз данных.


    Занимаясь этим долгое время, могу сказать, что применений data mining в этом смысле очень много. Как правило, данные берутся из открытых источников, не нарушая чьих-то интеллектуальных прав.

    Примеры:
    • составление списка банков какой-то страны
    • составление базы школьных заведений
    • список сайтов по определенной тематики

    В основном, это «список», «каталог», «база» чего-то, что необходимо вам в данный момент.

    В следующих публикациях расскажу об реальных примерах более подробнее.

    Извлечение знаний


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

    Основные категории Data Mining:
    • кластеризация данных (разделение объектов на подобные группы)
    • классификация данных (отнесение объектов к заранее определенным группам)
    • нейронные сети, генетические алгоритмы (универсальные оптимизаторы)
    • ассоциативные правила (правила виду «если… то...»)
    • деревья решений
    • анализ временных рядов

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

    Что мы имеем на данный момент?


    Если честно, не совсем густо, но все же:

    Остальное — это разбросанные по всей сети отрывки данных, примеров и кода.

    Data Mining Source Code


    Будучи .NET разработчиком, мне были нужны примеры реализованных алгоритмов на этом языке, но в 90% случаях это был либо С++ (в основном под Linux), либо Java. Проблема отсутствия примеров на C# (или VB.NET) заставляла писать все самому.

    Больше всего хотелось систематизировать то, что у меня было и то, что я сумел найти в просторах интернета. Таким образом появился open source проект на codeplex под названием Data Mining Source Code и как небольшое пояснение к этому проекту — «Data Minig Source Code Blog». Там есть исходники на C#, VB.NET, Java и JavaScript, хотя больше всего исходников на C#. К нему есть дополнительный проект Numerical Methods on C#, который реализует большое количество численных методов.

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

    Ну и в конце мне хочется спросить, насколько интересная данная тема и о чем из вышеупомянутого вы хотели бы почитать более подробнее?
    Поделиться публикацией
    Комментарии 30
      +4
      Есть такая замечательная книжка — «Программируем коллективный разум» за авторством Сегарана. В ней изложены очень интересные и актуальные примеры реализации тех или иных алгоритмов, рассказывается зачем это все нужно в бизнесе и ИТ, приводится масса примеров из использования datamining крупными организациями. Очень рекомендую.
        0
        Книжка и вправду отличная.
        Кстати, сам термин «data mining» в ней не помню чтоб даже упоминался) Алгоритмы-алгоритмы (местами сложные), понятным и интересным языком.
          +1
          В оригинале — упоминался такой термин) А в переводе на русский — там как только не называли. Но книжка во многом об этом.
          0
          Спасибо, обязательно посмотрю.

          Я, в основном, использовал книгу Барсегян А.А., Куприянов М.С., Степаненко В.В. «Методы и модели анализа данных: OLAP и Data Mining». По нечетким системам рекомендую С. Д. Штовба «Проектирование нечетких систем средствами MATLAB».
            0
            Заранее извиняюсь, может есть в электронном варианте?
            +1
            Спасибо за этот пост.
            Если можно — расскажите пожалуйста по подробнее про извлечение знаний.
              0
              с применением нейронных сетей, пожалуйста
              +1
              Не «часовых рядов», а «временных рядов» :-)

              Так правильней сказать.

              А в какой области вы применяете data mining?
                0
                Спасибо, поправил.

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

                  Интернет?
                    0
                    Извините, не внимательно прочитал :-). В данный момент одна из тем исследований — это кластеризация результатов веб-поиска, но есть и другие задачи. О реальных примерах внедрения и использования только читал, у нас не видел, чтобы эти методики использовались в реальных условиях. Хотя Data Mining можно прицепить везде, где есть слово «данные», «знания», «аналитика», «оптимизация», «экстраполяция» и т.д.
                      0
                      www.forecsys.ru

                      Вполне реальное применение data mining :-)
                0
                Тема интересна.
                О чем подробнее? О чем нибудь интересном ))
                Но только с реальными примерами.
                Например, берем котировки Форекс за такое-то время. Анализируем такимим-то алгоритмами, прогоняем через такую-то штуковину, фильтруем, усредняем. И получаем определенный результат. Например нейронную сеть, обученную зарабатывать от 0 до 10% в день.
                  0
                  Примеры обязательны. Необязательно форекс, но примеры должны быть!
                  «Теории приходят и уходят, а примеры остаются».
                  • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Тема интересна, сам занимался на одном из курсов универа Data mining'ом. Даже когда работал, один из заказчиков, видимо услышав где то про OLAP куб, захотел себе «куда нибудь его применить». Ессно его отговорили, т.к. ему это было совсем не нужно, но у меня интерес остался, пока в армию не забрали. Прочитав ваш пост, вспомнил, что когда то это было мне интересно. С удовольствием прочитаю следующие ваши заметки.
                      0
                      > Если честно, не совсем густо, но все же:
                      www.basegroup.ru/
                      пожалуй, основной источник практических знаний в рунете по Data Mining
                        0
                        Так и есть. В основном, весь материал англоязычный.
                          0
                          BaseGroup, кстати, неплохой продукт продвигают уже достаточно давно — Deductor. Тем, кто начинает заниматься DataMining'ом рекомендую — основные алгоритмы реализованы достаточно просто и наглядно. Быстро понимаешь суть. Правда, там нет генетических алгоритмов, на да они не самые используемые. Что немаловажно — есть бесплатная версия Dedactor — Academic. ))
                          0
                          тема очень интересная, продолжайте
                            0
                            Нейронные сети на c# как и многие примеры можно поискать пожалуй на codeproject'е.
                            www.codeproject.com/KB/cs/neural_network_ocr.aspx
                            www.codeproject.com/KB/dotnet/neuralnetwork.aspx
                            www.codeproject.com/KB/dotnet/simple_ocr.aspx

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

                            Надо бы чтобы ввели термин Knowledge Mining чтобы не было двусмысленность какой подход применяется. Сейчас для многих проектов связанных с хобби либо организацией инфомрации на винте активно использую извлечение данных(возможно потом на основе этого будет извлечение знаний, но не уверен, ибо смысла пока нет, да и области немного не те).
                            Хотелось бы почитать статьи посвященный различным методам извлечения знаний, желательно как с математической основой, так и с примерами кода
                              0
                              Очень нужная и важная тема, хотелось бы ее развития.

                              Сам работал в области извлечения знаний — обрабатывал данные собираемые по стране для антикоррупционного комитета, потом занимался анализом «внутренней копилки» одной консалтинговой компании.
                              Рабочими инструментами были Spss clementine и кое-какой самописный софт.
                              Если интересно, могу рассказать об этих проектах поподробнее.

                              В принципе я бы определил «извлечение знаний» как нахождение взаимосвязей и паттернов из объемов данных при отсутствующей или нечетко сформулированной гипотезе. Если гипотеза есть вся задача сводится к классическому статистическому анализу.
                                0
                                Обратите внимание на проект Mahout — ребята собрали уже довольно обширное число алгоритмов реализованных на Hadoop
                                lucene.apache.org/mahout/
                                  0
                                  Есть ещё ПО от Pentaho
                                  Data mining'ом не занимаюсь, только лишь рисую кубы в Mondrian OLAP Server.
                                    0
                                    В основе та же WEKA
                                    0
                                    За Data miningом будущее… Главное, что применить эти методы возможно где угодно, главное наличие больших объёмов информации. Вот допустим в спорте:
                                    Имеется большой объём максимально возможной упорядоченной информации по проведённым матчам одной команды (обычная статистика + какая погода, кто судил, кто на каких позициях стоял, и т.д. и т.п.). Используя средства интеллектуального анализа можно было бы обнаружить много интересных вещей. Например после исследования могло выясниться, что когда игрок А и игрок Б стоят вместе, процент ударов по воротам больше чем в среднем… А это уже реальные знания, дающие конкурентные преимущества.
                                    Вообще, было бы интересно услышать реальные примеры применения систем анализа данных.
                                      +4
                                      Всем привет, могу рассказать про коммерческое применения data mining (как говорится, на примерах), если кому интересно? Примеры где используется прогнозирование, кластеризация, анализ клиентских сред и пр.
                                      Так что если тема интересная — дайте знать — напишу пост.
                                        0
                                        интересует прогнозирование, кластеризация, анализ клиентских сред и пр.)
                                          0
                                          очень интересная данная тематика, особенно на примерах, пишите
                                          0
                                          Работаю в московском представительстве крупнейшей компании занимающей именно Advanced Analytics-компания называется SAS Institute-занимаюсь непосредственно технологиями Data Mining'а и прогнозированием-поэтому могу поделиться довольно большим опытом в этой области в России-как с точки зрения бизнеса, так и с точки зрения аналитической составляющей!

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое