분류 변수의 경우 클래스 변수에 분포가 같지 않은 경우 어떤 기술을 사용해야합니까?


10

예를 들어. # (good) = 700 및 # (bad) = 300 인 두 클래스가 좋고 나쁜 클래스 변수 신용 점수가있는 경우 데이터를 단축하고 싶지 않습니다. 어떤 기술을 사용해야합니까? 나는 SVM을 사용하고 있었지만 모든 나쁜 예측을 제공합니다.


이 비대칭은 그렇게 나쁘지 않습니다. 다른 곳에 오류가 없습니까? 또한 데이터에 대한 자세한 정보를 제공 할 수 있습니까? 이에 대한 일반적인 해결책은 없습니다.

내 데이터 세트에는 17 개의 예측 변수 (3 개의 연속 및 14 개의 범주 형), 분명히 1 개의 클래스 변수 및 총 1000 개의 장애가 있습니다. 주파수 거리. 클래스 var. 기차와 테스트는 train (bad) = 197, test (bad) = 103, trian (good) = 446, test (good) = 254
asad.taj

답변:


6

소수의 클래스에 30 %의 관측치가 있으므로 클래스 샘플 크기가 불균형으로 보이지 않습니다. 로지스틱 회귀는 귀하의 경우에 잘 수행되어야합니다. 모형에 입력되는 예측 변수의 수에 따라 릿지 (L2) 또는 올가미 (L1)와 같은 모수 추정에 대한 일종의 벌점을 고려할 수 있습니다. 균형이 매우 불분명 한 문제에 대한 개요는 Cramer (1999), The Statistician, 48 : 85-94 ( PDF )를 참조하십시오.

나는 신용 평가 기술에 익숙하지 않은,하지만 난 당신이 가중 클래스, 예와 SVM을 사용할 수 있음을 시사 몇 가지 서류 발견 서포트 벡터 신용 점수 기계 : 비 표준 케이스로 확장 . 대안 으로 CART 또는 임의 포리스트를 사용하여 부스팅 방법을 볼 수 있습니다 (후자의 경우 분류 트리를 구성 할 때 각 클래스가 표시되도록 샘플링 전략을 조정할 수 있습니다). Novak과 LaDue의 논문은 GLM과 재귀 분할의 장단점에 대해 논의 합니다 . 또한이 기사 인 Hand and Vinciotti의 불균형 학급 규모의 스코어 카드 구성을 찾았습니다.


Cramer (1999)의 링크가 papers.tinbergen.nl/98085.pdf로
germcd

10

클래스 불균형 문제를 해결하기위한 일반적인 접근 방식은 분류자를 편향시켜 긍정적 인 인스턴스에 더주의를 기울이는 것입니다. 예를 들어, 부정 클래스에 비해 긍정적 클래스를 잘못 분류하는 것과 관련된 페널티를 증가시킴으로써이를 수행 할 수 있습니다. 다른 접근법은 균형 잡힌 데이터 세트를 만들기 위해 다수 클래스를 오버 샘플링하거나 소수 클래스를 언더 샘플링하여 데이터를 사전 처리하는 것입니다.

그러나 귀하의 경우, 클래스 imbalancing은 문제가되지 않습니다. SVM 분류기에 최적의 매개 변수를 찾는 것은 다소 번거로운 프로세스 일 수 있으므로 매개 변수 조정의 문제 일 수 있습니다. 예를 들어 RBF 커널에는 두 가지 매개 변수가 있습니다.Cγ. 미리 알려지지 않은Cγ주어진 문제에 가장 적합합니다. 결과적으로 어떤 종류의 모델 선택 (매개 변수 검색)을 수행해야합니다.

데이터 전처리 단계에서 SVM을 사용하려면 각 데이터 인스턴스가 실수로 구성된 벡터로 표시되어야합니다. 따라서 범주 형 속성이있는 경우 m- 카테고리 속성을 나타내는 m 숫자를 사용하여 숫자 데이터로 변환하거나 m 개의 이진 변수로 대체하는 것이 좋습니다.

또한 더 큰 숫자 범위의 속성이 작은 숫자 범위의 속성을 지배하지 않도록하려면 SVM을 적용하기 전에 변수를 조정하는 것이 중요합니다.

이 문서를 확인하십시오 .

R에서 작업중인 경우, 조정 기능 (패키지 e1071)을 확인하여 제공된 매개 변수 범위에서 그리드 검색을 사용하여 하이퍼 파라미터를 조정하십시오. 그런 다음 plot.tune을 사용하면 오류율 이 작은 값을 시각적으로 볼 수 있습니다.

시간이 많이 걸리는 매개 변수 검색에는 바로 가기가 있습니다. "svmpath"라는 R 패키지가 있습니다.이 패키지는 2 클래스 SVM 분류기의 전체 정규화 경로를 한 번에 계산합니다. 다음은 작업 내용을 설명 하는 문서에 대한 링크 입니다.

추신이 논문은 흥미로울 수도 있습니다 : 교정 된 확률 추정치 얻기


2
+1; 여전히 kernlab의 ksvm이 선호되는 R SVM 구현 인 것 같습니다. 예를 들어 변수 자체를 확장하고 좋은 것을 고르는 좋은 휴리스틱 절차가 있습니다.γRBF를 위해.

1

포지티브 클래스의 예와 네거티브 클래스의 예에 대해 다른 정규화 매개 변수 C의 값을 사용하는 것이 좋습니다 (많은 SVM 패키지가 이것을 지원하며 어떤 경우에도 쉽게 구현됩니다). 그런 다음 예를 들어 교차 검증을 사용하여 두 정규화 매개 변수의 좋은 값을 찾으십시오.

이것은 C +와 C-에 의해 결정된 비율로 데이터를 그대로 샘플링하는 것과 동일하다는 것을 알 수 있습니다. 불 연속적이지 않고 연속적 일 수 있으므로 더 세밀하게 제어 할 수 있습니다).

"불균형 클래스"문제의 영향의 강도는 데이터 세트마다 다르므로 최적의 강도는 가중치는 사전 결정될 수 없습니다.

또한 위양성 및 위음성 비용이 다를 수 있으며 C + 및 C-를 결정하는 데 포함 된 경우 문제 자체가 해결 될 수 있습니다.

일부 문제의 경우 Bayes 최적 결정 규칙이 모든 패턴을 단일 클래스에 할당하고 다른 클래스를 무시하므로 반드시 나쁜 것은 아니지만 패턴의 밀도를 의미 할 수도 있습니다. 한 클래스는 다른 클래스의 패턴 밀도 아래 어디에나 있습니다.

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