- •Интеллектуальный анализ данных
- •Изучение алгоритмов построения деревьев решений с целью выявления закономерностей
- •Типа «Если – То»
- •(Системы see5/c5 и tree analyzer)
- •Интеллектуальный анализ данных Изучение алгоритмов построения деревьев решений с целью выявления закономерностей типа «Если – То»
- •1 Теоретическая часть
- •1.1 Деревья решений
- •2 Построение деревьев решений — система See5/c5.0
- •Подготовка данных для See5
- •Файл имен переменных
- •Файл данных
- •Файлы тестовых данных (необязательные)
- •Файл стоимости
- •Интерфейс пользователя
- •Построение дерева решений
- •Преобразование дерева решений в набор правил
- •Усиление решения (Boosting)
- •Использование правил для принятия решений
- •Смягчение порогов
- •Дополнительные настройки алгоритма
- •Перекрестная проверка
- •Выборка из больших наборов данных
- •Учет стоимости различных ошибок классификации
- •Предсказанный класс, истинный класс: стоимость ошибки,
- •Детальная проверка и сохранение результатов
- •3 Задание на лабораторную работу
- •Правила подготовки данных для работы в системе See-5 Вариант 1
- •Правила подготовки данных для работы в системе See Вариант 2
- •Подготовка данных в системе Tree_Analyser
- •4 Отчет должен содержать
- •5 Вопросы для защиты
- •Список литературы
Файл имен переменных
Для работы See5 самыми необходимыми и существенными являются два файла — имен переменных и данных. В файле имен переменных с расширением *.names даются названия используемых признаков и классов.
Среди признаков различают две важные подгруппы:
– номинальные признаки (discrete attribute), количественные признаки (continuous attribute) и метки;
– явно определенные признаки, значения которых берутся непосредственно из файла данных, и неявно определенные признаки, задаваемые формулами (чаще всего употребляются явно определенные признаки).
Файл имен переменных USR.names в нашей задаче выглядит следующим образом:
-
diagnosis.
| the target attribute
diagnosis:
1. 2. 3
Age:
conti nuous
Sex:
F. M
LR:
L. R
Length:
continuous
Width:
conti nuous
Thickness:
continuous
Thickpar:
continuous
Speed;
continuous
Index:
continuous
Accel:
continuous
Целевой признак diagnosis принимает три значения: 1—в классе «здоровая почка»; 2 — в классе «множественные кисты» и 3 — в классе «гидронефроз». Признаки Age (возраст), Length (длина почки), Width (ширина почки), Thickness (толщина почки), Thickpar (толщина паренхимы), Speed (средняя скорость кровотока), Index (индекс резистентности) и Accel (ускорение артериального потока в систолу) являются количественными. Признак Sex (пол пациента) может иметь два значения F (female) и M (male), а признак LR (левая или правая почка) принимает значения L или R. Порядок записи имен переменных должен соответствовать их порядку в файле данных.
При подготовке файла имен переменных следует иметь в виду, что пробелы, пустые строки и знаки табуляции игнорируются системой (кроме, конечно, случаев, когда они применяются в именах переменных). Вертикальная черта «|» предназначена для записи напоминаний или комментариев.
После имени каждой явно определенной переменной вставляется двоеточие «:» a затем следует характеристика этой переменной. Возможны следующие характеристики:
– continuous – количественный признак;
– список значений переменной, разделенных запятой (для дискретной, номинальной переменной);
– максимальное значение N для дискретной переменной (эту характеристику S рекомендуется применять очень осторожно, так как здесь исключается дополнительная проверка данных при их вводе в анализ);
– ignore — для признака, исключаемого из анализа;
– label — метка для идентификации отдельного объекта.
После имени каждой неявно определенной переменной также следует двоеточие и далее записывается формула. В формуле используются, где необходимо, скобки, а дискретные признаки ограничиваются кавычками. Ниже приведены доступные операторы:
+, -, *, /, % (mod), A (возведение в степень);
>, >=, <, <=, =, о или != (не равно);
and, or;
sin(...), cos(...), tan(...), log(...), exp(...), int(...) (целая часть от).
В зависимости от применяемой формулы конечный результат может быть как количественным, так и давать логическое значение true/false.