Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2011.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
7.53 Mб
Скачать

Приступаем к практике

Начинаем изучать WizWhy (http://www.wizsoft.com)

(http://www.nestor.minsk.by/kg/1997/11/kg71109.htm)

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

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

Наиболее яркие представители использования этого алгоритма - программы WizWhy и WizRule. Пакет WizRule является самостоятельным изделием, хотя его можно считать перелицовкой WizWhy (и наоборот). Обе программы делают, по существу, одно и то же: просматривают заданную базу данных и, собрав статистику, отыскивают правила и закономерности, которым подчиняются сведения, собранные в базе. Само собой, правила отыскиваются только там, где они действительно есть.

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

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

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

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

Итак, находи на рабочем столе или в меню «Пуск» иконку и запускаем WizWhy. При загрузке программы когда появиться окно (рис. 2) нажмите «Esc», а при появлении следующего окна «ОК». Все, можно загружать данные.

Рис. 2 Окно загрузки программы

Интерфейс программы.

Разберем все шаги работы с программой на примере анализа статистики рынка ценных бумаг.

Допустим, у Вас есть следующая статистика (рис. 1) (файл Shares.xls):

Рис. 1. Исходные данные

Этот файл, созданный в Excel сохраним с расширением dbf (dBase IV).

Первый шаг.Загрузка и подготовка данных к логическому анализу.

Закладки Basic Data и Prediction Input

Basic Data - предназначена для ввода начальных данных, установки начальных параметров и установления начальных зависимостей.

Prediction Input - предназначена для ввода, просмотра и коррекции внешних данных, на которых требуется проверить действие найденных правил.

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

Система WizWhy поддерживает различные форматы баз данных (ASCII, dBase, MS Access, и др.), поэтому какой-то дополнительной подготовки данных не требует. И после загрузки системы остается лишь выбрать нужный формат и загрузить данные (поле Open Data of Type). Унификация переменных не проводится, поскольку система производит разбивку количественных признаков на информативные интервалы самостоятельно.

В поле Data Source указываются местоположение и имя файла, из которого были импортированы данные (рис. 3).

Рис. 3. Выбор типа и источника данных

После того как данные загружены, устанавливается соответствующий тип признака: количественный (Number) или качественный (категориальный - Category) (рис. 4).

Рис.4. Начало работы с системой WizWhy

ЗАЧЕМ ЭТО ДЕЛАТЬ:

В системе WizWhy целевой признак разделяет всё множество объектов на две части. Это делается следующим образом.

Если целевая переменная является категориальной, WizWhy просматривает все объекты (записи) и отбирает те из них, для которых целевая переменная имеет выбранное значение. Отобранные таким образом объекты составляют первую группу. Правила, характерные для данной группы, называются if-then-правила. Оставшиеся объекты составляют вторую группу, и для этой группы характерные правила обозначаются как if-they-NOT-правила.

Если целевой признак является количественным, пользователь должен указать область значений этого признака (закладка «Rule Parametrs»). Правила if-then будут определяться для этой указанной области. В свою очередь, if-they-NOT-правила будут описывать объекты, не попавшие в выделенную область.

Рис.5. Реализация возможности просмотра данных

Кнопка View Data (рис. 5) предназначена для вызова окна для просмотра загруженных данных (в нём демонстрируются 100 первых строк таблицы) данных. Таким образом Вы можете вспомнить, не открывая исходный файл и тип переменной и диапазон ее значений.

После этого выбирается зависимая (целевая) переменная исходя из того, что Вы хотите проанализировать.

В поле Field Grid (рис. 6) отображаются имена и типы введённых переменных и предоставляются возможности проведения следующих операций:

Рис.6. Поле Field Grid для конкретизации переменных

  • 1. Назначение целевой, или так называемой зависимой (dependent) переменной. Это переменная, значения которой будут связываться с помощью if-then-правил со значениями так называемых независимых (independent) переменных.

  • 2. Модификация переменных. В колонке Field Name можно редактировать имена переменных. Для этого нужно щёлкнуть на соответствующей позиции и ввести новое имя. Кроме этого, в позициях колонки Field Type можно изменять тип переменной. Например, заменить тип Category (категориальный) на Number (количественный). Здесь заметим, что в зависимости от выбранного типа данных в дальнейшем к переменной применяются различные процедуры обработки.

  • 3. В системе WizWhy предусмотрен также случай, когда пропуски в таблице данных (пустые ячейки) представляют собой самостоятельные информативные события. Для учёта подобных пропусков в значениях какой-либо переменной ставится флажок против неё в колонке Analyze if Empty. В свою очередь, если имеется необходимость исключить переменную из анализа, нужно выставить флажок в колонке Ignore Field.

======================================

Пример

Сохраняем наш файл с расширением, например xlsx, xls или dbf, и загружаем в программу.

Внимание: для того, чтобы избежать возникновения разнообразных конфликтных ситуаций выделите ту часть данных на рабочем листе (включая названия столбцов), которая НЕ содержит русскоязычных наименований, сохраните файл с нужным расширением и ЗАКРОЙТЕ его. Только после этого загружайте его в WizWhy.

Нажмите кнопку View Data и удостоверьтесь, что типы данных переменных выставлены правильно, заодно, еще раз подумайте какую переменную Вы хотите сделать целевой.

В нашем примере две переменные (Fund и Recommend) имеют категориальный тип данных (Category), а остальные – количественный (Number).

Второй шаг. Задание начальных параметров.

ВНИМАНИЕ!!! Если на закладке «Basic Data» снять галочку «Analyze the Dependent Variable As Boolean», то настройка некоторых параметров станет невозможной.

Закладка Rule Parameters (Параметры правил).

1. Выставите прогнозируемое значение (Predicted Value) зависимой (целевой) переменной (рис. 7).

После задания области значений целевой переменной или, возможно, её одного значения система WizWhy читает данные и вычисляет простые статистики, которые могут быть использованы в дальнейшем анализе. Справа от поля Predicted Value система выводит значение частоты, с которой в анализируемых данных встречается прогнозируемое значение переменной.

2 . В качестве начальных параметров также задаются:

1. Минимальная доверительная вероятность (точность) (Minimum probability of …) для правила «Если…То» (if-then);

2. Минимальная доверительная вероятность (Minimum probability of …) для «Если…То Не» (if-then-Not) правил.

Эти параметры есть ни что иное, как точность правила.

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

3. Минимальное число объектов (Minimum number of …), на которых подтверждается правило;

4. Максимальное число событий в правиле (Maximum number of …).

Это максимальное количество элементарных логических событий в одном правиле.

Рис. 7. Задание параметров правил

Пример (продолжение)

Выберем в качестве зависимой (целевой) переменной доходы акций за пять лет (это количественная переменная). И проанализируем, когда были получены максимальные доходы (например, нас интересует диапазон 13500 – 16500).

Переходим на вкладку Rule Parameters, выставляем следующие значения:

Predicted Value:

Больше чем – 13500

Меньше либо равно – 16500

Minimum probability of if-then и Minimum probability of if-then-Not:

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

Следует понимать, что, задав слишком низкий уровень точности (например 10%), мы получим большое количество правил, среди которых будет много малоинформативных компонентов. В свою очередь, выставив требование 100%, мы, скорее всего, не получим вообще ничего.

Minimum number of cases in a rule (минимальное число объектов в правиле).

Выставим здесь значение 6, обозначив тем самым наше желание обнаружить в данных правила, которые распространяются не менее чем на 6 объектов. Нижний предел составляет 4 объекта.

Maximum number of conditions in a rule (максимальное число условий в правиле).

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

Примечание: Если при попытке выполните вышеуказанный пункт задания программа WizWhy «вылетает»,что достаточно часто бывает при использовании категориальных переменных, то следует сменить тип зависимой переменной и установить определенные значения полей «More than» и «Less or equal than».

Закладка Стоимость ошибок (Error Costs).

Здесь задаются значения двух параметров, которые используются при последующем прогнозировании (рис. 8):

Рис. 8. Задание параметров стоимости ошибки

1. Стоимость пропуска (Cost of a miss) – отнесение к «Не»-диагностируемому классу, когда на самом деле имеет место диагностируемый класс, как правило, задается равной 1;

2. Стоимость ложной тревоги (Cost of a false alarm) – отнесение к противоположному диагностируемому классу, когда на самом деле имеет место правильное распознавание, также задается равной 1.

Значения стоимости ошибок предпочтительней задавать равными – это минимизирует число ошибок в данных при анализе.

Пример (продолжение)

Оставляем значения стоимости ошибок равными 1.

Закладка параметры вывода для отчета (Rule report).

Вкладка Rule Report заведует отображением результатов (рис. 9).

Далее следует указать способ сортировки правил в отчёте (по уровню значимости – Significance level, по точности – Probability, по количеству объектов – Number of cases).

Рис. 9. Задание параметров вывода отчета

1. Количество правил в отчете (Maximum number of rules) - максимальное количество правил, которое WizWhy вам покажет. По умолчанию 100. Впрочем, найдет WizWhy все правила, которые сочтет нужным, и вежливо вас уведомит, что нашла 11320 правил, но покажет столько, сколько попросите. Этот параметр не влияет на работу процедуры поиска правил. Он предназначен только для ограничения количества правил, выдаваемых в отчёт (Rule Report).

2. Способ сортировки правил (Sort rules in the…):

  • significance level -- уровню достоверности (иначе – по значимости)

  • (error) probability -- вероятность ошибки (по точности – Probability)

  • number of cases -- число наблюдение, которые "попадают под правило" (по количеству объектов)

В поле Present examples where (представить примеры) можно выразить желание посмотреть примеры работы выявляемых правил. Если поставить флажок в позиции Rule in effect («попадающие под правило»), то система будет формировать в отчёте для каждого правила список номеров объектов, для которых правило не ошибается. Длина списка ограничивается заданным числом. Соответственно, флажок в позиции Rule in not effect («не попадающие под правило») запрашивает у системы выдачу списка номеров объектов, на которых какое-либо правило работает с ошибкой.

Пример (продолжение)

Сортируем правила по уровню достоверности.

Смотреть будем правила попадающие под правило (Rule in effect).

Закладка Manual Select

WizWhy раскрывает правила автоматически. Тем не менее, можно настроить WizWhy так, чтобы вы вручную контролировать правила выявления процесса. (Правила – выявленные закономерности) (рис. 10).

Рис. 10. Окно ручной фильтрации правил

Выберите Select if-and-only-if conditions manually для контроля выдачи правил if-and-only-if. Когда WizWhy выявит if-and-only-if правило, откроется окно, где вы сможете контролировать выбор условий составления if-and-only-if правил.

Выберите Filter if-then rules’ conditions manually для контроля выдачи правил if-then. Когда WizWhy завершит этап строительства таблицы условий, откроется окно, где вы сможете выбрать поле пар. Любое правило, содержащие одно из этих полей пары будет отфильтровано. Идея этого процесса, состоит в том, чтобы дать вам возможность определить, не интересные правила и фильтровать их.

Вы можете выбрать эти пары в текущем окне (Select filed pairs to be ignoredВыберите пары полей, которые Вы хотите игнорировать). Однако, следует помнить, что число возможных пар может быть очень большим, и «ручное» выявление пар может оказаться бессмысленным.

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

1. Выберите первый элемент правила в левом списке.

2. WizWhy будет отображать доступные поля в правом списке. Выберите второе поле из этого списка.

3. Нажмите на кнопку Добавить (Add). Пары будет отображаться в таблице нижней части экрана. Любое правило, содержащее эти пары, будет отфильтровано.

4. Повторите эти шаги для других пар.

В случае, выбора неправильной пары, нажмите на кнопку Отменить (Undo Last) для удаления последней выбранной пары, или нажмите на кнопку Удалить все (Remove All), чтобы перезагрузить окно.

Закладка Data Format

Рис. 11. Окно диалога Data Format

Окно диалога Data Format (рис. 11) предназначено для задания и корректировки формата информации, с которой работает WizWhy. Прежде всего, сюда относится формат данных.

В поле Number and Currency Format выбирается формат (Number или Currency), задается количество цифр (Digts) и виды разделителей в числовых и денежных данных.

В поле Data Format выбирать формат для записи дат – либо предопределенный системой (System Defined), если снять эту галочку, то появится возможность выбора формата (поле со списком - Format), указывается вид разделителя (Separator) и приводится пример того, как это будет выглядеть (Example).

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

В поле Subheading заносится подзаголовок отчёта.

Нажатием кнопки Font в правом нижнем углу вызывается окно диалога для выбора используемых шрифтов (рис. 12).

Рис. 12. Окно настройки шрифтов

Пример (продолжение)

Вкладки Manual Select и Data Format пока не настраиваем.

Третий шаг. Выработка правил.

Итак, все начальные параметры заданы, и пора каким-то образом приступить к обработке данных.

Небольшое отступление

Система WizWhy выдаёт три типа отчётов:

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

  • Отчёт о трендах (Trend report), в котором представлены результаты сегментации отдельных признаков с указанием информативности выделенного сегмента.

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

После того, как Вы установите все необходимые параметры, в Вашем распоряжении будет две кнопки для выработки правил «Issue Rule» и «Issue Trends». Вторая кнопка является частичным случаем первой и выдает только отчет о трендах. Поэтому будем рассматривать более общий случай и работать с кнопкой «Issue Rule».

Для того чтобы запустить процедуру поиска логических закономерностей достаточно нажать кнопку «Issue Rule».

Пример (продолжение)

Для нашего примера в результате работы программы мы получим следующие результаты:

Рис. 13. Отчет о полученных правилах

Отчёт о правилах размещён в трёх окнах (рис. 13).

  • Левое окно – список правил (Rule List).

  • Правое верхнее окно – содержание записи в деталях (Record Details Grid).

  • Правое нижнее окно – индекс признака (Field Index).

В самом левом окне – проводнике Вы видите ссылки на различные типы отчетов:

1. Main Window

2. Summary Report

3. If-Then Rules Report

4. Trend Report

5. Unexpected Rule (неожиданные правила)

6.

7. Unexpected Cases

Более подробно рассмотрим каждый из них.

1. Main Window – служит для перехода в основное меню программы (загрузка данных, задание начальных значений и параметров).

2. Summary Report – содержит информацию о заданных параметрах поиска.

Пример (продолжение)

2. Summary Report

Для нашего примера вкладка Summary Report содержит: следующую информацию:

SUMMARY REPORT

WizWhy Version 4.06 Demo //версия программы

PARAMETERS OF THE RULES AND DATA

D:\Sv_works\WizWhy\Shares.dbf //месторасположение исходного файла

Total number of records: 16 //общее число обработанных записей

Minimum probability of the: // минимальная вероятность правил

1) if-then rules: 0,700

2) if-then-not rules: 0,700

