Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы и модели решения задачи классификации данных. Основные этапы. Учебное пособие
.pdf
5. С какой целью выполняется этап анализа и устранения дисба-
ланса классов в исходных данных?
Опишите основные методы семплирования, которые использу-
6.
ются для устранения дисбаланса классов. В чем достоинства и недостатки каждого из методов?
Опишите этап первичного (разведочного) анализа данных. Ка-
7.
кова цель проведения этапа первичного анализа данных? Какие основные операции выполняются на этом этапе?
Для чего выполняется графический анализ данных? Какие типы
8.
графиков существуют? Приведите примеры.
Какие методы используются для исследования закона распреде-
9.
ления данных? В чем различия параметрических и непараметрических
критериев согласия?
Для чего исследуются законы распределения признаков при ре-
10.
шении задачи классификации?
В чем различия простой и сложной гипотезы о проверке согласия
11.
теоретического и выборочного закона распределения данных?
Опишите основные критерии согласия для проверки гипотезы
12.
о нормальном распределении выборочных данных: алгоритм использования критерия; критическая статистика критерия; сравнительная мощность критерия.
Для чего проводится этап исследования взаимосвязей в данных
13.
при решении задачи классификации?
Что понимается под корреляционным анализом данных? Какие
14.
основные задачи решаются в рамках корреляционного анализа данных?
Какие характеристики взаимосвязи используются на каждой
15.
из шкал измерения значений признака (количественная, порядковая,
классификационная)? Опишите основные характеристики: суть; основная расчетная формула; свойства; ограничения использования; критерий для проверки гипотезы о статистической незначимости характеристики взаимосвязи.
Что понимается под дисперсионным анализом данных? Приве-
16.
дите постановку задачи и алгоритм применения однофакторного одномерного и однофакторного многомерного дисперсионного анализа.
Для чего проводится дисперсионный анализ данных при реше-
17.
нии задачи классификации?
Каковы условия применения дисперсионного анализа данных?
18.
Приведите алгоритм работы наивного байесовского классифика-
19.
тора.
51

20. Каковы условия применения наивного байесовского классификатора? Опишите достоинства и недостатки метода.
Какие подходы используются для формирования обучающей
21.
и тестовой выборки из исходных данных?
Какие основные метрики используются на этапе оценки точно-
22.
сти модели классификации? Приведите описание каждой из мер: суть
меры; основная формула; достоинства и недостатки.
Что понимается под ROC-анализом? Как строится и интерпрети-
23.
руется ROC-кривая?
Что означает подход One-vs-All при вычислении метрик точно-
24.
сти для случая многоклассовой классификации?
Чем различаются микро- и макроусреднение при вычислении
25.
метрик точности при многоклассовой классификации? Приведите
пример.
52

2. РЕШЕНИЕ ЗАДАЧИ КЛАССИФИКАЦИИ
В СРЕДЕ R
В настоящем разделе рассмотрен комплексный пример решения задачи классификации с использованием пакетов и функций языка R.
Приведены и подробно описаны все этапы процесса решения задачи
(см. рис. 1): от предварительного анализа исходных данных, устранения
дисбаланса классов, выбора и обоснования предикторов, применения
классификатора до оценки точности полученных решений и интерпретации результатов
няется наивный байесовский классификатор. В качестве исходных данных в исследовании используется БД, содержащая показатели эффективности деятельности IT-специалистов.
Постановка задачи исследования
Изучаются ключевые показатели эффективности KPI (Key Performance Indicators) IT-специалистов крупной компании. Для проведения
статистического исследования предоставлена БД (data.csv), включающая 300 записей (наблюдений), каждая из которых содержит описание
показателей деятельности IT-специалиста (объем выборки равен 300).
Все IT-специалисты разделены на четыре класса в зависимости от квалификации и результативности работы в компании: первый класс – низкий уровень; второй класс – средний уровень; третий класс – высокий
уровень; четвертый класс – очень высокий уровень.
Рассматриваются следующие показатели (признаки) для каждого
IT-специалиста:
возраст, год;
ВТ1 – время написания тестовой программы первого типа, ч;
ВТ2 – время написания тестовой программы второго типа, ч;
стаж – стаж работы по специальности в данной компании, лет;
. Для классификации наблюдений (объектов) приме-
53

