본문 바로가기

문과생 DT 정복기/DT 공부하기

R활용 머신러닝(Machine learning)- KNN, SVM, Guassian RBF Kernel

반응형

안녕하세요.

매일 공부하는 나루입니다. 데이터분석준전문가 자격증을  준비하며 R로 머신러닝을 배우고 있습니다. 이 과정을 데이터 마이닝(Data Mining)이라고 하더군요. 즉 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾는 과정이라고 볼 수 있습니다. 지금까지 정리한 내용은 선형회귀와 로지스틱회귀였습니다.

R로 머신러닝(Machine learning) 선형회귀, 상관관계, 로지스틱 회귀분석

본 게시물에서는 KNN(K Nearest Neighbor), SVM(Support Vector Machine), Guassian RBF Kernel을 복습할 것입니다. 

1. KNN(K-Nearest Neighbors) 

* KNN 소개 

KNN은 K인접기법이라고 불립니다. 이 기법은 예측, 분류, 군집, 연관규칙으로 나뉘는데, 그중 분류(Classification)의 대표적인 기법입니다. 분류는 타깃이 있는 지도학습(Supervised learning)으로 새로운 데이터를 특정범주로 분류하는 기법입니다. 이 기법에는 로지스틱 회귀분석, 의사결정나무, 선형판별분석, 서포트벡터머신과 같은 방법들이 이해 해당합니다. 

KNN 알고리즘은 K개의 가장 가까운 이웃들을 사용해서 분류하는 기법으로 새로운 객체로 부터 가장 가까운 거리에 있는 K개의 범주를 확인하고 이중 가장 다수인 것을 분리합니다. 따라서 어떤 K를 정하는가에 따라 정확도가 달라집니다. 교차검증을 통해 가장 적절한 K를 선택하게 됩니다.  

* K값 찾기 연습하기 (find_k.R 파일) 

아래와 같은 코드를 입력해서 표를 그려서 적합한 K값을 찾는다. 그리고 K값으로는 홀수만 정해야 함 

2. SVM(Support Vector Machine) 

* SVM 소개 

SVM은 주로 분류에 사용하는데, 장점범주나 수치 예측 편리하고 오류 데이터에 영향이 없고, 과적합이 되는 경우가 적고, 신경망보다는 사용하기 쉽습니다. 단점은 여러개의 조합 테스트가 필요(최적의 모델 찾기 위함), 학습속도가 느려질 수 있고, 해석이 어렵고 복잡한 블랙박스 형태라는 점입니다.  

만약 오렌지와 사과를 구분한다면 인간으로 눈으로 해석되기 쉽지만, 컴퓨터로는 인식하기 어려울 수있는데, 오차를 줄이기 위해 레이블링 되어 있는 데이터를 최대화하여 분류하기 때문에 특이한 것들까지 잘 분류하는데 SVM이 최고라고 합니다. 이는 Support Vector간 마진을 최대한 멀리하는 것이 중요하다고 합니다. 

* SVM Modelling 연습하기(SVM.R 파일)

  • 만약 입력한 값이 int라는 형태로 나올 때 학습이 되지 않으므로y값은 카테고리 형태로 바꾸기 

  • SVM 모델링엥 가장 유명한 package는 'e1071'임 

  • Confusion Matrix로 정확도(전체건수내우불량예측적중율) 계산하기

  • Visualising (svm.R 파일에 코드 있음) 

3. Guassian RBF Kernel 

* RBF소개

기계학습에서 RBF(Radical Base Function) 커널은 다양한 커널학습 알고리즘에 널리 사용되는 커널 기능입니다. 특히 SVM 분류에 일반적으로 사용됩니다. 

Source: Use Gaussian RBF kernel for mapping of 2D data to 3D, Cross Validatd

 

* RBF 커널 연습하기 > RBF 커널 활용은 앞선 SVM 정확도 보다 더 정확도를 높이는 과정임

  • RBF커널을 사용하니 정확도 더 높아짐, 단 조건은 SVM 입력 조건과 동일할 때 비교 가능 

 

KNN, SVM, 가우시안 RBF 커널을 활용해 머신러닝을 만드는 과정을 공부했습니다. 컴퓨터라는 녀석과 호흡하는 것이 재미있습니다. 비록 배운 내용을 되내어 보는 과정이긴 하나, 언젠가 응용할 수 있겠죠? 데이터분석준전문가 자격증 과정을 공부하며 개념 정리하고 계속해 공부해보렵니다. 어렵긴한데 알면 알 수록 매력적인거 같아요. 

긴 글 읽어주셔서 감사합니다. 

총총 

* 참고자료 
1) 서포트 벡터 머신(SVM)의 사용자로서 꼭 알아야할 것들 - 매개변수 C와 gamma, 스카이비전 블로그 
2) Use Gaussian RBF kernel for mapping of 2D data to 3D, Corss Validated 

 

반응형