Minimum number of cases in a rule: 4 // минимальное количество объектов для правил

The Demo version is limited to 1000 records. //демо-версия ограничивается 1000 записей

Dependent Variable: INCOMEALL //зависимая переменная

Predicted Value (analyzed as Boolean): more than 13 500,00 //прогнозируемое значение

Number of rules 44 // количество найденных правил

Prediction error costs: //прогнозируемая стоимость ошибки

The cost of a miss: 2 //стоимость пропуска

The cost of a false alarm: 2 //стоимость ложной тревоги

Average probability of the predicted value is 0,500 // средняя вероятность прогнозируемого значения переменной равна 0.5

Далее система выдаёт следующий блок общей информации об обнаруженных правилах:

ANALYSIS OF THE RULES EXPLANATORY POWER (анализ правил объясняющих зависимость)

Number of misses: 1 // количество пропусков при прогнозировании

Number of false alarms: 0 // число ложных тревог

Total number of errors: 1 // общее количество ошибок

Total cost of errors: 2 // общие потери

Success rate when predicting more than 13 500,00 : 1,000 // вероятность успешного прогнозирования для значений больше чем 13 500

Success rate when predicting NOT more than 13 500,00 : 0,889 // вероятность успешного прогнозирования для значений не больше чем 13 500 (для альтернативного класса)

