doistory

SVM, 의사결정 트리학습 본문

[ Data ]/데이터분석, 머신러닝, 딥러닝

SVM, 의사결정 트리학습

떡볶이최고 2023. 7. 7. 17:33

SVM

from sklearn.svm import SVC / from sklearn.svm import SVR

SVC : 분류 (Support Vector Classification)

SVR: 회귀 (Support Vector Regression)

 

SVM

- 로지스틱 회귀와 함꼐 분류를 위한 강력한 머신러닝 알고리즘

- 퍼셉트론의 개념을 확장하여 적용한 개념

- 퍼셉트론은 분류 오류를 최소화하는 알고리즘인 반면 SVM은 margin이 최대가 되도록 하는 알고리즘이다.

 

margin

- margin 분류를 위한 경계선과 이 경계선에서 가장 가까운 트레이닝 데이터 사이의 거리

- C라는 파라미터를 갖고 마진의 크기를 결정함. 그중 성능 좋은 모델선택


의사결정 트리학습

- 의사 결정 트리 학습은 트레이닝 데이터를 이용해 데이터를 최적으로 분류해주는 질문을 학습하는 머신러닝이다.

- 트레이닝 데이터를 통해 질문을 던지고 던진 질문의 불순도를 측정하여 질문을 수정해 나가게 된다.

- 불순도 측정을 위해서는 지니 인덱스(Gini Index), 엔트로피(entropy), 분류오류(classification error) 방법을 사용한다.

- 불순도 : 데이터가 제대로 분류되지 않고 섞여 있는 정도

- 결과를 그래프로 그려주는게 장점(맨 위에 위치한게 중요도 높음)


랜덤 포레스트

의사결정 트리 학습의 문제점

-주어진학습 데이터에 따라 생성되는 의사 결정 트리가 매우 달라져 일반화 하기 어렵다.(데이터가 랜덤하게 어떻게 섞이냐에 따라 결과가 달라져서 항상 일관된 결과를 보여주지 않음) -의사결정 트리를 이용한 학습 결과 역시 성능과 변동폭이 너무 크다. -이러한 단점들을 극복하기 위해 랜덤 포레트스가 등장하게 된다.

 

랜덤 포레스트(Random Forest)

-주어진 트레이닝 데이터 세트에서 무작로 중복을 허용하여 n 개를 선택한다.

- 선택된 n개의 데이터에서 중복 허용 없이 d개의 데이터를 선택한다.

- 이를 이용해 의사 결정 트리를 학습하고 생성한다.

- 이러한 작업을 k번 하여 k개의 의사 결정 트리를 생성하게 된다.

- 각 의사 결정 트리를 통해 예측을 하고, 예측된 결과의 평균이나 가장 많이 등장한 예측 결과를 선택하여 최종 예측값으로 결정하게 된다.

앙상블을 공부해서 앙상블 쓰는게 제일 좋다. 그치만 공부를하거나 포트폴리오를 쌓는 입장에서 다양한 모델을 써보고 앙상블을 선택해야함.

 

앙상블은 어떤 ‘알고리즘’이 아니고, 여러 알고리즘을 섞어 적합한 알고리즘을 찾는 ‘기법’

 

 

 

 

참고)머신러닝은 gpu 사용 불가 cpu 사용