사전 클러스터링이 더 나은 예측 모델을 구축하는 데 도움이됩니까?


9

이탈 모델링 작업을 위해 다음을 고려했습니다.

  1. 데이터에 대한 k 개의 클러스터 계산
  2. 각 클러스터에 대해 k 개의 모델을 개별적으로 빌드하십시오.

그 이유는, 서브 스크 라이버의 집단이 동 질적이라는 것을 증명할 것이 없다는 것의 근거이다.

내 질문은 적절한 방법입니까? 위반 사항이 있거나 어떤 이유로 나쁜 것으로 간주됩니까? 그렇다면 왜 그렇습니까?

그렇지 않은 경우 해당 문제에 대한 모범 사례를 공유 하시겠습니까? 두 번째는 일반적으로 모델 트리보다 사전 클러스터링을 수행하는 것이 낫거나 나쁘다는 것입니다 (Witten, Frank-분류 / 회귀 트리에 정의 된대로 모델이 리프에 있음). "정상"클러스터링에 비해 이점이있는 경우 idk).

답변:


3

비슷한 문제를 해결하는 클러스터 방식 회귀 분석법 이 있습니다 (먼저 데이터를 군집화 한 다음 예측 모델을 구축함). 예를 들어 이것을 참조하십시오 .


1
난 여기가 고개 : tandfonline.com/doi/abs/10.1080/00273170701836653 과 추상에 다음을 발견 : "N 어떤 경우는, 응답 변수의 변화의 대부분에서 제공하는 약간의 추가 혜택과 함께, 객체 클러스터링에 의해 설명 클러스터 내 회귀 모델로 과적 합할 가능성이 매우 크다 "고 덧붙였다. 유망하지 않은 것 같습니다.
Ziel

그러나 그들은 항상 실패한다고 말하지 않습니다. 나는 그 방법을 사용한 적이 없다. 나는 그것이 감독과 감독되지 않은 접근법의 조합 일 수 있다는 것을 알고 있지만이 방법을 사용하는 적은 수의 논문이있다.
Miroslav Sabo

또한 내가 찾은 대부분의 응용 프로그램은 마케팅 및 재무에 관한 것이므로 이러한 종류의 데이터에 특히 적합 할 수 있습니다.
Miroslav Sabo

1
마케팅 분야에있어 매우 직관적 인 것으로 보입니다 – 이탈, 크로스 / 업셀.
Ziel

2

주석이 되기에는 너무 긴 두 가지 점 :

  • 순수한 클러스터 (즉, 한 클래스의 경우 만 포함)는 그 자체로는 문제가되지 않습니다. 소위 하나의 클래스 분류기 는 다른 클래스와 독립적으로 각 클래스를 모델링합니다. 그들은 이것을 완벽하게 처리 할 수 ​​있습니다.

  • 그러나 클래스가 상당히 분리 된 방식으로 (즉, 클러스터가 다소 순수한 방식으로) 데이터 클러스터 인 경우 이는 매우 강력한 구조가 존재 함을 의미합니다. 즉, 클래스 레이블의 안내없이 클러스터 분석이 찾을 수있는 구조입니다. 이는 군집 분석에 사용 된 동일한 거리 측정을 기반으로 가장 가까운 인접 방법과 같은 특정 유형의 분류 기가 데이터에 적합 함을 의미합니다.

  • 다른 가능성은 군집이 순수하지 않지만 군집과 분류 방법의 조합이 잘 할 수있는 상황은 나무에 적합합니다. 트리는 클러스터링의 일부를 수행합니다 (순수 노드는 문제로 간주되지 않습니다). XOR 문제의 2 클러스터 버전 인 인공적인 예는 다음과 같습니다.
    XOR 클러스터

  • 순수한 클러스터를 가질 위험을 발생시키지 않고 클러스터 정보를 포함시키는 또 다른 방법은 클러스터링을 기능 생성 단계로 사용하는 것입니다. 데이터 매트릭스에 새로운 변형으로 클러스터 분석 결과를 추가하십시오.

  • 어떤 이유로 나쁜지 묻습니다. 한 가지 함정은이 접근 방식이 많은 자유도를 가진 모델로 이어진다는 것입니다. 지나치게 적합하지 않도록 특히주의해야합니다.

  • 예를 들어 mbq의 대답 과 같은 모델 기반 트리를 살펴보십시오. 나는 그들이 당신이 찾고있는 것과 매우 가까운 개념을 구현한다고 생각합니다. R 패키지 mobForest 와 같이 포리스트로 구현할 수도 있습니다 .


1

요즘 비슷한 문제를 다루고 있습니다. 분류기를 작성하는 수백 가지 기능이 있습니다. 다른 모델 (예 : 임의의 숲, 그라디언트 부스트 등)을 시도한 후에도 여전히 정밀도가 낮습니다. 그래서 몇 가지 클러스터링을 시도하고 다른 그룹으로 분류자를 작성하려고합니다. Anony-Mousse가 말했듯이 클러스터링에 모든 정보를 사용하면 분류기에서 더 많은 정보를 얻을 수 있습니까? 다음은 다음에 수행 할 작업입니다.

  1. 클러스터링을 수행하려면 일부 기능 (사전 지식에 따라 덜)을 사용하십시오.
  2. 분류기를 훈련시키기 위해 다른 기능을 사용하십시오.

