Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы и модели решения задачи классификации данных. Основные этапы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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 Perfor­mance 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]