УОС – условная оценка сложности решаемых задач (в 100-балль-
ной шкале);
КВК – качество выполненного кода, количество ошибок (в 100-
балльной шкале);
СС – соблюдение сроков (отношение отведенного времени на вы-
полнение задачи к фактически затраченному времени, в 100-балльной
шкале);
СВЗ – скорость выполнения задач (отношение количества задач
к фактическому времени, в 100-балльной шкале).
О – образование (непрофильное – 0; профильное – 1);
С – наличие сертификатов о повышении квалификации в IT-сфере
(0 – сертификаты отсутствуют; 1 – сертификаты первого уровня; 2 – сер-
тификаты второго уровня, 3 – сертификаты третьего уровня).
Конечной целью исследования является построение правила отнесения IT-специалиста к одному из заданных классов (групп) по совокупности выделенных показателей эффективности, т. е. решение задачи
классификации «с учителем».
2.1. ПОДГОТОВКА ДАННЫХ ДЛЯ АНАЛИЗА
Исследование начинается с загрузки таблицы с исходными данными
(data.csv) в рабочую среду R для анализа.
Основной функцией для импортирования данных в рабочую среду
R является read.table(). Функция имеет большое количество управляю-
щих аргументов, из которых, как правило, достаточно использовать минимальный набор:
data<-read.table(file="C:\\User\\Desktop\\data.csv", header=TRUE, sep=";")
Аргументы функции:
file – путь к импортируемому файлу;
header – наличие в загружаемом файле строки с заголовками
столбцов, по умолчанию значение FALSE;
sep – тип разделителя значений переменных, хранящихся в столб-
цах, по умолчанию предполагается пробел или знак табуляции sep="";
dec – тип разделителя целой и дробной части, по умолчанию
dec=".".
В результате загружаемая в формате .csv таблица сохраняется в виде
объекта (фрейма данных) с именем data.
54

На следующем этапе необходимо определить типы признаков с использованием команды:
str(data)
В результате выводится информации о типе каждого из признаков
и несколько первых значений признака:
Тип признаков О (образование), С (сертификация), «Класс» автоматически определен как целое (int), что неверно, поэтому используется
преобразование форматов для приведения признаков к качественному
типу:
data$Класс<-as.factor(data$Класс)
data$О<-as.factor(data$О)
data$С<-as.factor(data$С)
В итоге преобразования качественные признаки имеют факторный
тип (factor), что позволяет выполнять дальнейший анализ и применять
функции, предназначенные для
построения классификационных мо-
делей:
Для статистического описания исходных данных выполняется расчет основных выборочных характеристик с использованием функции:
summary(data)
55

Для количественных характеристик рассчитываются оценки среднего (Mean), медианы (Median), квартилей уровней 0,25 и 0,75 (1
rd
Qu), минимального и максимального значения (min и max).
и 3
st
Qu
Для качественных характеристик приводится количество наблюдений
при каждом значении уровня фактора (признака):
На следующем этапе исходные данные делятся на две части в соотношении 0,7 и 0,3: обучающая выборка – 70 % и тестовая выборка –
30 %:
install.packages("caTools")
library(caTools)
split <- sample.split(data$Класс, SplitRatio = 0.3)
Test <- subset(data, split == TRUE)
Train <- subset(data, split == FALSE)
Модель классификации строится на обучающей выборке, а точность
классификации проверяется на объектах тестовой выборки.
2.2. УСТРАНЕНИЕ ДИСБАЛАНСА КЛАССОВ
Как видно из результатов расчета статистических характеристик,
наблюдается дисбаланс классов в исходных данных (data): в первом
классе – 120 наблюдений, во втором классе – 75 наблюдений; в третьем
классе – 69 наблюдений; в четвертом классе – 36 наблюдений. Поэтому
предлагается применить балансировку классов на основе использования
методов и алгоритмов семплирования для получения более точных результатов классификации. При этом необходимо
учесть, что балансировка выполняется только для объектов обучающей выборки, при этом
тестовая выборка всегда остается без изменений.
56

Функции, реализующие методы устранения дисбаланса классов (алгоритмы семплинга), включены в пакет UBL, который необходимо установить:
install.packages("UBL")
library(UBL)
Метод увеличения выборки реализует функция:
RandOverClassif(as.formula(form), Train, C.perc = "balance", repl = TRUE)
Аргументы функции:
as.formula(form) – формула, описывающая модель классификации
данных (зависимую и независимые переменные);
Train – имя фрейма данных, хранящего выборку исходных дан-
ных;
C.perc – именованный кортеж, содержащий название каждого
класса и соответствующий процент увеличения выборки этого класса
(больший или равный 1, где 1 – выборка не подвергается перебалансировке; 2 – с увеличением вдвое и т. д.); параметр определяет, насколько
сильно требуется балансировать классы путем генерации синтетических наблюдений (объектов); может принимать параметры «balance»
(балансирует все классы) и «extreme» (инвертирует количество объектов в исходных классах);
repl – параметр (логическое значение: TRUE; FALSE), который
отвечает за возможность повторного включения объектов из исходной
выборки в сбалансированную выборку; параметр имеет смысл только
при проценте увеличения выборки от 1 до 2; в случае процента увеличения более двух параметр repl всегда равен TRUE.
Метод сокращения выборки реализует функция:
RandUnderClassif(as.formula(form), Train, C.perc = "balance", repl = FALSE)
Метод расширения выборки меньшинства синтетическими образцами реализует функция:
SmoteClassif(as.formula(form), Train, C.perc = "balance", dist = "HEOM", k=3)
Аргументы функции:
dist – метрика расстояний, которая задается в зависимости от типа
значений признака: количественные признаки: "Manhattan", "Euclidean",
"Canberra", "Chebyshev", "p-norm"; качественные признаки: "Overlap" –
перекрытие; количественные и качественные признаки: "HEOM" –
57

