머신러닝 개론
머신러닝 개념
- 인공지능 > 머신러닝 > 딥러닝(하위개념)
- 머신러닝 : 데이터 기반 규칙 도출(학습)을 통한 자동화/최적화
- 딥러닝 : 인간의 뇌를 모방한 뉴럴 네트워크를 통한 모델 학습/자동화/최적화
Input -> Black Box -> Output
지도/비지도 학습
- 지도(Supervised) 학습 : 정답데이터(Lable)을 사용하여 모델 훈련/회귀, 분류 문제
- 비지도(Unsupervised) 학습 : 입력데이터에 대한 레이블이 없는 경우의 학습(데이터의 패턴이나 구조를 발견하는 것) / 클러스터링, MLM 문제
정형/비정형 데이터
머신러닝 성능평가 방법론
- 분류 모델의 성능평가 : Confusion Matrix
- Accuracy : (모델이) 예측한 것들 중에 (실제와)일치한 비율
- Precision : (모델이) 맞았다고 예측한 것 중 (실제로) 맞은것의 비율
- Recall : (실제) 맞는 것들 중에 (모델이) 맞았다고 예측한 비율
- F1 score(조화평균) = 2 x (recall x precision)/(recall + precision) : 1에 가까울 수록 정확한 예측
- 훈련 집합과 테스트 집합
- sklearn.model_selection : train_test_split
- 과대적합과 과소적합
- 과대적합 : 모델이 과하게 훈련 집합에 학습/일반화 성능 부족
- 해결방안
- 정규화
- 앙상블 기법 : 배깅과 부스팅
- 프루닝 : 결정트리에서 가지치기
- 과소적합 : 학습이 충분하지 않음
경사하강법
비용함수의 기울기를 사용하여 파라미터를 반복적으로 업데이트 하면서 최적의 값을 찾는 알고리즘
연속형과 범주형 데이터
분류와 회귀문제
-
분류
- 데이터 포인트의 범주 예측
- 로지스틱 회귀/SVM/K-NN/결정트리/랜덤포레스트
-
회귀
- 연속적인 값 예측
- 선형회귀/다항회귀/릿지/라쏘/SVR/랜덤포세스트
머신러닝과 분류(Classification) 문제
이진분류/다중 클래스 분류
로지스틱 회귀(Logistic Regression)
K-최근접 이웃 알고리즘(K-Nearest Neighbors, KNN)
서포트 벡터 머신(Support Vector Machine, SVM)
의사 결정 트리(Desicion Tree)
머신러닝과 회귀(Regression) 문제
모델
선형 회귀
다항 회귀
정규화 회귀
- 릿지 회귀(L2 정규화)
- 라쏘 회귀(L2 정규화)
회귀 트리
앙상블 방법
- 배깅(Bagging) : 부트스트램 샘플링을 통해 여러개의 모델을 학습 후 결과물을 평균 혹은 다수결로 결합(랜덤 포레스트 회귀)
- 부스팅(Boosting) : 여러 약학 학습기를 순차적으로 학습시켜 예측 성능을 향상(잘못 예측한 샘플에 가중치 부여)시키는 방법(AdaBoost, Gradient Boosting, XGBoost, LightGBM)
- 스태킹(Stacking) : 여러개의 모델을 학습시키고, 이들의 예측결과를 메타 모델에 입력하여 최종 예측 수행 (Stacking Regressor & Classifier)
기타 회귀
선형회귀 평가지표(Metrics)
- 평균 제곱 오차 : MSE
- 평균 절대 오차 : MAE
- 결정 계수 : R-squared(1에 가까울수록 좋은 모델)
- 평균 제곱근 오차 : RMSE
다중 공선성(MultiCollinearity)
: 회귀 분석에서 독립 변수들 간의 강한 상관관계로 발생하는 문제, 모델의 계수 추정의 불안정성을 초래함
: 변수 간의 상관관계를 줄이기 위한 변수 선택 및 정규화 기법을 사용할 수 있음
모델 성능 기록
: Weight and Biases(완디비)
- 실험 추적
- 하이퍼 파라미터 튜닝
- 모델 시각화 및 분석
- 협업 및 공유
Feature Selection
- RFE : Recursive Feature Elimination
- Filter Method
(데이터의 통계적 속성을 사용하여 특성 선택)
- Variance Threshold(분산 임계값)
- Correlation Coefficient(선형 상관 계수)
- Chi-Squared Test(카이제곱 검증)
- Wrapper Methods
(모델을 학습시키고 평가하여 특성을 선택)
- Sequential Feature Selection(SFS)
- Recursive Feature Elimination with Cross-Validation(RPECV)
- Embedded Methods
(모델 학습 과정에서 특성을 선택)
교차 검증(Cross Validation, CV)
교차 검증은 모델의 성능을 평가하고 일반화 능력을 검증하기 위해 데이터를 여러개의 부분으로 나누어 반복적으로 학습과 평가를 수행하는 방법
- K-Fold Cross Validation : 데이터를 K개로 나누어 학습과 테스트 데이터로 사용
- Stratified K-Fold Cross Validation(층화된 K-폴드 교차 검증) : 주로 불균형 데이터 셋에서 각 폴드가 클래스 비율을 동일하게 유지하도록 데이터를 나눔
- GridSerchCV & K-Fold Cross Validation
- RamdomizedSearchCV와 Staratified K-Fold Cross Validation
Hyper Parameter Tunning
머신러닝 모델의 학습과정에서, 사용자가 설정해야 하는 변수
- Grid Search : 모두 탐색
- Random Search : 무작위 탐색
- Bayesian Optimization(베이지안 최적화) : 이전 결과를 바탕으로 다음 하이퍼 파라미터 선택
- 초매개변수 최적화 알고리즘(최신 알고리즘) : Hyberband, Optuna
머신러닝과 클러스터링(Clustering) 문제
주어진 데이터 집합을 여러개의 군집으로 나누는 비지도 학습 방법 중 하나
거리 측정
데이터 간 유사도(Similarity)
- Jaccard Simility(자카드 유사도)
- 코사인 유사도
- 상관 계수 (Correlation Coefficient)
모델
K-Means 클러스터링
초기 중심점을 설정하여 클러스터링 : 초기 파라미터 설정 (n_clusters)
Hierarchicla
덴드로그램 트리구조로 표현
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
데이터 포인트의 밀도를 기반으로 군집을 형성
평가
엘보우 기법(Elbow Method)
실루엣 계수(Silhouettte Coefficient)
: 각 데이터 포인트가 자신의 클러스터 내에서 얼마나 가깝게 군집되고, 다른 클러스터와 얼마나 멀리 떨어져 있는지 측정
결과 프로토타이핑
- Stramlit
- PyPlot Dash Board