두 개의 다른 랜덤 포레스트 모델의 R- 제곱 비교


10

R의 randomForest 패키지를 사용하여 샘플보다 더 많은 예측 변수를 사용하여 "와이드"데이터 세트에서 지속적인 결과를 설명하기 위해 랜덤 포레스트 모델을 개발하고 있습니다.

특히, 하나의 RF 모델을 사용하여 절차에서 중요하다고 생각하는 ~ 75 개의 예측 변수를 선택할 수 있습니다.

이전에 여기에 게시접근 방식을 사용하여 해당 모델이 예약 된 테스트 세트의 실제 결과를 얼마나 잘 예측하는지 테스트하고 있습니다 .

... 또는 R :

1 - sum((y-predicted)^2)/sum((y-mean(y))^2)

그러나 이제 추가 할 수있는 추가 ~ 25 예측 변수가 있습니다. ~ 100 예측 변수 집합을 사용할 때 R²이 더 높습니다. 이것을 통계적으로 테스트하고 싶습니다. 다시 말해서 ~ 100 예측 변수 집합을 사용할 때 ~ 75 예측 변수를 사용하는 모형 적합보다 데이터 테스트에서 모형 테스트가 훨씬 더 좋습니다. 즉, RF 모델을 테스트 한 R²은 전체 데이터 셋에 맞는 RF 모델을 테스트 한 결과, R2는 축소 된 데이터 셋에 대한 RF 모델을 테스트 한 R²보다 훨씬 높습니다.

파일럿 데이터이므로 25 명의 예측 변수를 추가로 얻는 데 많은 비용이 들기 때문에 더 큰 후속 연구에서 이러한 예측 변수를 측정하기 위해 비용을 지불해야하는지 알아야합니다.

나는 어떤 종류의 리샘플링 / 순열 접근법을 생각하려고하지만 아무것도 생각하지 않습니다.

답변:


8

교차 검증! 캐럿열차 기능을 사용 하여 두 모델에 맞 춥니 다. 하나의 mtry 값을 사용하십시오 (두 모델 모두 동일). Caret은 재 샘플링 된 RMSE 및 를 반환합니다 .아르 자형2

캐럿 비 네트의 3 페이지를 참조하십시오 ( 전체 참조 설명서에도 있음 )


OP가 R 제곱 조정을 사용해야한다는 점을 제외하고는 동의합니다. 모델은 Y는 같지만 예측 변수 집합이 다르므로 사용 된 자유도 / 모델 복잡도의 차이에 대한 벌점을 맞추기 위해 R 제곱 조정이 필요합니다. 내가 본 다른 문제는 잠재적으로 샘플 크기 문제입니다. OP는 CV를 사용하더라도 이것이 지나치게 적합하지는 않다는 희망을 가지려면 대규모 샘플 크기가 필요합니다.
LSC

@LSC 나는 추가 데이터 세트 (선택에 사용되지 않음) 를 보유하고 있다면 표준화 된 RMSE와 같이 조정없이 R2를 사용할 수 있다고 말합니다 . 나는 이것을하기 위해 꽤 큰 데이터 세트가 필요하다는 것에 동의합니다.
Zach

새로운 데이터 또는 기존의 다른 모든 상수는 25 개 대 예측 모델의 R- 제곱과 비교할 때 100 개의 항을 모형 대 25에 넣는 경우 조정되지 않은 R- 제곱을 갖습니다. 이것은 둘 사이의 제곱 오차의 합계를 계산할 때 쉽게 볼 수 있습니다 (더 많은 용어는 더 낮은 SSE, 다른 모든 것). 사람들은 종종 더 많은 항이 R- 제곱을 감소시키지 않는다는 것을 잊어 버린다고 생각하지만, 가치에 비해 악취가 심하면 조정 된 R- 제곱을 줄일 수 있습니다.
LSC

"더 많은 용어는 R- 제곱을 감소시키지 않습니다"<-이 문은 샘플에서 R2를 계산할 때 거짓입니다.
Zach

내가 언급했듯이, 나는 많은 사람들이 이러한 질문을 처음부터 기억하지 못하기 때문에 지적하고 있습니다. 왜 이것이 샘플에서 이것이 사실인지 이해하고 새로운 데이터를 보유하지 않을 수 있다고 생각하면 원래 방정식에서 무엇이 무엇이 어떻게 최적화되는지 이해하는 것이 중요합니다.
LSC

4

I는 잭 동의 가장 생각 두 모델을 검증 교차하고 비교하는 것을 각 배의 값을 수집하여 윌 콕슨 테스트하여 얻어진 벡터를 비교함으로써, 예를 들어 S를 (임의위한 부대, K 배위한 페어링 이력서).아르 자형2

부수적 인 옵션은 모든 관련 기능 선택을 사용하는 것입니다. 어떤 속성이 분류에 크게 유용 할 가능성이 있는지 알려줍니다. 따라서 값 비싼 속성은 가격 대비 가치가 있습니다. 예를 들어 RF 래퍼 Boruta를 사용하여 수행 할 수 있습니다 .


