- •Введение
- •1 Идентификация проблемной области
- •1.1 Постановка задачи
- •1.2 Назначение эс
- •1.3 Класс эс по решаемой задаче
- •2 Концептуализация предметной области
- •2.1 Извлечение знаний
- •2.1.1 Анализ методом главных компонент
- •2.1.2 Кластерный анализ с помощью дендрограмм
- •2.1.3 Кластерный анализ с помощью Карт Кохонена
- •2.1.4 Построение деревьев решений
- •2.2 Структурирование проблемной области
- •3 Формализация базы знании
- •3.1 Краткий обзор модели представления знаний
- •3.2 Обоснование выбора модели представления знаний
- •3.3 Таблицы решений
- •3.4 Сеть вывода
- •4 База знаний
- •Заключение
- •Приложение а – Исходная выборка исследуемых видеокарт
- •Приложение б – Принадлежность наблюдений к классам
2.1.4 Построение деревьев решений
Система See5/C5.0 предназначена для анализа больших баз данных, содержащих до сотни тысяч записей и до сотни числовых или номинальных полей. Результат работыSee5/C5.0 выражается в виде деревьев решении и множестваif-then-правил.
Задача See5/C5.0 состоит в предсказании диагностического класса какого-либо объекта по значениям его признаков. При этом,See5/C5.0 конструирует классификатор в виде дерева решений, которому, в свою очередь, может быть поставлено в соответствие некоторое множество логических правил.
Файл имен переменных для компонентного анализа vk.namesвыглядит следующим образом:
Class.
Class: 1, 2, 3.
Price: continuous.
Mem: 0,1,2,3.
BusType: 0,1.
BusWidth: 0,1,2.
ChipFreq: continuous.
MemFreq: continuous.
SLI: 0,1.
DVI: 0,1.
TVIn: 0,1.
TVOut: 0,1.
Целевой признак Classпринимает три значения: 1 − первый класс, 2 − второй класс, 3 − третий класс. Затем описывается совокупность признаков:Price− цена,Mem− объем памяти,BusType− тип шины,BusWidth− разрядность шины памяти,ChipFreq− тактовая частота чипа,MemFreq− тактовая частота памяти,SLI− наличиеSLI,DVI− наличие выходаDVI,TVIn− наличие выходаTVIn,TVOut− наличие входаTVOut.
Файл данных vk.data, который имеет следующий вид:
3,2176,2,0,1,325,400,0,1,0,1
1,1379,0,0,0,250,200,0,1,0,1
1,1832,2,0,1,400,200,0,1,0,1
1,1655,2,0,1,350,200,0,1,0,1
1,1241,1,0,0,350,200,0,1,0,0
2,1375,1,0,1,380,225,0,1,0,1
1,2390,2,0,1,400,225,0,1,0,1
1,2758,1,0,1,400,300,0,1,0,1
1,2604,1,0,0,300,225,0,1,0,1
1,6005,2,0,2,400,490,0,1,0,1
1,5239,3,0,1,500,380,0,1,0,1
1,4718,0,0,0,400,450,0,1,0,0
2,9238,1,0,1,350,380,0,1,0,1
1,3156,1,0,1,300,275,0,1,0,1
1,3770,1,0,1,400,300,0,1,0,1
1,4473,2,0,1,500,800,0,1,0,1
3,1808,1,0,0,500,1000,0,1,0,1
3,1730,1,0,1,300,225,0,1,0,1
1,1226,1,0,0,250,166,0,1,0,1
1,3278,1,0,1,300,325,0,1,0,1
1,3401,2,0,1,300,325,0,1,0,1
1,1770,1,0,0,400,200,0,1,0,1
1,1833,1,0,1,400,200,0,1,0,1
1,1578,1,0,1,250,200,0,1,0,1
2,1186,1,0,0,250,200,0,1,0,0
1,2559,2,0,1,400,300,0,1,0,1
1,3003,1,0,1,300,275,0,1,0,1
1,3248,2,0,1,300,275,0,1,0,1
1,3952,1,0,1,427,275,0,1,0,1
1,3707,1,1,1,500,368,0,1,0,1
3,4381,1,1,1,500,500,1,1,0,1
1,2850,1,1,1,300,325,0,1,0,1
1,1624,0,1,0,350,350,0,1,0,1
1,1762,1,1,1,400,500,0,1,0,1
1,5484,2,1,2,400,490,0,1,0,1
1,2344,2,1,1,380,400,0,1,0,1
1,1456,1,1,0,300,360,0,0,0,1
1,3505,1,1,1,400,460,0,1,0,1
1,1563,1,1,0,300,360,0,1,0,1
1,2176,1,1,0,320,380,0,1,0,1
3,4412,1,1,1,500,500,1,1,0,1
1,2865,1,1,1,300,275,0,1,0,1
3,15012,2,1,2,430,1200,0,1,0,1
3,7598,2,1,2,520,540,0,1,1,1
3,7996,2,1,2,530,500,1,1,0,1
3,8108,2,1,2,350,300,1,1,0,1
3,14705,2,1,2,400,500,1,1,1,1
3,18933,2,1,2,500,500,0,1,0,1
3,22158,3,1,2,625,725,0,1,1,1
1,3345,2,1,2,300,325,0,1,0,1
На первом этапе обработки данных обычно используются параметры системы, установленные по умолчанию. Результаты построения начального дерева решений приведены в таблице 2.6
Таблица 2.6
Результаты построения начального дерева решений
See5 [Release 2.02a] Sun Apr 16 13:51:02 2006
--------------------
Options:
Generating rules
Class specified by attribute `Class'
Read 50 cases (11 attributes) from vk.data
Decision tree:
SLI = 1: 3 (9)
SLI = 0:
:...TVIn = 1: 3 (2)
TVIn = 0:
:...MemFreq <= 800: 1 (36)
MemFreq > 800: 2 (3)
Rules:
Rule 1: (36, lift 2.3)
MemFreq <= 800
SLI = 0
TVIn = 0
-> class 1 [0.937]
Rule 2: (9, lift 3.6)
SLI = 1
-> class 3 [0.957]
Rule 3: (2, lift 3.3)
TVIn = 1
-> class 3 [0.900]
Rule 4: (3, lift 3.1)
MemFreq > 800
-> class 2 [0.890]
Default class: 1
Evaluation on training data (50 cases):
Decision Tree Rules
---------------- ----------------
Size Errors No Errors
3 0(0.0%) 4 0(0.0%) <<
(a) (b) (c) <-classified as
---- ---- ----
36 (a): class 1
3 (b): class 2
11 (c): class 3
Time: 0.0 secs
Файл данных vk.dataсодержит 50 объектов, каждый из которых описан одиннадцатью признаками.
В следующих строках изображено построенное дерево решений. Его можно интерпретировать следующим образом: "Если есть SLIилиTVIn− то класс = 3 (11 объектов), иначе если тактовая частота памяти не больше 800 МГц, то класс = 1 (36 объектов) иначе класс = 2 (3 объекта)".
Каждая ветка дерева заканчивается указанием номера класса, к которому она принадлежит. Например, самая первая ветка заканчивается записью 3 (9). Это означает, что данной ветке соответствует 9 объектов из определенного 3 класса. Аналогично для дочерних веток.
В следующем разделе отчета приводятся характеристики сконструированного классификатора, оцениваемые по обучающей выборке. Здесь мы видим, что построенное дерево решений имеет 3 ветки (Size= 3).
В завершающей части дается таблица с детальным разбором результатов классификации. Исходя из данных, можно сказать, что из класса 1 правильно классифицируются 36 объектов, в классе 2 правильно классифицируется 3 объекта, в классе 3 правильно классифицируются 11 объектов.
Количество сработавших правил равно 4, ошибок извлечения объектов не наблюдалось (0.0%).