Number of records with no relevant rules: 0 // количество объектов, не охваченных выделенными правилами

Average cost (per record): 0,125 // средние потери (на запись) - общая сумма ошибок, поделённая на количество записей в исследуемом массиве данных.

Expected average cost (per record): 1,000 // ожидаемые средние потери

Improvement Factor: 8,000 //выигрыш - представляет собой отношение ожидаемых средних потерь к реальным потерям на запись.

Расшифруем термины:

Ожидаемые средние потери есть результат формирования прогноза только на основании частоты появления прогнозируемого значения, стоимости пропуска объекта, стоимости ложной тревоги. Другими словами – это ожидаемые средние потери при условии, что неизвестно ни одного правила. Например, пусть частота появления прогнозируемого значения = 15%, стоимость пропуска объекта = 2, а стоимость ложной тревоги = 1. В этом случае, если в анализируемых записях не найдено ни одного правила, то WizWhy формирует следующий прогноз: «прогнозируемое значение зависимой переменной не встречается ни в одной записи из исследуемого набора». В таком случае (для прогноза такого вида) средние потери на запись называются ожидаемыми средними потерями. Для данного примера они будут равны 0.3 (15% (или, другим словами, 0.15) умножить на 2 и умножить на 1 = 0.3).

Точка решения – когда WizWhy формирует прогноз, то вычисляется вероятность того, что значение зависимой переменной в анализируемой записи равно «1» (допустим «1» – это спрогнозированное значение зависимой переменной). Эта вероятность называется итоговой (conclusive). Если значение итоговой вероятности больше значения точки решения, то прогнозируемое значении = 1, а если меньше, то не равно 1.

