- •Системи підтримки прийняття рішень методичні вказівки
- •Частина 2
- •1 Задача классификации и оценка качества ее решения 4
- •2 Методи вирішення задач класифікації 15
- •3 Предобработка данных 66
- •4 Рекомендована література 75
- •1 Задача классификации и оценка качества ее решения
- •1.1 Постановка задачи
- •1.3 Геометрична інтерпретація задачі класифікації
- •1.4 Оцінка якості моделі класифікації
- •1.2 Методы, применяемые для решения задач классификации:
- •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 Литература
2.2 Логистическая регрессия
Логистическая регрессия применяется для предсказания вероятности возникновения некоторого события по значениям множества признаков. Для этого вводится так называемая зависимая переменная y, принимающая лишь одно из двух значений — как правило, это числа 0 (событие не произошло) и 1 (событие произошло), и множество независимых переменных (также называемых признаками, предикторами или регрессорами) — вещественных x1,x2,...,xn, на основе значений которых требуется вычислить вероятность принятия того или иного значения зависимой переменной.
На практике логистическая регрессия используется для решения задач классификации с линейно-разделяемыми классами.
Задана
выборка – множество
пар
,
в которых описание
-го
элемента
,
и значения зависимой переменной
.
Принята
модель логистической регрессии, согласно
которой свободные переменные
и зависимая переменная y
связаны зависимостью
где
.
Примем
обозначения
,
вектор
.
Для удобства дальнейшего изложения
обозначим выборку свободных переменных
как
.
Требуется
найти такое значение вектора параметров
,
которое бы доставляло минимум норме
вектора невязок
Алгоритм отыскания оптимальных параметров. Оптимальные параметры отыскиваются последовательно с помощью итерационного метода наименьших квадратов с использованием взвешивания элементов выборки. Приведенный ниже алгоритм основан на алгоритме Ньютона-Рафсона.
В
начале работы алгоритма задаются
параметры начального приближения:
скаляр
,
где
- среднее значение выборки зависимой
переменной и значения
для j=1,2,…,n.
Далее итеративно повторяется следующая процедура:
с использованием вектора параметров вычисляется переменная
;вычисляется восстановленное значение выборки зависимой переменной
;
вычисляется вектор значений зависимой переменной для текущего шага линейной регрессии
,
где
- вектор весов значений зависимой
переменной;
решается задача наименьших квадратов с взвешиванием элементов выборки. При этом больший вес приобретают те элементы, которые имеют большую невязку,
,
где
- диагональная матрица весов.
Процедура
останавливается после того, как норма
разности векторов параметров на каждой
итерации не будет превышать заданную
константу:
.
Пример на модельных данных % Перед началом работы алгоритма задаются начальные % значения параметров.
b0 = log(mean(y)/(1-mean(y)));
% 1st element, function of the mean value of y's
b = [b0 zeros(size(X,2)-1,1)]'; % column-vector of parameters
% Итерационное вычисление параметров логистической регрессии
while 1==1
z = X*b;
p = 1./(1+exp(-z)); % recover the regression
w = p.*(1-p); % calculate the weights of the samples
u = z + (y-p)./w; % calculate the dependent variable for this step
b_old = b; % store old parameters
b = inv( X'*diag(w)*X ) * X' * diag(w) * u;
% calculate new parameters with least squares
% terminate the iterations if changes of the parameters are small
if sumsqr(b - b_old) <= TolFun, break; end
end
Функция MatLab для логистической регрессии
Для получения параметров логистической регрессии используют функцию обощенной линейной регрессионной модели
b = glmfit(X,y,distr)
Функция возвращает вектор b размером m-на-1 коэффициентов обощенной линейной регрессии для зависимой переменой y и матрицы наблюдений X, используя распределение distr. X - матрица m * n для n наблюдений. Если distr принимает значение 'binomial', то получаем логистическую регрессию. В этом случае вектор y - двоичный вектор, характеризующий успех или неудачу для каждого наблюдения. Модель сводится к линейной преобразованием
log(p/(1 – p)) = Xb,
которое называется логит-преобразованием.
