비지도 클러스터링을위한 의사 결정 트리와 유사한 알고리즘이 있습니까?


20

A, B, C, D, E의 5 가지 기능으로 구성된 데이터 집합이 있습니다. 모두 숫자 값입니다. 밀도 기반 클러스터링을 수행하는 대신 의사 결정 트리와 같은 방식으로 데이터를 클러스터링하는 것이 좋습니다.

내가 의미하는 접근 방식은 다음과 같습니다.

알고리즘은 특징 C에 기초하여 데이터를 X 초기 클러스터로 분할 할 수있다. 즉, X 클러스터는 작은 C, 중간 C, 큰 C 및 매우 큰 C 값 등을 가질 수있다. 다음으로, 각각의 X 클러스터 노드 하에서, 알고리즘은 추가로 분할한다 특징 A에 기초하여 데이터를 Y 클러스터로. 알고리즘은 모든 특징이 사용될 때까지 계속된다.

위에서 설명한 알고리즘은 의사 결정 트리 알고리즘과 같습니다. 그러나 감독 분류 대신 감독되지 않은 클러스터링에 필요합니다.

내 질문은 다음과 같습니다.

  1. 그러한 알고리즘이 이미 존재합니까? 이러한 알고리즘의 올바른 이름은 무엇입니까
  2. 이런 종류의 알고리즘을 구현하는 R / python 패키지 / 라이브러리가 있습니까?

3
But I need it for unsupervised clustering, instead of supervised classification이 핵심 문구만으로는 너무 짧으며 원하는 것을 명확하게 설명하지 않습니다. 그 위에서 당신은 의사 결정 트리 인 것처럼 보이는 것을 설명했습니다. 원하는 알고에 대해 비슷한 구절을 줄 수 있습니까?
ttnphns 2016 년

1
@ttnphns 안녕하세요, 의사 결정 트리는 감독 방법입니다. 각 피처 벡터의 레이블을 Class1 또는 Class2로 지정합니다. 알고리즘은 알려진 레이블을 기반으로 각 기능의 임계 값을 결정합니다. 그러나 클러스터링 문제에 직면하고 있습니다. 각 특징 벡터의 올바른 레이블을 모르겠습니다. 트리를 구성하기 위해 각 기능의 임계 값을 자동으로 결정하는 알고리즘을 찾고 싶습니다. 이런 식으로 결과 클러스터링은 클러스터 1 : 고 A- 낮음 B- 중간 C- 높음 D-낮음 E로, 클러스터 2를 낮음 A- 높음 B- 중간 C- 중간 D- 낮음 E로 쉽게 해석 할 수 있습니다.
nan

당신을 잘 이해하지 못합니다. CHAID예를 들어 나무를 가져 가십시오 . 종속 변수를 선택해야합니다. 알고리즘은 A와 가장 관련이있는 변수를 B, C, D, E 중에서 선택하고 해당 변수 (예 : 예측 변수 D)를 둘 이상의 범주로 "최적화"합니다. (분류 된 변수 D와 변수 A 사이에서 최대화됩니다. 예를 들어, 3 개의 그룹 D1, D2, D3을 남겼습니다. 그런 다음 D의 각 범주 (그룹) 내에서 동일한 절차를 반복하고 B, C 중 가장 좋은 예측 변수 , E가 그것을 비닝에서 찾았다되는 등 무엇. 정확히 여기에 적합하지 않은?
ttnphns

2
@ttnphns 방금이 논문을 찾았습니다. 그들이 의미하는 바를했다고 생각합니다. ftp.cse.buffalo.edu/users/azhang/disc/disc01/cd1/out/papers/…
nan

1
@nan 그런 나무의 구현을 찾았습니까? 그들은 기사의 코드에 대한 링크를 제공하지 않습니다
Alleo

답변:


12

다음 접근법을 고려할 수 있습니다.

  • 데이터에 적합한 클러스터링 알고리즘을 사용하십시오.
  • 결과 클러스터가 클래스라고 가정
  • 클러스터에서 의사 결정 트리 훈련

이를 통해 다른 클러스터링 알고리즘을 시도 할 수 있지만 각각에 대해 의사 결정 트리 근사값을 얻게됩니다.


1
이것이 "적절한"사실이지만, 클러스터링 알고리즘에서 레이블을 생성하는 것이 관측의 "실제"기능이 아니라는 점을 항상 명심해야합니다. 클러스터링의 품질 및 유형에 따라, 도입 된 바이어스는 더 크거나 더 적게 존재할 것입니다.
NiuBiBang

이 전략에 대해 설명하는 논문을 알려 주시겠습니까?
nCessity

2

생각 나는 첫 번째 논문은 다음과 같습니다. 의사 결정 트리 구성을 통한 클러스터링 https://pdfs.semanticscholar.org/8996/148e8f0b34308e2d22f78ff89bf1f038d1d6.pdf

다른 언급 한 바와 같이, "계층 적"(위에서 아래로) 및 "계층 적 응집"(아래에서 위)은 트리를 사용하여 클러스터링을 위해 고안된 잘 알려진 기술이다. Scipy는 이것을 가지고 있습니다.

라이브러리를 모르기 때문에 사용자 지정 코드에 문제가 없으면 권장 할 수있는 두 가지 기술이 있습니다. 이들이 사용하는 메커니즘으로 인해 기술적으로 클러스터링되지 않는다는 점에주의하십시오. 이 의사 클러스터링을 호출 할 수 있습니다.

1) 감독 : 이것은 논문과 다소 유사하다 (가치 판독). 단일 의사 결정 트리 모델을 작성하여 일부 목표를 학습하십시오 (상당한 것을 결정하십시오). 대상은 임의로 생성 된 열일 수 있습니다 (반복이 가장 좋은 반복 및 평가 필요, 아래 참조). 트리의 각 전체 경로를 "클러스터"로 정의하십시오. 일련의 분기를 통과하는 지점은 대상과 관련하여 기술적으로 유사합니다. 이것은 일부 문제에서만 잘 작동하지만 대규모로 효율적입니다. K 클러스터로 끝납니다 (아래 참조).