나는 그것이 복잡성을 줄이는 데 도움이 될 수 있다고 생각합니다.


1

클러스터를 구축 한 다음 해당 모델 을 구축 하는 것은 절대적으로 가능합니다. 의견에 따르면 클러스터가 결과 변수를 완벽하게 분리하여 분류기에 어려움을 겪을 것이라는 이론적 인 문제는 이론적 문제이지만 필자는 그렇지 않을 것이라고 생각합니다 (특히 높은 차원의 경우). 또한 그러한 클러스터를 만들 수 있다면 예측을 위해 해당 클러스터를 사용할 수 있습니다!kk

또한 프로세스가 샘플로 시작 하면 분류기는 만 사용할 수 있습니다.NN/k견본. 따라서 회귀의 혼합을 사용하여 클러스터의 이질성을 통합하는 단일 분류기를 작성하는 데 클러스터를 사용하는 것이 더 강력한 방법입니다. 모델 기반 클러스터링에서는 데이터가 혼합 분포에서 생성된다고 가정합니다.YiN(μi,σi2) 어디 i=1 확률로 πi=2 확률로 1πμ1 μ2σ12σ22. 혼합 회귀는 공변량에 따라 데이터를 모델링 할 수있는 확장입니다.μi 로 대체 βiXi여기서 βi추정해야합니다. 이 예는 일 변량 가우스 사례에 대한 것이지만 프레임 워크는 많은 데이터를 수용 할 수 있습니다 (다항식-로그는 범주 형 변수에 적합합니다). flexmix 패키지 R에 대한 좀 더 자세한 설명을 제공하고, 물론 상대적으로 쉽고 확장 가능한 방식이 방식을 구현합니다.

대안 적으로, 차별적 인 설정에서, 선택 분류 알고리즘 (예를 들어, NB, ANN, SVM, RF 등)을 훈련시키기위한 기능으로서 클러스터 할당 (하드 또는 소프트)을 통합하려고 시도 할 수있다.


0

음, 군집이 정말 좋으면 분류 기가 엉망이 될 것입니다. 훈련 데이터가 충분히 전환되지 않았기 때문입니다.

클러스터가 완벽하다고 가정하십시오. 더 이상 분류기를 제대로 훈련시킬 수 없습니다. 분류기는 긍정적이고 부정적인 예가 필요합니다!

랜덤 포레스트는 정반대를하는 데 매우 성공적입니다. 그들은 임의의 데이터 샘플을 취하여 분류기를 훈련시킨 다음 훈련 된 모든 분류기를 사용합니다.

작동하는 방법은 클러스터링을 사용한 다음 모든 클러스터 에 대해 적어도 일치하지 않는 경우 분류기를 학습하는 것입니다 (클래스가 두 개의 클러스터로 분할 된 경우 여전히 분류기를 학습 할 수 없습니다).


클러스터링의 목적은 "순수한"클러스터, 즉 내 목표 변수를 식별하는 데 탁월한 클러스터를 찾는 것이 아닙니다. 클러스터링의 목적은 "기타"영역에서 균질 한 그룹을 찾는 것입니다. 예를 들어 : 이탈에는 "품질 전용"고객과 "비용 최적화"고객이 있다고 생각합니다. 분류에 대한 관련 기능이 두 그룹에서 동일하다고 가정해서는 안되므로 각 그룹마다 별도의 모델을 만들고 싶습니다. 물론 명시적인 "품질"그룹과 "비용"그룹이 없기 때문에 클러스터링이라는 개념은 데이터에서 이러한 그룹을 먼저 파생시키는 아이디어입니다.
Ziel

데이터의 모든 종류의 불균형과 상관 관계가 해로울 수 있습니다. 분류자는 "품질 만"및 "비용 최적화"를 식별 하려고 할 수 있습니다. 하나의 그룹 만 얻는다면이 구별을 사용할 수 없습니다.
종료 : 익명-무스

1
그러나 2 단계 접근 방식을 수행하는 경우에만 먼저 클러스터별로 분류 한 다음 클러스터 분류기를 평가하십시오. 그렇지 않으면 상수 분류 기가 쓸모가 없습니다. 그런 다음 클러스터링에 모든 부담을줍니다.
Quit--Anony-Mousse가

1
이것이 제가 OP를 이해 한 방법입니다.
SX

1
물론이 작업을 수행 할 수 있지만 클러스터의 성능이 좋지 않을 수 있으며 적절한 "합치"분류기의 앙상블을 사용하는 것이 좋습니다. RandomForests와 마찬가지로.
종료 : 익명-무스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.