페어 테스트의 경우 두 모델이 동일한 주름에 적합하다고 가정합니다. matrx의 k 행이 접기이고 두 열이 모델 1과 모델 2입니까?
B_Miner

@B_Miner 정확하게.

1

통계적 유의성 (또는 둘 다)보다는 실제적 중요성으로 생각할 수 있습니다. 충분한 데이터가 있으면 통계적으로 유의미한 것으로 사용에 실제로 영향을 미치지 않는 것을 찾을 수 있습니다. 한 번에 5 방향 상호 작용이 통계적으로 유의 한 모델을 분석 한 것을 기억하지만 5 방향 상호 작용까지 모든 것을 포함하는 모델의 예측을 2 방향 상호 작용 및 주요 효과 만 포함하는 모델의 예측과 비교했을 때 가장 큰 차이는 1 명 미만이었습니다 (응답 수는 사람들이며 모든 흥미로운 값은 0에서 멀었습니다). 따라서 추가 된 복잡성은 그만한 가치가 없었습니다. 예측의 차이점을 살펴보고 차이가 추가 비용을 정당화하기에 충분한 지 확인하십시오. 그렇지 않다면 왜 통계적 유의성을 찾고 귀찮게합니까? 차이가 실제 비용 인 경우 비용을 정당화하기에 충분히 큰 경우 교차 검증을 사용하는 다른 권장 사항을 두 번째로 사용합니다.


1

아르 자형2

library(randomForest)
data(iris)
set.seed(42)

# split the data into training and testing sets
index <- 1:nrow(iris)
trainindex <- sample(index, trunc(length(index)/2))
trainset <- iris[trainindex, ]
testset <- iris[-trainindex, ]

# with species
model1 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length +
   Petal.Width + Species, data = trainset)
# without species
model2 <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length + 
   Petal.Width, data = trainset)

pred1 <- predict(model1, testset[, -1])
pred2 <- predict(model2, testset[, -1])

y <- testset[, 1]
n <- length(y)

# psi is the mean squared prediction error (MSPE) estimate
# sigma2 is the estimate of the variance of the MSPE
psi1 <- mean((y - pred1)^2)
sigma21 <- 1/n * var((y - pred1)^2) 
# 95% CI:
c(psi1 - 1.96 * sqrt(sigma21), psi1, psi1 + 1.96 * sqrt(sigma21))

psi2 <- mean((y - pred2)^2)
sigma22 <- 1/n * var((y - pred2)^2) 
# 95% CI:
c(psi2 - 1.96 * sqrt(sigma22), psi2, psi2 + 1.96 * sqrt(sigma22))

이 방법은 교차 검증 내에서 작동하도록 확장 할 수도 있습니다 (위에 표시된 것처럼 샘플 분할이 아닌).


0

randomForest교차 검증 후 이미 사용하고 있으므로 선택한 적합도의 예측 변수 중요도 계산을 수행 할 수 있습니다.

> require(randomForest)
> rf.fit = randomForest(Species~.,data=iris,importance=TRUE)
> rf.fit$importance
                  setosa   versicolor   virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 0.036340893  0.021013369 0.032345037          0.030708732         9.444598
Sepal.Width  0.005399468 -0.002131412 0.007499143          0.003577089         2.046650
Petal.Length 0.319872296  0.297426025 0.290278930          0.299795555        42.494972
Petal.Width  0.343995456  0.309455331 0.277644128          0.307843300        45.286720

0

나는이 질문이 오래 전에 요청 된 것을 본다. 그러나 아직이 질문의 중대한 결점과 오해를 지적하는 답변은 없습니다.

참고 :

  1. R ^ 2 = ESS / TSS = 1-RSS / TSS라고 명시되어 있습니다. 이것은 선형 컨텍스트에서만 적용됩니다. 등식 TSS = RSS + ESS는 절편이있는 선형 회귀에서만 참입니다. 따라서 임의 포리스트에 대해 이러한 정의를 상호 교환하여 사용할 수 없습니다. RMSE 및 이와 유사한 것이 더 일반적인 손실 함수 인 이유입니다.

  2. 통계적 목적을 위해 더 중요하게 : R ^ 2는 알려지지 않은 분포를 따릅니다 (선형 설정에서도). 즉, R ^ 2를 사용하여 통계적으로 유의 한 가설을 검정하는 것은 간단하지 않습니다. Zach 가 언급 한대로 교차 검증 은 좋은 선택입니다.

에 관해서는 user88의 응답 : 윌 콕슨 시험과 교차 검증은 올바른 접근 방법이다. 최근 논문 에서는 다양한 방법과 알고리즘을 비교하기 위해 Wilcoxon 부호 등급 테스트와 Friedman 테스트를 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.