ROC 곡선을 사용하여 R에서 가중치 이진 로지스틱 회귀 (glm)에 대한 최적 컷오프 찾기

니엔 케 보스

Rstudio에서 이탈 예측을위한 이진 로지스틱 회귀를 구축했습니다. 이 모델에 사용 된 불균형 데이터로 인해 가중치도 포함했습니다. 그런 다음 시도와 오류를 통해 최적의 컷오프를 찾으려고 노력했지만 연구를 완료하려면 최적의 컷오프를 찾기 위해 ROC 곡선을 통합해야합니다. 아래에서 모델 (fit2)을 빌드하는 데 사용한 스크립트를 제공했습니다. 무게는 'W'에 저장됩니다. 이는 이탈자를 잘못 식별하는 데 드는 비용이 이탈자가 아닌 사람을 잘못 식별하는 데 드는 비용보다 14 배 더 크다는 것을 의미합니다.

#CH1 logistic regression

library(caret)
W = 14
lvl = levels(trainingset$CH1)
print(lvl)
#if positive we give it the defined weight, otherwise set it to 1
fit_wts = ifelse(trainingset$CH1==lvl[2],W,1)
fit2 = glm(CH1 ~ RET + ORD + LVB + REVA + OPEN + REV2KF + CAL + PSIZEF + COM_P_C + PEN + SHOP, data = trainingset, weight=fit_wts, family=binomial(link='logit'))
# we test it on the test set
predlog1 = ifelse(predict(fit2,testset,type="response")>0.5,lvl[2],lvl[1])
predlog1 = factor(predlog1,levels=lvl)
predlog1
confusionMatrix(pred,testset$CH1,positive=lvl[2])

이 연구를 위해 pROC 패키지를 사용하여 의사 결정 트리에 대한 ROC 곡선도 작성했습니다. 그러나 물론 동일한 스크립트가 로지스틱 회귀에 대해 동일하게 작동하지 않습니다. 아래 스크립트를 사용하여 로지스틱 회귀에 대한 ROC 곡선을 만들었습니다.

prob=predict(fit2, testset, type=c("response"))
testset$prob=prob
library(pROC)
g <- roc(CH1 ~ prob, data = testset, )
g
plot(g)

그 결과 아래 ROC 곡선이 나타납니다.

여기에 이미지 설명 입력

이 ROC 곡선에서 최적의 컷오프를 얻으려면 어떻게해야합니까?

고요한

"최적"컷오프를 얻는 것은 모델 유형과 완전히 독립적이므로 pROC를 사용하여 다른 유형의 모델에서와 마찬가지로 얻을 수 있습니다. coords기능 :

 coords(g, "best", transpose = FALSE)

또는 플롯에서 직접 :

plot(g, print.thres=TRUE)

이제 위의 내용은 민감도와 특이성의 합을 최대화합니다. 이것은 종종 너무 단순하며 사용 사례에 맞게 조정 된 "최적"에 대한 명확한 정의가 필요할 수 있습니다. 그것은 대부분이 질문의 범위를 벗어나지 만 시작점 으로 몇 가지 기본 옵션에 대한 좌표 기능 문서의 Best Thresholds 섹션을 살펴보아야 합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

R의 glm에서 "weights"인수를 사용하는 로지스틱 회귀에 대한 ROC 곡선 수행

분류에서Dev

계산 된 로지스틱 회귀 모델을 사용하여 R의 적절한 컷오프 값을 기반으로 분류기를 만듭니다.

분류에서Dev

`ddply`가 그룹 별 로지스틱 회귀 (GLM)를 내 데이터 세트에 적용하지 못함

분류에서Dev

파이썬에서 재귀 적으로 최대 값을 가진 요소 찾기

분류에서Dev

비선형 데이터에 대한 로지스틱 회귀

분류에서Dev

로지스틱 회귀는 오차 행렬에 더하기 대신 곱셈을 사용하지 않는 이유는 무엇입니까?

분류에서Dev

Python에서 Sklearn을 사용한 로지스틱 회귀 함수

분류에서Dev

로지스틱 회귀에서 가중치를 사용하는 방법

분류에서Dev

곱셈 대치 된 데이터를 사용한 이진 로지스틱 회귀

분류에서Dev

R에서 순서 로지스틱 회귀 및 다중 공선성에 대한 VIF 계산

분류에서Dev

로지스틱 회귀에 대한 glm ()의 결과

분류에서Dev

rms를 사용하여 로지스틱 회귀에 대한 OR 계산

분류에서Dev

Python에서 가중치가 적용된 음이 아닌 최소 제곱 선형 회귀

분류에서Dev

R에서 로지스틱 회귀 플로팅하기

분류에서Dev

R에서 비선형 회귀에 대한 적절한 공식 찾기

분류에서Dev

수치 예측 변수에 대한 로지스틱 회귀?

