클래스 레이블을 예측하는 것 외에도 예측할 때 새로운 데이터의 각 관찰에 대한 기대치를 반환 할 수 있습니까?캐럿 :: predict()에서 클래스 확률과 예측을 얻는 방법?
library(caret)
knnFit <- train(Species ~ ., data = iris, method = "knn",
trControl = trainControl(method = "cv", classProbs = TRUE))
x <- predict(knnFit, newdata = iris)
예상되는 클래스의 벡터를 반환합니다.
str(x)
Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
내가 확률하려면 다음
x <- predict(knnFit, newdata = iris, type = "prob")
> head(x)
setosa versicolor virginica
1 1 0 0
2 1 0 0
3 1 0 0
4 1 0 0
5 1 0 0
6 1 0 0
는 캐럿 수익 예측과 확률을 모두 가질 수 있습니다를? 나는 확률 버전의 max.col을 취하여 계산할 수 있다는 것을 알고 있지만 두 가지를 모두 얻을 수있는 방법이 있는지 궁금해했다.
이미'predict() '를 두 번 호출하십시오. 단일 호출이 필요한 경우 도우미 함수를 작성하십시오. 문제가 무엇인지 여기에서 이해할 수 있는지 잘 모르겠습니다. – MrFlick
@MrFlick 왜냐하면 저는 실제로 10M 이상의 기록을 예측하고 있기 때문에 시간이 매우 중요합니다. 가능한가? –
아니요. 'caret :: predict.train'에서 소스를 볼 수 있습니다. 유형에 따라 if/else 분기가 명확하게 있습니다. 두 번 전화하는 것이 너무 느립니다? 시간 있니? 내 말은, 당신은 모든 소스 코드를 살펴보고 자신의 코드를 해킹 할 수 있지만 C++ 등의 R 함수를 다시 구현하지 않으면 훨씬 더 빠를 것이라고 확신합니다. – MrFlick