주어진 반응 변수에 대한 최적의 비닝


12

주어진 응답 (목표) 이진 변수와 최대 간격 수를 매개 변수로 사용하여 연속 변수의 최적 비닝 방법 (분화)을 찾고 있습니다.

예 : 나는 "높이"(숫자 연속)와 "has_back_pains"(이진) 변수를 가진 사람들에 대한 관찰 결과를 가지고 있습니다. 나는 허리 통증이있는 ​​사람들의 다른 비율로 최대 높이를 3 간격 (그룹)으로 이산화하고 싶습니다. 그래서 알고리즘이 그룹 간의 차이를 최대화하기 위해 (예를 들어 주어진 제한으로 각 간격에 적어도 x 개의 관측치가 있음).

이 문제에 대한 확실한 해결책은 의사 결정 트리 (단일 변수 모델)를 사용하는 것이지만 R에서 매개 변수로 "최대 분기 수"를 갖는 함수를 찾을 수는 없습니다. 모두 변수를 나눕니다. 2 그 루푸스로 (<= x 및> x). SAS 광부에는 "최대 분기"매개 변수가 있지만 비 상업용 솔루션을 찾고 있습니다.

내 변수 중 일부는 몇 가지 고유 한 값을 가지며 (이산 변수로 취급 될 수 있음) 작은 간격으로도 이산화하고 싶습니다.

내 문제에 가장 가까운 솔루션은 R의 smbinning 패키지 (파티 패키지의 ctree 함수에 의존)에서 구현되지만 두 가지 단점이 있습니다. 간격 수를 설정하는 것은 불가능합니다 (단, 변경하여 방법을 찾을 수는 있습니다) 데이터 매개 변수가 10보다 작은 고유 값을 가진 경우 작동하지 않습니다. 어쨌든 여기에서 출력 예를 볼 수 있습니다 (Cutpoint 및 Odds 열이 중요합니다).

Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate   Odds  LnOdds     WoE     IV
1   <= 272   9081     169   8912      9081        169      8912 0.1874  0.9814 0.0190 -3.9653 -0.6527 0.0596
2   <= 311   8541     246   8295     17622        415     17207 0.1762  0.9712 0.0297 -3.5181 -0.2055 0.0068
3   <= 335   2986     163   2823     20608        578     20030 0.0616  0.9454 0.0577 -2.8518  0.4608 0.0163
4  Missing  27852    1125  26727     48460       1703     46757 0.5747  0.9596 0.0421 -3.1679  0.1447 0.0129
5    Total  48460    1703  46757        NA         NA        NA 1.0000  0.9649 0.0364 -3.3126  0.0000 0.0956

아, 비닝으로 인해 정보가 손실되고 더 나은 방법이 있다는 것을 알고 있지만 데이터 시각화에 사용하고 변수를 요인으로 취급합니다.


SPSS에는 최적 비닝 명령이 있습니다. 구글 SPSS Algorithms Optimal Binning.
ttnphns

이 게시물 stackoverflow.com/questions/7018954/… 정보 값 사용법에 대해 언급했지만 IV = 1의 의미가 무엇인지 명확하지 않거나이를 얻는 방법을 설명하지 않습니다
adam

답변:


7

이 책을 읽는 동안 여기 (Nagarajan은, 2103 [1]), 나는이 가치있는 정보를 가로 질러왔다 나는 뻔뻔스럽게 여기 인용 오전 :

  • 데이터에 대한 사전 지식을 사용합니다. 간격의 경계는 각 변수에 대해 특정 오염 물질의 농도 (부재, 위험, 치명적) 또는 연령 등급 (어린이, 성인, 노인)과 같은 상당히 다른 실제 시나리오에 해당하도록 정의됩니다.

  • 네트워크 구조를 배우기 전에 휴리스틱 사용 예를 들면 Sturges, Freedman-Diaconis 또는 Scott 규칙이 있습니다 (Venables and Ripley, 2002).

  • 정확도와 정보 손실의 균형을 맞추기 위해 간격과 경계의 수를 선택하면 (Kohavi and Sahami, 1996) 다시 한 번에 네트워크 구조를 배우기 전에 하나의 변수가됩니다. 변수 쌍을 고려한 유사한 접근법이 Hartemink (2001)에 제시되어있다.

  • 개선이 없을 때까지 학습과 이산화를 반복적으로 수행합니다 (Friedman and Goldszmidt, 1996).

이러한 전략은 원본 데이터의 개별 표현 정확도와 변환의 계산 효율성간에 서로 다른 트레이드 오프를 나타냅니다.

이 정보는 패키지를 직접 사용하는 것이 아니라 사용하려는 비닝 방법을 정당화하려는 경우에 제공됩니다.

[1] : Nagarajan R. (2013),
Bayesian Networks in R, 시스템 생물학
스프링거에 응용 프로그램 포함


4

R 용 정보 패키지를 사용해보십시오. https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html

정보 패키지에는 WoE 및 IV 계산 기능 (빈 수는 유연한 매개 변수, 기본값은 10 임)이 있으며 데이터 탐색 및 결과적으로 비닝에 유용한 도구입니다. 그러나 출력에는 홀수가 포함되지 않습니다. 그리고 0을 별도의 빈으로 지정할 수는 없습니다 (내 작업의 경우 0은 종종 자신의 유효한 빈입니다). smbinning과 같은 Information 패키지에서 출력을 얻는 것이 좋습니다. 그러나 정보 패키지의 기능은 있지만 아직 사용할 수없는 기능에 대해 말하면서 WoE 및 IV 용 다른 R 패키지 (woe, klaR)는 정보 패키지만큼 유용한 도구를 인상하지 못했습니다. 2-3 회 시도한 후에 실행하지 못했습니다. dscretisation / binning 작업의 경우 정보 및 smbinning 패키지가 잘 작동 할 수 있습니다.

실제 비닝의 경우 cut () 함수 대신 data.table을 사용했습니다. 아래 내 게시물에 대한 링크를 참조하십시오. 초기 질문의 맨 아래에 일반 코드가 포함되어 있습니다 : https : //.com/questions/34939845/binning-variables-in-a-dataframe-with-input-bin-data- 다른 데이터 프레임에서

도움이 되길 바랍니다.


@kjetil, kjetil b halvorsen, 당신 말이 맞아요. 정보 패키지에는 WoE 및 IV 계산 기능 (빈 수는 유연한 매개 변수, 기본값은 10 임)이 있으며 데이터 탐색 및 결과 비닝에 편리한 도구입니다. 그러나 출력에는 홀수가 포함되지 않습니다. 그리고 0을 별도의 빈으로 지정할 수 없습니다 (제 작업의 경우 0은 종종 자신의 유효한 빈입니다). WoE 및 IV (woe, klaR)에 대한 다른 R 패키지는 정보 패키지만큼 유용한 도구를 인상하지 못했습니다. 따라서 정보 및 smbinning 패키지는 조합으로 잘 작동 할 수 있습니다.
Aktan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.