Heterogeneous Euclidean-Overlap Metric (гетерогенная евклидова мет-
рика перекрытия), "HVDM" – Heterogeneous Value Difference Metric;
k – количество ближайших соседей, которые используются для
создания новых объектов миноритарного класса (классов).
Метод адаптивной синтетической выборки реализует функция:
AdasynClassif(as.formula(form), Train, baseClass = NULL, beta = 1, dth =
0.95, k = 3, dist = "HEOM")
Аргументы функции:
baseClass – класс, с которым сравниваются другие классы; по
умолчанию выбирается мажоритарный класс;
beta – параметр, который задает уровень баланса выборки ();
dth – порог максимально допустимой степени дисбаланса классов
();d
по умолчанию установлено значение 0,95, это означает, что
max
стратегия применяется, если коэффициент дисбаланса превышает 5 %
по сравнению с базовым классом.
Применим разные варианты функций балансировки классов к исходным данным:
dataRU<-RandUnderClassif(Класс~.,Train, C.perc = "balance", repl = TRUE)
dataRO1<-RandOverClassif(Класс~.,Train, C.perc = "balance", repl = TRUE)
dataRO2<-RandOverClassif(Класс~.,Train, C.perc = list("1"=4, "2"=2, "3"=2,
"4"=1), repl = TRUE)
dataRO3<-RandOverClassif(Класс~.,Train, C.perc = "extreme", repl = TRUE)
dataSC <- SmoteClassif(Класс~.,Train, C.perc = "balance", dist = "HEOM",
k=3)
dataAC <- AdasynClassif(Класс~.,Train, beta = 1, dth = 0.95, dist = "HEOM",
k=3)
В результате балансировки изменяется количество объектов в каждом классе (табл
. 2).
Сокращение выборки (dataRU) приводит к выравниванию количества объектов в классе по миноритарному классу (25 наблюдений в каждом классе). Увеличение выборки с условием "balance" (dataRO1) приводит к выравниванию количества объектов в классе по мажоритарному
классу (84 наблюдения в каждом классе). В dataRO2 количество наблюдений каждого класса увеличено в соответствии с заданными пропор-
58

циями; в dataRO3 происходит инвертирование количества объектов
в классах (миноритарный класс становится мажоритарным); в dataSC
и dataAC число объектов в классах не равно между собой, но при этом
диспропорция незначительна.
Таблица 2
Результаты балансировки классов
dataRU dataRO1 dataRO2 dataRO3 dataSC dataAC
В дальнейшем анализе будет использоваться выборка (dataRO1),
сбалансированная методом увеличения с равными размерами классов
(84 объекта в каждом классе): Train<-dataRO1.
2.3. ПРОВЕДЕНИЕ ПЕРВИЧНОГО АНАЛИЗА ДАННЫХ
2.3.1. ОЦЕНКА ЗАКОНА РАСПРЕДЕЛЕНИЯ ДАННЫХ
В рамках первичного анализа проводится исследование законов распределения выборочных данных внутри каждого класса по каждому
из признаков и проверка распределения на соответствие нормальному
закону. Для проверки визуального соответствия строится гистограмма
(оценка функции плотности распределения вероятностей) с наложением
модели нормального закона распределения. Для примера приведен код
построения гистограмм распределения признака
СВЗ (скорость выпол-
нения задач) в каждом их четырех классов для обучающей выборки:
install.packages("rcompanion")
library(rcompanion)
data1<-Train[Train$Класс=="1",]
data2<-Train[Train$Класс=="2",]
data3<-Train[Train$Класс=="3",]
data4<-Train[Train$Класс=="4",]
59

par(mfrow = c(2,2))
plotNormalHistogram(data1$СВЗ, xlab="СВЗ (1 класс)", ylab="Количество",
length = 1000, breaks = seq(min(data1$СВЗ), max(data1$СВЗ), length.out = 7))
plotNormalHistogram(data2$СВЗ, xlab="СВЗ (2 класс)", ylab="Количество",
length = 1000, breaks = seq(min(data2$СВЗ), max(data2$СВЗ), length.out = 7))
plotNormalHistogram(data3$СВЗ, xlab="СВЗ (3 класс)", ylab="Количество",
length = 1000, breaks = seq(min(data3$СВЗ), max(data3$СВЗ), length.out = 7))
plotNormalHistogram(data4$СВЗ, xlab="СВЗ (4 класс)", ylab="Количество",
length = 1000, breaks = seq(min(data4$СВЗ), max(data4$СВЗ), length.out = 7))
На рис. 7 представлены гистограммы распределения признака СВЗ
по классам.
Рис. 7. Гистограммы распределения признака СВЗ по классам
(обучающая выборка)
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
