Здравствуйте! В этой лекции мы поговорим с вами про существующий инструментарий анализа данных, с помощью которого можно быстро и легко обработать свои данные даже без знания основ языков программирования.
Это так называемые готовые решения или студии, рассмотрим их на основе Weka. Итак, на данный момент наиболее распространены следующие студии анализа данных: Weka, RapidMiner, Knime, Orange и IBM SPSS Modeler, более известный как Clementine. Weka, Knime и Orange являются свободно распространяемыми, и не требуют никакой лицензии для их использования. Все эти инструменты предоставляют очень обширный набор средств для работы с данными и, как показывает практика, практически любую задачу анализа данных, если она не является какой-то очень специфичной, следует начинать именно с применения этих решений, чтобы лучше понять свои данные и получить какие-то первичные результаты.
Данные продукты позволяют выполнять следующие действия: это подготовка данных, отбор признаков, кластеризация, классификация, регрессионный анализ, построение ассоциативных правил и визуализация результатов. По сути это полностью покрывает все задачи анализа данных. Более того, эти решения также предоставляют и средства валидации или измерения производительности качества работы алгоритмов, например, всем известный Cross-validation.
Основным отличием этих всех решений, в том числе и Weka, является очень удобный графический интерфейс. В Weka он носит название KnowledgeFlow, в других альтернативных решениях он носит название Workflow. Workflow – это такой удобный способ представления задач и их связи друг с другом. Он очень удобен для тех людей, которые привыкли думать в терминах потока данных, проходящего через систему обработки.
Каждый элемент на этой диаграмме называется node или, по-русски, «узел». Он имеет собственные настройки, которые доступны либо по двойному щелчку, либо через контекстное меню. Вот, мы видим, что очень информативная диаграмма получается: все связи видны и интуитивно понятны. Интуитивность и есть основная особенность интерфейсов типа KnowledgeFlow.
В первую очередь, интуитивно понятный способ построения модели обработки анализа данных: мы просто на наш макет набрасываем узлы и соединяем их в той последовательности, которую хотим. Тут стоит отметить, что, безусловно, существует автоматическая система проверки ошибок. Если, например, мы имеем дело с алгоритмами классификации, то на обучающей выборке должен быть задан целевой признак. Если пользователь почему-то забыл его указать специальным узлом перед применением алгоритма классификации, то и система, естественно, нотифицирует пользователя об этой ошибке.
Также немаловажным при работе с большими данными, и в принципе при работе с современными системами, является параллелизм по данным. И Weka, так же как и другие решения подобного класса, предоставляет интуитивно понятный способ представить этот параллелизм. Просто каждый новый поток, если говорить в терминах параллельного программирования, – это отдельный тред. То есть, если вернуться к предыдущему слайду, видно, что здесь происходят три параллельных потока обработки.
Также стоит отметить тот факт, что все узлы или node, имеют название алгоритмов, которые они реализуют, поэтому найти необходимый node, например, для реализации алгоритма chemins не составит труда в палитре.
Сейчас я бы хотел привести пример работы с Weka на простой диаграмме проверки качества работы алгоритма классификации random forest с помощью методологии Cross-validation. Для начала загрузим тестовую выборку. Будем использовать стандартный dataset, поставляемый вместе с Weka Iris, содержащий в себе информацию о радужной оболочке глаза: некоторые измеряемые признаки и номинальный признак «класс», к которому относится данная радужная оболочка. Сейчас мы назначим признак, который хотели бы предсказать. Обратите внимание, что все настройки узлов доступны по двойному щелчку. Сейчас мы получили ошибку, потому что данные еще в данный узел не поступили. Выбираем данные dataset и соединяем их с узлом, который отвечает за указание целевого признака. Выберем целевой признак. По умолчанию целевым признаком выбираются номинальные признаки, поэтому у нас сразу стоит нас интересующий номинальный признак «класс». Однако мы бы могли выбрать любой другой признак для предсказания.
Следующим шагом, согласно методике Cross-validation, нам необходимо разбить выборку на 2 подвыборки: тестовую и обучающую. Для этого необходимо использовать node on Cross-validation fold maker, которая позволит нам разбить выборку на 2 подвыборки. Передаем их dataset и оставляем настройки по умолчанию. Далее выбираем алгоритм, которым хотели бы классифицировать нашу выборку. В нашем случае это random forest. Передаем ему обе, как тренировочную, так и тестовую выборки.
Посмотрим на настройки по умолчанию. Количество деревьев в лесу стоит 10. Увеличим это число до 100, остальные настройки оставим по умолчанию. Наконец, используем узел, который и отвечает за оценку качества классификации. Передадим ему результат работы алгоритма и визуализируем результаты работы данного узла с помощью обычного текстового viewer’a. Передаем ему текст. Чтобы запустить данный workflow, необходимо просто на загрузчике данных инициализировать загрузку данных. Видно, что все узлы отработали без ошибок, как показано в консоли.
Можем просмотреть результат. Для этого просто в контекстном меню textviewer’a выбираем show results. Видим, что 95 процентов объектов распознаны верно. 4 процента объектов распознаны неверно. Также предоставлена некоторая другая статистика. Но в наш курс не входит объяснение того, что здесь представлено. На этом пример можно закончить и перейти к следующему.
Теперь хотелось бы обсудить плюсы и минусы данных решений. Безусловным плюсом является простота и скорость построения схемы обработки данных, потому что можно достаточно быстро применить алгоритмы к своим данным, увидеть какие-то первичные результаты, и все это еще и вкупе с удобным пользовательским интерфейсом. Наглядность и интуитивность этого интерфейса – это также безусловный плюс данной категории систем. Также мы видели, что существует очень богатый набор алгоритмов обработки и анализа данных, и, скорее всего, не возникнет никакой потребности в том, чтобы искать какие-то другие алгоритмы.
Однако существует серьезный минус. Он один и его одного хватает: это ограниченная гибкость. Все алгоритмы уже давно реализованы за аналитика, внутрь них он не залезет и тонкой настройки произвести не сможет. И все-таки, если он столкнется с той проблемой, что ему не хватит какого-то алгоритма, добавить его в эту систему – не такая простая задача, как пишут об этом разработчики данных систем.
Отсюда возникают выводы об области применимости.
Данные решения хорошо оправданы в том случае, если мы имеем дело с очень сжатыми сроками, когда заказчик нам поставил задачу и говорит: «мне надо это очень быстро делать», и мы просто не имеем возможности написать какой-то скрипт на языке программирования.
Далее если мы хотим что-то спрототипировать или подобрать алгоритм, то есть нам нужно перебрать много алгоритмов и мы не знаем, какой алгоритм хорошо отработает на данном наборе данных (что очень часто встречается в области интеллектуального анализа данных, никогда заранее не знаешь, какой алгоритм подойдет). И вот данные решения позволяют очень быстро перебирать алгоритмы, проверять качество их неработы, чтобы затем можно было уже при реализации на языках программирования знать, какой алгоритм использовать.
С другой стороны, если задача очень простая и нет необходимости вообще писать код (такое тоже часто бывает – иногда задачи довольно простые и тратить время на написание кода не имеет смысла). Тогда мы используем данные решения.
Также если мы хотим просто прототипировать весь процесс обработки, подготовки, визуализации данных, посмотреть, как это будет выглядеть, перед тем как реализовать это в программном коде.
Ну и также следует помнить то, что я сказал в начале лекции: что практически любую задачу анализа данных следует начинать именно с этих инструментов.
В качестве приложения к лекции хотелось бы рассмотреть структуру ARFF файла. Дело в том, что этот тип файлов был разработан специально для Weka, но занял свою нишу в области интеллектуального анализа данных, наряду со всем известными csv файлами. Сам файл состоит из двух частей: это заголовочная часть, где описывается название dataset’а, в пункте RELATION, где описываются атрибуты, их имена и типы. Поддерживаемые типы данных: это numeric (все числовые данные). Существуют также данные integer, double, float, но все они будут приведены к numeric, независимо от того что указал программист. Существуют номинальные признаки, строковые значения и данные виде date. Причем date может иметь различные форматы, которые следует описать в квадратных скобочках. Номинальные признаки, если рассматривать отдельно, описываются следующим образом: пишется имя признака, а затем перечисляются его классы, какие значения он может принимать. Следующая часть – это часть самих данных. Данные следуют разделенные через запятую, имена номинальных признаков не обрамляются ни в какие кавычки или скобочки, если они не содержат каких-то специальных символов, которые следует экранировать. Также данные могут содержать пробелы, – тогда следует указать вопросительными знаками в области пробела.
Спасибо за внимание, на этом лекция, посвященная готовым решениям интеллектуального анализа данных, закончена.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.