Ответ 1
Вы пытаетесь понять, как сфокусироваться в образце, используя матрицу путаницы. Ваш первый подход с использованием функции glm()
прекрасен.
Проблема со вторым подходом с использованием train()
заключается в возвращенном объекте. Вы пытаетесь извлечь из него значения, установленные в образце, на fit$pred$pred
. Однако fit$pred
не содержит установленных значений, которые выровнены с chile.v
или chile$vote
. Он содержит наблюдения и установленные значения различных (10) складок:
> head(fit$pred)
pred obs rowIndex parameter Resample
1 N N 2 none Fold01
2 Y Y 20 none Fold01
3 Y Y 28 none Fold01
4 N N 38 none Fold01
5 N N 55 none Fold01
6 N N 66 none Fold01
> tail(fit$pred)
pred obs rowIndex parameter Resample
1698 Y Y 1592 none Fold10
1699 Y N 1594 none Fold10
1700 N N 1621 none Fold10
1701 N N 1656 none Fold10
1702 N N 1671 none Fold10
1703 Y Y 1689 none Fold10
Итак, из-за случайности складок и из-за того, что вы прогнозируете 0 или 1, вы получаете точность примерно 50%.
В образцах, которые вы ищете, находятся в fit$finalModel$fitted.values
. Используя те:
fitpred <- fit$finalModel$fitted.values
fitpredt <- function(t) ifelse(fitpred > t , 1,0)
> confusionMatrix(fitpredt(0.3),chile.v)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 773 44
1 94 792
Accuracy : 0.919
95% CI : (0.905, 0.9315)
No Information Rate : 0.5091
P-Value [Acc > NIR] : < 2.2e-16
Kappa : 0.8381
Mcnemar Test P-Value : 3.031e-05
Sensitivity : 0.8916
Specificity : 0.9474
Pos Pred Value : 0.9461
Neg Pred Value : 0.8939
Prevalence : 0.5091
Detection Rate : 0.4539
Detection Prevalence : 0.4797
Balanced Accuracy : 0.9195
'Positive' Class : 0
Теперь точность приближается к ожидаемому значению. Установка порога в 0,5 дает примерно такую же точность, как оценка из 10-кратной проверки креста:
> confusionMatrix(fitpredt(0.5),chile.v)
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 809 64
1 58 772
Accuracy : 0.9284
95% CI : (0.9151, 0.9402)
[rest of the output omitted]
> fit
Generalized Linear Model
1703 samples
7 predictors
2 classes: 'N', 'Y'
No pre-processing
Resampling: Cross-Validated (10 fold)
Summary of sample sizes: 1533, 1532, 1532, 1533, 1532, 1533, ...
Resampling results
Accuracy Kappa Accuracy SD Kappa SD
0.927 0.854 0.0134 0.0267
Кроме того, в отношении вашего ожидания "что результаты проверки перекрестной проверки не должны работать намного хуже, чем первая модель", пожалуйста, проверьте summary(res.chileIII)
и summary(fit)
. Приспособленные модели и коэффициенты точно такие же, чтобы они дали одинаковые результаты.
PS: Я знаю, что мой ответ на этот вопрос запоздал, т.е. это довольно старый вопрос. Можно ли в любом случае ответить на эти вопросы? Я новичок здесь и ничего не нашел о "поздних ответах" в помощи.