의사 결정 트리 대 KNN


15

어떤 경우에는 의사 결정 트리를 사용하고 다른 경우에는 KNN을 사용하는 것이 더 낫습니까?

특정 경우에 왜 그중 하나를 사용합니까? 그리고 다른 경우에 다른? (알고리즘이 아닌 기능을 보면)

누구든지 이것에 대한 설명이나 언급이 있습니까?


2
KNN은 감독되지 않습니다. 아마도 대답은 k- 평균에 대한 생각일까요?

2
의사 결정 트리 학습도 감독되지 않습니다. en.wikipedia.org/wiki/Supervised_learning .
Valentas

답변:


9

그들은 다른 목적으로 사용됩니다.

KNN은 감독되지 않고 DT (Decision Tree)는 감독됩니다. ( KNN은지도 학습은 K-수단 감독없이하는 동안, 나는이 대답은 약간의 혼동을 야기 생각입니다. ) KNN 클러스터링에 사용되는, DT 분류. ( 모두 분류에 사용됩니다. )

KNN은 이웃을 결정하므로 거리 측정법이 있어야합니다. 이는 모든 기능이 숫자 여야 함을 의미합니다. 거리 메트릭은 속성과 고차원 공간 사이의 다양한 스케일에 의해 영향을받을 수 있습니다.

반면에 DT는 주어진 입력 벡터에 대한 클래스를 예측합니다. 속성은 숫자이거나 명목 형일 수 있습니다.

따라서 비슷한 예제를 찾으려면 KNN을 사용할 수 있습니다. 예제를 분류하려면 DT를 사용할 수 있습니다.


설명 : 클러스터링, 그러나 주어진 입력 벡터 주위의 단일 k 크기 클러스터. 모든 기능이 숫자 여야하는 것은 아닙니다. 예를 들어 Jaccard 유사성을 사용하여 피처가 공칭 인 거리를 정의 할 수 있습니다.

10
실제로, 그들은 둘 다 감독됩니다. 감독이란 단지 학습자가 레이블이 지정된 교육 세트에 액세스 할 수 있음을 의미합니다. 비지도 알고리즘은 레이블 예측이 아닌 클러스터링과 같은 작업을 수행합니다.
Jordan A

1
당신은 또한 당신의 K 이웃의 대다수를 정확하게 기반으로 KNN으로 분류 할 수 있습니다
Jekaterina Kokatjuhha

3
-1 knn이며 k-means다른 알고리즘 이며이 답변은 불행히도 (그리고 잘못하여) 두 절차를 놓칩니다. knn감독 또는 클러스터링에 사용되지 않습니다!
SebNag를

@SebNag, sci-kit learn의 "감독되지 않은 가장 가까운 이웃"섹션이 실제로 k- 평균에 대해 이야기하고 있다고 말하는 것이 공평합니까? scikit-learn.org/stable/modules/neighbors.html 이 섹션은 knn을 사용하지만 레이블 지식이없는 클러스터를 결정하기 위해 일종의 거리 측정 만하 는 것 같습니다. 즉, 이것은 k-means와 같은 소리입니다.
Frikster

8

Decision Tree, Bayesian, Back-propagation, Support Vector Machine 과 같은 분류기 는 "Eager Learners" 범주에 속합니다 . 테스트 데이터 세트 에서 [보이지 않는] 관찰을 실제로 분류하기 전에 먼저 훈련 데이터 세트 에서 분류 모델을 작성 하기 때문 입니다. 학습 된 모델은 이제 이전에는 볼 수 없었던 관측치를 분류하기 위해 "열심히"(배고파 읽음) 이름입니다.


그러나 KNN 기반 분류기는 분류 모델을 작성하지 않습니다. 훈련 사례 (관찰)에서 직접 학습합니다. 분류 할 테스트 관찰이 제공된 후에 만 ​​데이터 처리를 시작합니다. 따라서 KNN은 "게으른 학습자" 접근 방식 범주에 속합니다 .

위의 근본적인 차이점을 바탕으로 다음과 같은 결론을 내릴 수 있습니다.

  1. KNN은 현장 학습을 수행하므로 데이터베이스 조회가 자주 필요하므로 계산 비용이 많이들 수 있습니다. 의사 결정 트리 분류기는 메모리 내 분류 모델이 준비된 조회를 필요로하지 않습니다.

  2. KNN은 인스턴스 기반 학습을 수행하기 때문에 잘 조정 된 K는 의사 결정 트리와 같은 다른 "열심 한"학습자가 쉽게 모델링 할 수없는 의사 결정 경계가 임의로 복잡한 복잡한 의사 결정 공간을 모델링 할 수 있습니다.

  3. "열심 한"학습자들은 한 번에 한 그룹의 훈련 관측치를 모델링하여 배치 작업을합니다. 따라서 점진적 학습에는 적합하지 않습니다. 그러나 KNN은 인스턴스 기반 학습자이므로 증분 학습 (데이터 스트림)을 자연스럽게 지원합니다.

  4. 또한 KNN 분류기는 테스트 오류율을 베이지안 분류기 (골드 표준)에 가깝습니다. ISLR에 인용 된 대로 :

베이 즈 오류율은 복구 할 수없는 오류와 유사합니다.


4

Sebastian Raschka의 Python Machine Learning에서 :

이러한 메모리 기반 접근법 [KNN]의 주요 장점은 분류 기가 새로운 훈련 데이터를 수집 할 때 즉시 적응한다는 것입니다. 그러나 단점은 새로운 샘플을 분류하기위한 계산의 복잡성이 최악의 시나리오에서 훈련 데이터 셋의 샘플 수에 따라 선형 적으로 증가한다는 것입니다. KD 트리와 같은 구조. JH Friedman, JL Bentley 및 RA Finkel. 로그 예상 시간에서 가장 일치하는 항목을 찾기위한 알고리즘입니다. 수학 소프트웨어에 대한 ACM 거래 (TOMS), 3 (3) : 209–226, 1977. 또한 훈련 단계가 없기 때문에 훈련 샘플을 폐기 할 수 없습니다. 따라서 대용량 데이터 세트로 작업하는 경우 스토리지 공간이 문제가 될 수 있습니다.

그러나 의사 결정 트리는 새로운 예를 빠르게 분류 할 수 있습니다. 일련의 부울 비교를 실행 중입니다.


2

의사 결정 트리를 분류 및 회귀 작업에 모두 사용할 수 있다고 덧붙입니다. 반면에 DT 는 기술적으로 일반 DT 개념의 하위 유형 인 분류 트리 를 설명함으로써 허용 된 답변 의 클래스 가 더 구체적 일 것으로 예측합니다 . 하나의 참조 (특정 구현을 논의하는 최하위 레이어 무시) :
결정 트리의 종류 여기에서 : http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees

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