분류에서Dev

플러딩 알고리즘을 적용하여 가중치가 적용된 2D 매트릭스에 대해 지정된 소스와 대상 위치 사이의 최적 경로를 찾는 방법

분류에서Dev

단일 주제 데이터에 대한 로지스틱 회귀?

분류에서Dev

로지스틱 회귀-각 속성이 최종 확률에 얼마나 기여했는지 계산

분류에서Dev

glm ()을 사용하는 R의 로지스틱 회귀는 플로팅 할 때 xy.coords에 오류를 생성합니다.

분류에서Dev

선형 회귀 코드 (GLM 패키지)에서 Julia 구문 이해하기

분류에서Dev

lm을 사용하여 인터셉트없이 데이터 프레임 매트릭스에 대한 회귀

분류에서Dev

Python에서 예측을위한 로지스틱 회귀 분류기

분류에서Dev

regplot을 사용하여 데이터 프레임에 대한 많은 회귀 플롯을 부분적으로 플로팅하는 방법 (예 : n 개 행)

분류에서Dev

공통 JS 문서를 사용하여 정적 웹 사이트에 대한 CSS / JS 가져 오기 최적화

분류에서Dev

곡률에 대해 사용 가능한 데이터 세트를 사용하여 곡선의 접선을 찾는 방법은 무엇입니까?

분류에서Dev

로지스틱 회귀에서 순위 데이터 사용

분류에서Dev

로지스틱 회귀에서 다양한 기울기 계산

분류에서Dev

로지스틱 회귀 분석의 여러 요인에 대한 치사량 (LD50)

Related 관련 기사

  1. 1

    R의 glm에서 "weights"인수를 사용하는 로지스틱 회귀에 대한 ROC 곡선 수행

  2. 2

    계산 된 로지스틱 회귀 모델을 사용하여 R의 적절한 컷오프 값을 기반으로 분류기를 만듭니다.

  3. 3

    `ddply`가 그룹 별 로지스틱 회귀 (GLM)를 내 데이터 세트에 적용하지 못함

  4. 4

    파이썬에서 재귀 적으로 최대 값을 가진 요소 찾기

  5. 5

    비선형 데이터에 대한 로지스틱 회귀

  6. 6

    로지스틱 회귀는 오차 행렬에 더하기 대신 곱셈을 사용하지 않는 이유는 무엇입니까?

  7. 7

    Python에서 Sklearn을 사용한 로지스틱 회귀 함수

  8. 8

    로지스틱 회귀에서 가중치를 사용하는 방법

  9. 9

    곱셈 대치 된 데이터를 사용한 이진 로지스틱 회귀

  10. 10

    R에서 순서 로지스틱 회귀 및 다중 공선성에 대한 VIF 계산

  11. 11

    로지스틱 회귀에 대한 glm ()의 결과

  12. 12

    rms를 사용하여 로지스틱 회귀에 대한 OR 계산

  13. 13

    Python에서 가중치가 적용된 음이 아닌 최소 제곱 선형 회귀

  14. 14

    R에서 로지스틱 회귀 플로팅하기

  15. 15

    R에서 비선형 회귀에 대한 적절한 공식 찾기

  16. 16

    수치 예측 변수에 대한 로지스틱 회귀?

  17. 17

    플러딩 알고리즘을 적용하여 가중치가 적용된 2D 매트릭스에 대해 지정된 소스와 대상 위치 사이의 최적 경로를 찾는 방법

  18. 18

    단일 주제 데이터에 대한 로지스틱 회귀?

  19. 19

    로지스틱 회귀-각 속성이 최종 확률에 얼마나 기여했는지 계산

  20. 20

    glm ()을 사용하는 R의 로지스틱 회귀는 플로팅 할 때 xy.coords에 오류를 생성합니다.

  21. 21

    선형 회귀 코드 (GLM 패키지)에서 Julia 구문 이해하기

  22. 22

    lm을 사용하여 인터셉트없이 데이터 프레임 매트릭스에 대한 회귀

  23. 23

    Python에서 예측을위한 로지스틱 회귀 분류기

  24. 24

    regplot을 사용하여 데이터 프레임에 대한 많은 회귀 플롯을 부분적으로 플로팅하는 방법 (예 : n 개 행)

  25. 25

    공통 JS 문서를 사용하여 정적 웹 사이트에 대한 CSS / JS 가져 오기 최적화

  26. 26

    곡률에 대해 사용 가능한 데이터 세트를 사용하여 곡선의 접선을 찾는 방법은 무엇입니까?

  27. 27

    로지스틱 회귀에서 순위 데이터 사용

  28. 28

    로지스틱 회귀에서 다양한 기울기 계산

  29. 29

    로지스틱 회귀 분석의 여러 요인에 대한 치사량 (LD50)

뜨겁다태그

보관