3. If-Then Rules Report

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

В данных по анализу суммарного дохода акций при установленных параметрах система WizWhy обнаружила 44 правила (см. вкладку Summary Report строчка Number of rules).

Рассмотрим (для примера) правило № 2:

2) If INCOME04 is 12,00 ... 26,00 (average = 20,40 )

and INCOME05 is 5,00 ... 21,00 (average = 11,80 )

Then

INCOMEALL is more than 13 500,00

Rule's probability: 0,800

The rule exists in 8 records.

Significance Level: Error probability < 0,01

Positive Examples (records' serial numbers):

1, 2, 3, 4, 5, 6, 7, 8

Как читать:

Это правило представляет собой конъюнкцию (объединение) двух элементарных высказываний.

Первое - INCOME04 is 12,00 ... 26,00 (average = 20,40 ) - говорит о том, что правило относится только к доходам 2004 года в диапазоне от 12 до 26 (в среднем 20,4). Второе - INCOME05 is 5,00 ... 21,00 (average = 11,80 ) – определяет диапазон значений для доходов 2005 года (в среднем = 11,80).

Если эти условия выполнены, то тогда:

INCOMEALL is more than 13 500,00 (суммарный доход более 13500).

Запись Rule's probability: 0,800 означает, что точность правила в данном случае равна 0,8 (80%).

Следующая запись - The rule exists in 8 records – характеризует количество объектов, для которых справедливо рассматриваемое правило.

Запись - Significance Level: Error probability < 0,001 – касается статистической оценки уровня значимости полученного правила (как видим, доверие к правилу превышает 90%).

Последняя запись - Positive Examples (records' serial numbers) – означает «положительные» примеры, которые затем представлены как номера записей (объектов) в наборе данных. Выделив какую-нибудь цифру, щелкните правой кнопкой мыши, появится значок «очков», щелкнув по нему, в правом верхнем окне Вы увидите, какие объекты (их значения) анализируемого набора данных подтверждают данные) (см. рис. 14).

Аналогично можно работать (вызывая иконку «очки») и с данными в правом нижнем окне.

Рис. 14. Окно отчета о выработанных If-Then Rules