2. “머신러닝 (Machine learning)은 인공지능(Artificial Intelligence)에서,
통계학습 (Statistical learning)은 통계학(Statistics)에서 시작되었다.
두 학문은 유사하지만,
머신러닝은 대용량 자료와 예측의 정확도를 강조하고,
통계학습은 모형과 해석, 추론의 오차와 불확정성을 강조한다.
... 물론 더 잘팔리는 것은 머신러닝이다.”
- Hastie and Tibshirani*
* https://lagunita.stanford.edu/c4x/HumanitiesandScience/StatLearning/asset/introduction.pdf
3. 통계/통계학습 기초는 생략한다.
응용통계/통계학습의 명저들이 수두룩하기 때문이다. 예를들어:
● Introduction to Statistical Learning (pdf)
o 강의슬라이드와 R코드
o 약칭 ISL. 예측분석가의 필독서. 진도를 나가기 전에 (슬라이드라도) 1-6
장을 꼭 읽을 것을 권장한다.
● Modern Applied Statistics with S
o 약칭 MASS.*
● Elements of Statistical Learning (pdf)
o 약칭 ESL. 박사급(?) 예측분석가의 필독서. 수식이 무지 많다.
* R의 기본 라이브러리중 하나인 library(MASS)는 이 책에 기반한 것이다.
4. 기본개념 복습 (ISL 1장 참조)
지도학습 (Supervised learning)에는 회귀분석(regression analysis)과 판별분석
(classification)이 있다. 기본적인 용어와 표기법만 복습하자:
● 반응변수* Y 그리고 p-차원 예측변수** X
● 훈련 데이터 (training data)는 X와 Y 의 관측치*** (x1,y1),...,(xn,yn)
● 회귀분석모형 (model)+: Y = f(X) + ε. 오차항 ε 는 E(ε) = 0.
● 기대값 f(x) = E(Y|X = x) 은 꿈의 예측값이다. 현실에선 계산불가.++
● 지도학습의 목표는 제한된 훈련데이터를 사용해 f(x)에 가장 가까운 fhat(x)
를 추정하는 것이다.
* 혹은 outcome, dependent variable, response, target
** 혹은 predictor, inputs, regressors, covariates, features, independent variables
*** 혹은 observations, examples, instances
+ 판별분석의 모형은 조금 복잡하다.
++그런데 꿈의 예측값 f(x)를 알아도 예측은 ε정도는 틀린다.
5. 기본개념 복습 (ISL 2장, 5.1장 참조)
다음 질문이 혹시 헷갈린다면, ISL이나 다른 교재로 복습하도록 하자:
1. 모형의 복잡도(model complexity 혹은 flexibility)란?
2. 모수적 방법(parametric model)과 비모수적 방법(nonparametric model)이
란?
3. 과적합(overfitting)이란? 부적합 (under-fit)이란?
4. Bias-variance tradeoff란? Curse of dimensionality란? 과적합과의 관계는?
5. Training set 과 test set 이란? Training error, test error, Bayes error란? 모형
의 복잡도와 이들 error와의 관계는? (그림으로 그려보세요)
6. 모형평가(model assessment)와 모형선택(model selection)이란?
7. validation set 이란? 교차검증(cross-validation)이란?
6. 이정도 모형은 알아두자 #1
모르면 인생이 피곤한 모형/방법* 과 R함수
1. 선형모형 (linear model)과 최소제곱적합 (least squares fit) lm
a. 선형회귀 (linear regression), 분산분석(ANOVA), 등등은 특별한 케이스
b. 변수선택 기법 (forward, backward, stepwise, best subset)
2. 일반화 선형모형 (generalized linear model) glm
a. 로지스틱 회귀모형은 특별한 케이스
* 미국 기업에서 “데이터 사이언티스트”한다고 인터뷰 하면 대부분의 회사는 대략 여기서 끝난다. 그 외
에는 기초 확률 통계. 다음 페이지의 방법을 묻는 회사/직책은 굉장히 적다.
7. 자주 쓰이고, 알면 알수록 도움이 되는 모형/방법
1. regularization glmnet::glmnet*
a. Lasso, ridge, elastic-net 등은 특별한 케이스
b. shrinkage 와 variable selection을 아우른다.
2. k-nearest neighbor (k-nn) class:knn
3. 트리 (tree)모형 rpart::rpart
4. random forest randomForest::randomForest
* R 함수에서 class:knn 이라고 하면 library(class) 후 ?knn 하면 된다. R namespace에 관해 자세히 알
아보려면 R에서 ??"::" 로 도움말을 보자.
이정도 모형은 알아두자 #2
8. 이정도 모형은 알아두자 #2 (계속)
5. local regression (LOESS) loess
6. linear discriminant analysis (LDA) MASS::lda
7. kernel smoothing, splines, generalized additive model (GAM) gam::gam
9. 이정도 모형은 알아두자 #3
개념 이해하고, 패키지 돌리면 될 것 같은 모형들. 물론 깊이 알수록 좋다.
1. 차원축소(dimension reduction) 기법
a. principal component analysis (PCA) princomp
b. singular value decomposition (SVD) svd
2. principal component regression mvr::mvr
3. naive Bayes e1071::naiveBayes
4. support vector machine (svm) e1071::svm
5. boosting gbm::gbm 혹은 mboost::mboost
6. bagging ipred::bagging 혹은 adabag::bagging
7. neural net nnet::nnet
10. 의외로 쓸 기회가 많은 모형들.
1. mixed effect model / random effect model lme4::{lmer, glmer}
a. 좋은 책: Data Analysis Using Regression and Multilevel/Hierarchical
Models
2. Bayesian model
a. Empirical Bayes, Hierarchical Bayesian model 등등.
b. R 에서 하는 방법도 있지만 OpenBUGS / WinBUGS, JAGS, Stan 등의
독립된 툴들이 대세(라고 한다)*.
* 필자의 약한 부분. -_-;
이정도 모형은 알아두자 #4
11. 이정도 모형은 알아두자 #5 (“빅데이터”)
R은 아주 큰 자료는 처리하지 못한다. R로 분산컴퓨팅이나 대용량 컴퓨팅을 해보
고자 하는 노력도 있지만, 배보다 배꼽이 커질 수 있다.
관측치가 많으면 (large n), 샘플링*하고 R로 돌리면 편하다. 아니면 Python, 특히
scikit-learn 이 좋은 대안이 될 수 있다.
관측치뿐 아니라, 변수 갯수까지 많다면 (large n and p), 툴도 문제지만 더 깊은
지식/경험이 필요하다. 이 경우 흔히 사용되는 툴중 하나가 Vowpal Wabbit 으로
써, 이 툴은 Lasso같은 Regularized 선형 모형을 배치(batch)가 아니라 stochastic
gradient descent (SGD)를 이용해 온라인(online)으로 적합한다. 또다른 세계는
물론 딥러닝(Deep learning)이다.**
* 나중에 “고수는 큰자료를 두려워하지 않는다”편에서 다룰 예정.
** 물론 이런 방법들이 활용되고, 필요한 직장은 1%도 되지 않는다.
12. ... 이 방법들을 MASS와 ISL에 등장하는 데이터에 적용해 보도록 하자.
다음 편은...