Как использовать LOOCV, чтобы найти подмножество, которое классифицирует лучше, чем полный набор в R - PullRequest
2 голосов
/ 15 марта 2020

Я работаю с данными wbca из далекого пакета. Априорная вероятность отбора злокачественной опухоли π0 = 1/3, а предыдущая вероятность отбора доброкачественной опухоли π1 = 2/3.

Я пытаюсь использовать наивный байесовский классификатор с многочленами, чтобы проверить, есть хорошее подмножество из 9 функций, которые классифицируются лучше, чем полный набор с использованием LOOCV.

Я не уверен, с чего начать, поэтому любая помощь по Rcode была бы полезной. Спасибо!

1 Ответ

1 голос
/ 15 марта 2020

Вы можете попробовать что-то ниже, оценка ядра ваших предикторов может быть не самой точной, но вы можете начать с нее:

library(faraway)
library(naivebayes)
library(caret)

x = wbca[,!grepl("Class",colnames(wbca))]
y = factor(wbca$Class)

ctrl <- rfeControl(functions = nbFuncs,
                   method = "LOOCV")

bayesProfile <- rfe(x, y,
                 sizes = subsets,
                 rfeControl = ctrl)

bayesProfile

Recursive feature selection

Outer resampling method: Leave-One-Out Cross-Validation 

Resampling performance over subset size:

 Variables Accuracy  Kappa Selected
         2   0.9501 0.8891         
         3   0.9648 0.9225         
         4   0.9648 0.9223         
         5   0.9677 0.9290         
         6   0.9750 0.9454        *
         7   0.9692 0.9322         
         8   0.9750 0.9455         
         9   0.9662 0.9255         

The top 5 variables (out of 6):
   USize, UShap, BNucl, Chrom, Epith

Вы можете получить оптимальные переменные:

bayesProfile$optVariables
[1] "USize" "UShap" "BNucl" "Chrom" "Epith" "Thick"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...