2) # 1을 사용하여 반 감독 (감독되지 않았지만 기계적으로 감독 됨) : 1을 남겨 두는 방식으로 열을 예측하기 위해 나무를 만들 수 있습니다. 즉, 스키마가 [A, B, C] 인 경우 3 개의 모델 [A, B]-> C, [A, C]-> B, [B, C]-> A를 빌드하십시오. KN 클러스터를 얻습니다 (아래 참조). N = len (스키마). 이러한 기능 중 일부가 흥미롭지 않거나 너무 불균형 인 경우 (카테고리의 경우)이를 대상으로 사용하지 마십시오.

요약 : 모델은 정보 또는 순도를 기준으로 기능을 순서대로 선택하고 클러스터는 전체가 아닌 몇 가지 기능을 기반으로합니다. 이 군집에는 거리 개념이 없지만 중심을 기반으로 한 거리를 만들 수 있습니다.

장점 : 이해하고 설명하기 쉽고 빠른 교육과 추론, 몇 가지 강력한 기능으로 잘 작동하고 카테고리와 함께 작동합니다. 기능이 본질적으로 이기종이고 많은 기능이있는 경우 거리 기능에서 사용할 기능을 결정하는 데 많은 시간을 소비하지 않아도됩니다.

단점 : 표준이 아니며 작성해야하며 순진한 편견과 목표와의 공선 성이 나쁜 결과를 초래하며 1000 개의 똑같이 중요한 기능이 제대로 작동하지 않습니다 (유클리드 거리가있는 KMeans가 더 좋습니다).

몇 개의 클러스터를 얻습니까? DT 모델이 너무 커지지 않도록 제한해야합니다. 예 : 리프 당 최소 샘플, 최대 리프 노드 (권장) 또는 최대 깊이를 설정합니다. 선택적으로 순도 또는 엔트로피 제한 조건을 설정하십시오. 이것이 제공 한 클러스터 수를 확인하고이 방법이 실제 클러스터링보다 나은지 평가해야합니다.

기술과 매개 변수가 잘 작동 했습니까? 어느 것이 가장 좋습니까? 이를 확인하려면 군집 평가를 수행해야합니다. 비지도 학습을 평가하기위한 성능 지표


2

당신이 찾고있는 것은 분열 클러스터링 알고리즘입니다.

가장 일반적인 알고리즘은 응집 적이며 데이터를 상향식으로 클러스터링합니다. 각 관측 값은 자체 클러스터와 클러스터가 병합 될 때 시작됩니다. 분할 클러스터링은 하향식입니다. 관찰은 하나의 클러스터에서 시작하여 점차적으로 분할됩니다.

의사 결정 트리처럼 보이게하려면 대부분의 알고리즘이 한 번에 하나의 변수를 분할하지 않고 전체 데이터 공간 내에서 거리를두고 작동하므로 선택이 제한됩니다.

DIANA는 내가 아는 유일한 분할 클러스터링 알고리즘이며 의사 결정 트리와 같은 구조라고 생각합니다. 다른 사람들이 없으면 놀랄 것입니다.

정의 된 종속 변수를 고려하지 않고 오히려 클러스터 양호 메트릭을 사용하는 메트릭으로 분할 규칙을 수정하는 경우 표준 의사 결정 트리 알고리즘을 사용할 수 있습니다.


0

고려해야 할 한 가지 아이디어는 k 개의 피처와 n 개의 포인트가 있다고 가정합니다. (k-1) 기능과 1 기능을 종속 변수로 사용하여 임의 트리를 작성할 수 있습니다. Y. 높이 h를 선택할 수 있으며 그 이후에는 루트에 데이터 포인트가 있습니다. 투표는 다른 종류의 나무를 취할 수 있습니다. 그냥 생각이야

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