PLS-DA с каретой: несбалансированные классы и: "Нет сходимости в 100 итерациях. В измеренных показателях производительности отсутствовали значения".
Я управляю PLS-DA с пакетом каретки в R. Категориальная переменная имеет 4 уровня (но с очень неодинаковым числом наблюдений в каждом классе).
Ycalib<-factor(file2[,1664],levels=c("0","1","2","3"),labels=c("open","preg_begin","preg_mid","preg_end")) # create the factor vector
Xcalib<-data.frame(file2[,1126:1663]) # create the spectral matrix (538 spectral points)
Количество наблюдений для каждого уровня категориальной переменной:
Ycalib
open preg_begin preg_mid preg_end
814 329 170 81
PLS-DA с кареткой:
set.seed(1001)
folds<-createFolds(Ycalib,k=10,list = TRUE, returnTrain = TRUE)
set.seed(1001)
ctrl<-trainControl(method="repeatedcv",index=folds,classProbs = TRUE,summaryFunction = multiClassSummary,savePredictions = TRUE)
plsda<-train(x=Xcalib, # spectral data
y=Ycalib, # factor vector
method="pls", # pls-da algorithm
tuneLength=40, # number of components
trControl=ctrl, # ctrl contained cross-validation option
preProc=c("center","scale"), # the data are centered and scaled
metric="Accuracy")
plsda
Моя первая проблема: адаптирован ли PLS-DA к очень несбалансированным классам для категориальной переменной? Или я должен использовать другой метод или изменить набор данных, чтобы иметь более сбалансированные классы?
Второе мое беспокойство: у меня несколько раз выводилось следующее предупреждающее сообщение: "Нет сходимости за 100 итераций", и это предупреждающее сообщение один раз: "В измеренных показателях производительности отсутствовали значения". Как показано в результатах ниже (отображается только одна часть результатов), отсутствуют значения для "Mean_f1", а также "Mean_Pos_Pred_Value", "Mean_Neg_Pred_Value" и Mean_Precision. У меня нет пропущенных значений в моем наборе данных, и я сделал классифицированная 10-кратная перекрестная проверка (таким образом, 10-кратные должны иметь наблюдения для каждого из 4 уровней). Поэтому я не понимаю, почему у меня были предупреждающие сообщения и отсутствующие результаты для некоторых параметров.
Partial Least Squares
1394 samples
538 predictor
4 classes: 'open', 'preg_begin', 'preg_mid', 'preg_end'
Pre-processing: centered (538), scaled (538)
Resampling: Cross-Validated (10 fold, repeated 1 times)
Summary of sample sizes: 1255, 1255, 1254, 1254, 1256, 1255, ...
Resampling results across tuning parameters:
ncomp logLoss AUC prAUC Accuracy Kappa Mean_F1 Mean_Sensitivity Mean_Specificity
1 1.233540 0.5851974 0.2963505 0.5831970 0.000661024 NaN 0.2501403 0.7501567
2 1.225929 0.6623355 0.3341668 0.5846308 0.005235852 NaN 0.2516554 0.7510188
3 1.216043 0.6751154 0.3486090 0.5868098 0.011681593 NaN 0.2535067 0.7523346
4 1.214622 0.6763016 0.3458556 0.5853864 0.015383145 NaN 0.2556255 0.7526471
5 1.209686 0.7067661 0.3562015 0.5839423 0.011474084 NaN 0.2536141 0.7522026
6 1.203048 0.7232180 0.3741496 0.5832487 0.036805951 NaN 0.2605782 0.7577878
7 1.199465 0.7309437 0.3889174 0.5839632 0.063128255 NaN 0.2737402 0.7623851
8 1.192915 0.7470142 0.4110239 0.5832592 0.085307670 NaN 0.2862150 0.7678212
9 1.186647 0.7547501 0.4299841 0.5917788 0.123678795 NaN 0.3030414 0.7762541
10 1.181008 0.7638286 0.4411165 0.6047081 0.173010847 NaN 0.3205881 0.7880412
11 1.178762 0.7640707 0.4398066 0.6054737 0.182789377 0.4013847 0.3298904 0.7902029
12 1.177114 0.7638542 0.4404137 0.6032949 0.188886623 0.3743683 0.3352235 0.7920242
13 1.173226 0.7701415 0.4466328 0.6068715 0.193456791 0.4077762 0.3412866 0.7932108
14 1.169227 0.7779112 0.4569464 0.6132689 0.208885686 0.3999339 0.3419799 0.7967655
15 1.171063 0.7721757 0.4471019 0.6097183 0.204557730 0.3848546 0.3363713 0.7961563
16 1.167403 0.7757388 0.4480235 0.6068249 0.207320225 0.3957167 0.3442419 0.7968578
17 1.164090 0.7811313 0.4533329 0.6068715 0.213921894 0.4127399 0.3475223 0.7986636
18 1.162631 0.7832160 0.4538363 0.6169128 0.236294962 0.4327847 0.3608552 0.8038477