11.3 Построение и тестирование моделей классификации
С использованием интерактивной оболочки rattle
можно построить шесть моделей классификации (вкладка Model
), подробно описанных нами в главах 3-8: деревья решений (Tree
), случайные леса и бустинг (Forrest
и Boost
), машину опорных векторов (SVM
), линейную модель (Linear
) и нейронную сеть (Neural Net
).
Для построения моделей разделим всю выборку на две части - обучающую и тестовую - в соотношении 70/30, т.е. отдельно проверочную выборку выделять не будем. Также заблокируем сопутствующие переменные Date
и Location
.
Начнем с построения традиционных деревьев рекурсивного разделения rpart
и построим модель прогнозирования дождя на следующий день RainTomorrow
с использованием параметров, принятых по умолчанию:
Построенное дерево основано на трех переменных из 20: облачности (Cloud3pm
), атмосферном давлении в 15:00 ч (Pressure3pm
), а также количества часов яркого света за день (Sunshine
).
Для оценки эффективности модели переходим во вкладку Evaluate
:
Построенную модель мы можем оценить по 9 группам показателей. Кроме того, тестирование можно выполнить как по всей выборке (Full
), так и отдельно по обучающей (Training
) и экзаменационной (Testing
) последовательностям.
Матрица неточностей (Error Matrix
) является наиболее общим результатом выполненного анализа:
Другой подход к оценке эффективности бинарного классификатора заключается в построении кумулятивной версии ROC-кривой - диаграммы риска (risk chart
), также известной как диаграмма полезности (gain
).
Summary Decision Tree model (rpart) on weather [test]
by probability cutoffs.
Recall Risk Caseload Precision Measure
0.0512820512821 1.00 1.0000000 1.0000000 0.2272727 0.0000000
0.2 0.64 0.6391960 0.3272727 0.4444444 0.6246505
0.6666666666667 0.60 0.6221106 0.2363636 0.5769231 0.7493833
0.7407407407407 0.48 0.5075377 0.1727273 0.6315789 0.6420831
1.0 0.00 0.0000000 0.0000000 1.0000000 0.0000000
Area under the Recall (green) curve: 77% (0.771)
Area under the Risk (red) curve: 78% (0.777)
Для построения диаграмм риска, как правило, используются дополнительно контрольные наборы данных (audit dataset
). Так, для таблицы weather
в обучении любой модели классификации могут участвовать две переменные: бинарный отклик RainTomorrow
и переменная риска RISK_MM
, связанная с мерой вероятности наступления прогнозируемого события, оцененная аудитом для каждого наблюдения.
Наблюдения упорядочивают по убыванию предсказанных для них оценок риска RISK_MM
и на оси абсцисс диаграммы последовательно откладывают доля наблюдений (Case load
, %), а по оси ординат - доля удачных прогнозов (Perfomance
) на основании построенной модели. Линия главной диагонали не связана с какой-либо моделью прогнозирования, т.е. для 50% наблюдений случайное угадывание окажется верным лишь в 50% случаев. Если использовать предсказанные деревом решений вероятности предстоящего дождя, то мы получим уже 73% случаев верного прогноза. Сканируя долю наблюдений от 0 до 100%, можно получить также сглаженную диаграмму изменения риска RISK_MM
(показана красной пунктирной линией). Пунктирная синяя линия указывает на графике изменение специфичности (precision
). Подробности анализа диаграмм риска и других показателей эффективности моделей представлены в монографии по rattle
(Williams, 2009, 2011).
Для оценки традиционной AUC можно построить ROC-кривую (ROC) и рассчитать такие критерии, как энтропия H
и индекс Джини Gini
:
H=0.302928, Gini=0.475765, AUC=0.737882,AUCH=0.741647, KS=0.470588
Точность остальных шести моделей прогнозирования оценивается по тому же принципу и столь подробно далее рассматриваться не будет. Мы приведем только основные характеристики построенных моделей, AUC и точность классификации на тестовой выборке, а в некоторых случаях также информацию о наиболее важных предикторах.
Деревья условного вывода (Сonditional Trees):
Conditional inference tree with 4 terminal no1des
Area under ROC curve for ctree model on weather [test] is 0.7379
Overall error: 19%, Averaged class error: 26%
Модель случайного леса (Random Forrest):
No. of variables tried at each split: 4
OOB estimate of error rate: 14.45%
Area under ROC curve for rf model on weather [test] is 0.9009
Overall error: 11%, Averaged class error: 22%
Variable Importance
No Yes MeanDecreaseAccuracy MeanDecreaseGini
Pressure3pm 12.53 10.96 15.42 5.45
Cloud3pm 13.40 9.38 15.10 3.26
Sunshine 13.10 7.59 14.40 4.16
WindGustSpeed 10.17 6.71 11.90 2.94
MaxTemp 9.10 -0.97
Модель бустинга (Ada Boost):
Loss: exponential Method: discrete Iteration: 50
Train Error: 0.047
Out-Of-Bag Error: 0.07 iteration= 37
Area under the ROC curve for ada model on weather [test] is 0.8593
Overall error: 15%, Averaged class error: 20%
Frequency of variables actually used:
Sunshine Pressure3pm Cloud3pm Temp3pm WindGustSpeed
32 28 17 13 13
Модель опорных векторов (Support Vector Machine):
SV type: C-svc (classification) parameter : cost C = 1
Gaussian Radial Basis kernel function.
Hyperparameter : sigma = 0.0379412611254591
Number of Support Vectors : 107
Objective Function Value : -59.5602
Training error : 0.100877
Area under ROC curve for ksvm model on weather[test] is 0.9248
Overall error: 18%, Averaged class error: 38%
Модель логистической регрессии::
Model: binomial, link: logit Response: RainTomorrow
Area under ROC curve for the glm model on weather [test] is 0.6597
Overall error: 29%, Averaged class error: 34%
Analysis of Deviance Table
Df Deviance Resid. Df Resid. Dev Pr(>Chi)
NULL 227 205.456
MinTemp 1 14.151 226 191.305 0.0001688 ***
MaxTemp 1 2.131 225 189.175 0.1443620
Rainfall 1 0.022 224 189.152 0.8811792
Evaporation 1 0.012 223 189.141 0.9143115
Sunshine 1 25.223 222 163.918 0.0000005108 ***
WindGustDir 15 41.721 207 122.197 0.0002481 ***
WindGustSpeed 1 7.516 206 114.681 0.0061156 **
WindDir9am 15 19.016 191 95.665 0.2130107
... ...
Pressure9am 1 6.431 171 71.042 0.0112151 *
Pressure3pm 1 71.042 170 0.000 < 2.2e-16 ***
... ...
RainToday 1 0.000 165 0.000 0.9998435
Нейронная сеть прямого распространения:
Summary of the Neural Net model (built using nnet):
A 62-10-1 network with 703 weights.
Sum of Squares Residuals: 0.0017.
Area under ROC curve for nnet model on weather [test] is 0.6766
Overall error: 25%, Averaged class error: 32%
При иных формах представления отклика (в метрической или счетной шкале) возможно также построение обычной или обобщенной модели на основе распределений Гаусса или Пуассона, а также логит- или пробит-моделей для откликов с несколькими классами.