- •Системи підтримки прийняття рішень методичні вказівки
- •Частина 2
- •1 Задача классификации и оценка качества ее решения 4
- •2 Методи вирішення задач класифікації 15
- •3 Предобработка данных 66
- •4 Рекомендована література 75
- •1 Задача классификации и оценка качества ее решения
- •1.1 Постановка задачи
- •1.2 Методы, применяемые для решения задач классификации:
- •1.3 Геометрична інтерпретація задачі класифікації
- •1.4 Оцінка якості моделі класифікації
- •1.5 Контрольные вопросы
- •2 Лабораторная работа № 4
- •2.1 Дискриминантный анализ
- •2.2 Логистическая регрессия
- •Пример на модельных данных % Перед началом работы алгоритма задаются начальные % значения параметров.
- •2.3 Классификация на основе дерева решений
- •1. Создание дерева решений
- •2. Прогнозирование с использованием полученного дерева решений.
- •3. Сокращение дерева.
- •4. Тестирование качества классификации
- •2.4 Метод k-ближайших соседей
- •Алгоритм knn
- •Простое невзвешенное голосование
- •Взвешенное голосование
- •Пример работы алгоритма knn
- •Области применения алгоритма knn
- •2.5 Наивный байесовский классификатор
- •2.6 Метод опорных векторов
- •2.7 Задания к лабораторной работе
- •2.8 Контрольные вопросы
- •3 Лабораторная работа №5 Предобработка данных
- •3.1 Понятие предобработки данных
- •3.2 Масштабирование
- •3.3 Сокращение размерности
- •3.3.2 Какие именно признаки брать – общий подход
- •3.3 Пример задачи прогнозирования с предварительной
- •3.4 Задания к лабораторной работе
- •3.5 Контрольные вопросы
- •4 Литература
3.3 Сокращение размерности
3.3.1 Метод главных компонент позволяет заменить большое количество информации, основанной на взаимно коррелирующих входных данных, множеством статистически независимых компонентов с учетом их важности. Имеем матрицу наблюдений независимой переменной ( переменных, наблюдений):
Согласно
методу главных компонент вычисляем
ковариационную матрицу для матрицы Х
:
размерность которой
.
Затем
вычисляем
- собственные числа ковариационной
матрицы и соответствующие им собственные
вектора
.
Собственные векторы и собственные
значения связаны зависимостью:
,
Собственные
значения симметричной неотрицательной
матрицы являются рациональными и
неотрицательными. Упорядочим их в
порядке убывания:
В аналогичной последовательности
расположим собственные векторы
,
сопряженные с
.
Если ограничиться
максимальными собственными значениями,
матрица W
преобразования PCA
(главных компонент) может быть определена
в форме
,
при
.
Эта матрица определяет преобразование
РСА
как линейное преобразование
Вектор
представляет собой вектор главных
компонент, имеющих наибольшее влияние
на реконструкцию вектора данных Х.
Реконструкция
Х на основе вектора
и ортогональной матрицы
проводится в соответствии с выражением
Представление
вектора Х наибольшими главными
компонентами
,
составляющими вектор
,
равнозначно сохранению информации о
наибольшей части энергии, содержащейся
во множестве данных. Первый (наибольший)
главный компонент, сопряженный с
своим собственным вектором
,
определяет направление в многомерном
пространстве, в котором вариация данных
максимальна.
В
системе MatLab
вычислить собственные числа и
соответствующие им собственные вектора
можно с помощью функции [V,D]=eig(A),
где V
– матрица собственных векторов, а D
– матрица, у которой на диагонали стоят
собственные числа. Обычно собственные
числа расположены по возрастанию,
поэтому выбираем несколько последних
собственных векторов и формируем из
них матрицу преобразования
.
Вычисляем на основании этой матрицы и
матрицы нормированных данных Х матрицу
- строки которой – главные компоненты,
а столбцы – исходные данные для обучающей
и тестирующей выборок нейронной сети.
В программе Deductor метод главных компонент реализован в пункте обработки данных – «Факторный анализ».
3.3.2 Какие именно признаки брать – общий подход
Это называется feature selection и feature extraction. Простыми словами, процесс выглядит так.
1. Составляем список имеющихся признаков.
2. Добавляем в него различные функции от признаков (как упомянутый логарифм от веса), комбинации разных признаков (например, длина*ширина*высота), и т.п. Что именно комбинировать и какие преобразования использовать, должно подсказать знание задачи и здравый смысл. Этот процесс относится к feature extraction.
3. Задаём функцию ошибки, то есть определяем как будет оцениваться точность классификации. Например, это может быть отношение правильно распознанных примеров к их общему количеству.
4. Переходим на один уровень абстракции выше.
Представим эдакий чёрный ящик, внутри которого находится классификатор вместе с обучающей и тестирующей выборками. На входе ящика — двоичный вектор, указывающий, какие признаки должен использовать классификатор; на выходе — величина ошибки классификации (на тестовой выборке).
Таким образом, задача выбора признаков сводится к задаче оптимизации: нужно найти такой входной вектор, при котором выходное значение ящика (ошибка классификации) будет минимально. Можно, например, добавлять признаки по одному (начиная с тех, которые сильнее всего улучшают результат). Можно использовать что-то посерьёзнее, типа генетических алгоритмов.
Что делать если количество зерен в реальности (в обучающей выборке) относится к количеству плевел как 1/200? Портит ли это обучающую выборку? В общем случае, портит: если одних примеров гораздо меньше, чем других, существует риск, что классификатор «запомнит» примеры из обучающей выборки, и не сможет адекватно распознавать другие похожие примеры (Overfitting). К тому же, если используется простейшая функция ошибки (правильно распознанных / размер выборки), философски настроенный классификатор может всегда отвечать «плевел» — и в 99.5% случаев будет прав.
