중간비교: K-nn, Naive Bayes, Dicision Tree의 특징비교

K-nn: 방법론 자체만 놓고보면 굉장히 단순하고 효율적이다. (실제 모델을 만드는 다른 기법과는 달리 모델을 생성하는 것이 아니기 때문) 하지만 모델이 없기 때문에 classification자체는 느리다고 할 수 있다. (새로운 것이 바로바로 분류x)  훈련데이터를 학습이 아닌 저장을 하기 때문에 (비모수학습) 많은 메모리를 많이 차지하기도 한다. 범주형같은 명목형 데이터는(거리기반이라) factor로 다 바꾸어줘야 하고, 결측된 데이터가 있다면 빼거나 새로 추가해서 관리해야한다는 단점도 존재한다.

--->요약: 단순하나 실질적으로 느린분류, 모델만들기: X, 데이터의 종류와 손실에 민감함

Naive Bayes: 확률적인 방법론을 사용하여 knn처럼 classification만 하는 것이 아니라, 그렇게 분류한 이유를 확률적으로 보여줄 수 있는 알고리즘이다. 조건부확률(베이즈)기반 모델링을 사용하며, 속성(x)간은 독립(수학적인 독립이 아니라 서로 연관성이 없음을 보여주는 독립이라고 생각하면 된다.) 적임을 가정한 모델이라 현실성이 떨어지는 것이 가장 큰 단점이라고 할 수 있다. 하지만 Naive라는 명칭이 붙은 것처럼 그만큼 단순하고 효과적임을 알 수 있는 방법이다. knn처럼 노이즈(결측등)가 있어도 확률값에만 조금 영향을 미치기 때문에 상관이 거의 없고, 앞서 말했듯 예측분류를 하면, 어떤 추정된 확률을 사용하여 예측했는지를 얻기가 쉽다. (몇%로 xx인지) 하지만 그 추정된 확률이 예측되는 범주에 비해서는 신뢰도가 떨어지는 편이기에 장점이자 단점이기도 한 부분.                                                             

 그리고 이 알고리즘의 속성들이 키워드로 구성된 예가 많은데, 수치보다는 범주형 속성에 더 어울리는 방법이기 때문이다.

--->요약: 굉장히 빠르고 단순하나, 가정면에서 현실성이 떨어질 수 있고, 수치형이 많이 존재하는 데이터 셋에는 어울리지 않는 방법이다.

Dicision Tree: 의사결정나무 알고리즘은 앞선 방법들의 단점들을 보완하는 면이 있다. 결측치에 민감하지도 않고 명목,수치형 데이터를 모두 처리 가능하다. (다만 너무 많은 범주를 가진 명목형 변수와 대량의 수치데이터는 적합하지 않다)과정은 수학적인 (엔트로피) 판단이 필요하겠지만, 보고의 측면에서는 수학적 배경이 없이도 쉽고 투명하게 (White box model)해석이 가능하기 때문에 굉장히 좋다. 하지만 모델이 쉬이 과적합또는 과소적합화 되기 때문에 사전,사후 가지치기의 밸런스를 맞추기가 어렵다는 단점이 있다. 또한 축 평행 기반으로 회귀하기 때문에 일부 관계는 모델링이 어려운 점도 존재한다. 마지막으로 훈련데이터에 대한 조금의 변경에 민감하다( 분기점 아래의 것들에 크게 영향을 미칠 수 있음)

--->요약: 좋은 모델이지만 생각보다 까다롭게 따질 것이 많다. 하지만 그 장점이 명확히 뛰어나다.