어린이에서 어른이되는 프로그래머(65)
-
나이브 베이즈(Naive Bayes)
이 포스트는 허민석님의 유튜브 머신러닝 내용을 정리한 글입니다. 실습 코드는 도서 나의 첫 머신러닝/딥러닝에서 발췌해왔습니다. 실습 코드와 자료는 링크의 Github에서 볼 수 있습니다 이번 포스트에서는 머신러닝 지도 학습 분류 알고리즘 중 하나인 나이브 베이즈(Naive Bayes) 알고리즘에 대해 알아보겠습니다. 이미 우리는 이전 포스트들에서 다양한 분류 알고리즘에 대해 알아봤습니다. 대표적으로 kNN은 데이터의 특성을 벡터 공간의 축으로 지정해서 데이터 간의 유클리드 거리를 토대로 분류했으며, SVM에서는 데이터를 분류하는 적절한 Decision Boundary를 찾아 데이터를 분류했습니다. 이번에 알아볼 나이브 베이즈 알고리즘은 확률 기반 알고리즘으로, 데이터를 독립적인 사건으로 가정(Naive)..
2022.01.24 -
Decision Tree 실습 - 지니 계수 및 서울 지역 다중 분류 (2)
이 포스트는 허민석님의 유튜브 머신러닝 내용을 정리한 글입니다. 실습 코드는 도서 나의 첫 머신러닝/딥러닝에서 발췌해왔습니다. 실습 코드와 자료는 링크의 Github에서 볼 수 있습니다 이번 포스트에서는 서울 지역의 위치 정보(위도, 경도)로 임의의 지역을 한강을 기준으로 하는 네 지역(강북, 강남, 강동, 강서)로 분류하는 Decision Tree 모델을 생성하고 학습해보겠습니다. 모든 머신러닝 문제는 문제 정의 및 데이터 수집에서 출발합니다. 바로 위에서 말했듯이 우리는 이번 실습에서 서울 지역의 위치 정보(위도, 경도)를 데이터로 서울을 한강을 기준으로 하는 네 지역(강북, 강남, 강동, 강서)로 분류하고, 임의의 지역의 위치 정보를 테스트 데이터로 삼아 분류해보겠습니다. 서울의 위치 정보는 구(d..
2022.01.19 -
Decision Tree 실습 - 지니 계수 및 서울 지역 다중 분류 (1)
이 포스트는 허민석님의 유튜브 머신러닝 내용을 정리한 글입니다. 실습 코드는 도서 나의 첫 머신러닝/딥러닝에서 발췌해왔습니다. 실습 코드와 자료는 링크의 Github에서 볼 수 있습니다 이번 포스트에서는 Decision Tree를 활용해 서울 지역 위치 정보를 데이터로 서울 지역을 강동, 강서, 강남, 강북 네 군집으로 다중 분류해보겠습니다. 이전 Deicision Tree에서 우리는 ID3 알고리즘은 정보 이득(information gain)과 엔트로피(entrophy)를 이용하는 알고리즘임을 알아봤습니다. 반면 사이킷런의 Decision Tree는 CART(classification and regression tree) 타입으로, CART는 트리의 노드마다 특징을 이진 분류(Binary classif..
2022.01.19 -
머신러닝 모델의 성능을 알아보자
이 포스트는 허민석 님의 저서 "나의 첫 머신러닝/딥러닝"의 내용을 정리하였습니다. 저번 포스트에서 우리는 아래와 같이 사이킷런의 classifiaction_report와 accuracy_score를 사용하여 SVM 모델의 정확도를 측정해봤습니다. 정확도(accuracy) 0.95는 한눈에 들어오지만 classification_report에 나오는 precision, recall, f1-score 지표들은 한눈에 들어오지 않아 이해에 어려울 수 있습니다. 이번 포스트에서는 precision, recall, f1-score 등 다양한 머신러닝 모델의 평가 방법을 알아보고, 최종적으로는 아래의 표를 해석해보겠습니다. 시작에 앞서, 이해를 위해 선행되는 5가지에 대해 알아보겠습니다. 1. 혼동 행렬(confu..
2022.01.08 -
SVM(Support Vector Machine) 실습 - 농구 선수 포지션 예측
이 포스트는 허민석님의 유튜브 머신러닝 내용을 정리한 글입니다. 실습 코드는 도서 나의 첫 머신러닝/딥러닝에서 발췌해왔습니다. 실습 코드와 자료는 링크의 Github에서 볼 수 있습니다. 이번 포스트는 SVM(Support Vector Machine) 모델로 kNN 알고리즘에서처럼 2020-21 시즌 NBA 농구 선수의 포지션을 예측해보겠습니다. 데이터 크롤링과 EDA 과정은 이전 포스트에서 다뤘으므로, 모델을 생성하는 작업부터 시작하겠습니다. 먼저 필요한 라이브러리들을 임포트한 다음, 2020-21 NBA 농구 선수들의 데이터를 읽어 들여 판다스 데이터 프레임의 형태로 생성합니다. kNN EDA 과정에서 찾은 분별력이 떨어지는 특징들을 데이터 프레임에서 제거한 다음 전체 데이터를 학습 데이터와 테스트 ..
2022.01.08 -
SVM(Support Vector Machine)
이 포스트는 허민석님의 유튜브 머신러닝 내용을 정리한 글입니다. 실습 코드는 도서 나의 첫 머신러닝/딥러닝에서 발췌해왔습니다. 실습 코드와 자료는 링크의 Github에서 볼 수 있습니다. 이번 포스트에서는 SVM, 서포트 벡터 머신 알고리즘에 대해 알아보겠습니다. SVM은 kNN, Decision Tree와 마찬가지로 주로 classificaion을 위해 사용되는 알고리즘으로, 이해하기 어렵지 않은 알고리즘에 비해 성능이 매우 우수하여 지도학습 머신러닝 알고리즘으로 자주 사용됩니다. 서포트 벡터 머신은 적은 데이터에 대해서 다른 알고리즘에 비해 높은 정확도를 내며 예측 속도가 빠르고, 뒤에서 알아볼 커널 트릭을 통해 다양한 feature를 갖는 데이터를 분류하기 쉽다는 장점이 있습니다. 그렇다면 SVM ..
2022.01.07