wersji krótkiej:R daszka: Zwiększanie czułość ręcznie określony dodatni klasy szkolenia (klasyfikacja)
istnieje sposób poinstruować daszka trenować regresji model
- Stosując użytkownikowi zdefiniowana etykieta jako "pozytywna etykieta klasy"?
- Optymalizować model czułości podczas treningu (zamiast ROC)?
Długa wersja:
Mam dataframe
> feature1 <- c(1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0)
> feature2 <- c(1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,1,1)
> feature3 <- c(0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0)
> TARGET <- factor(make.names(c(1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,1,1)))
> df <- data.frame(feature1, feature2, feature3, TARGET)
i model szkoleniowy jest realizowany jak
> ctrl <- trainControl(
+ method="repeatedcv",
+ repeats = 2)
>
> tuneGrid <- expand.grid(k = c(2,5,7))
>
> tune <- train(
+ TARGET ~ .,
+ metric = '???',
+ maximize = TRUE,
+ data = df,
+ method = "knn",
+ trControl = ctrl,
+ preProcess = c("center","scale"),
+ tuneGrid = tuneGrid
+)
> sclasses <- predict(tune, newdata = df)
> df$PREDICTION <- make.names(factor(sclasses), unique = FALSE, allow_ = TRUE)
chcę maksymalizować sensitivity = precision = A/(A + C)
Gdzie Event
(na zdjęciu) powinny być w moim przypadku X1 = action taken
. Ale opiekun używaX0 = no action taken
.
mogę ustawić pozytywny klasę dla mojej macierzy błędów za pomocą positive
argumentu jak
> confusionMatrix(df$PREDICTION, df$TARGET, positive = "X1")
Ale czy jest jakiś sposób, aby ustawić ten trening while (maksymalizując czułość)?
Już sprawdziłem, czy istnieje inna miara odpowiadająca mojej potrzebie, ale nie udało mi się znaleźć jej w documentation. Czy muszę zaimplementować własne summaryFunction
dla trainControl
?
Dzięki!
W klasyfikacji można używać jako 'summaryFunction'' twoClassSummary' wewnątrz 'trainControl (..., classProbs = TRUE, summaryFunction = twoClassSummary)'. Następnie użyj 'metric' Sens wewnątrz' train (..., metric = "Sens") '. –