ML Interview Questions
1. Basic Interview Questions
1.1 Bias - Variance Tradeoff
- Bias: underfitting
- Variance: Overfitting
중간지점을 잘 찾아서 균형을 찾는게 관건.
- Bias 줄이기
- linear model -> Polynomial, Deep Network
- 학습 시간 늘리기,
- feature engineering, loss function 개선
- Variance 줄이기
- L1, L2, Dropout 같은 regularization 추가
- pruning, depth 줄이기
- 더 많은 데이터 추가
- Bagging, Boosting 같은 ensemble learning 사용 (random forest)
수학적으로 설명
- Bias: 모델 평균 예측값 - 실제 f(x) 차이 : \(\left( f(x) - E\left[ \hat{f}(x) \right] \right)^2\)
- Variance: 모델 예측값 - 모델 예측값의 평균값 : \(E \left[ \left(\hat{f}(x) - E\left[ \hat{f}(x) \right] \right)^2 \right]\)
Bias Variance Decomposition 저 위의 공식이 나옴. 제곱 있는건 MSE에서 decomsition 해서 그러함.
2. ML Performance
2.1 ROC AUC
ROC
- ROC: Receiver Operating Characteristic curve
- X축: FPR (False Positive Rate) \(FPR = \frac{FP}{FP + TN}\)
- Y축: TPR (True Positive Rate) \(TPR = \frac{TP}{TP + FN}\)
- threshold 를 움직이면서 각각을 모두 계산하는 방법
- ex) threshold = 0.7 이면 0.7이상은 positive 이고, 이하는 negative 로 설정
ROC AUC
- ROC Curve 아래 면적 (Area Under Curve)
- 수치
- 0.5: 랜덤
- 1.0: 완벽 구분
- 0: 완전히 반대로 예측
2.2 PrAUC
- x축: \(Recall = \frac{TP}{TP + FN}\) (positive로 예측한것 중에 진짜 positive 비율)
- y축: \(Precision = \frac{TP}{TP + FP}\)
해석
- recall: 실제 y=1 에서 모델이 positive를 맞춘 비율
- precision: 모델이 y_predict = 1 로 예측한것 중에 실제 맞춘 비율
- 관계
- recall 과 precision은 서로 trade-off 관계
- 모든 값을 y_predict = 1 로 예측시 recall 은 1이 나옴
- 엄청나게 확신갖는것만 y_predict = 1 로 예측시 precision은 높아짐 하지만 recall은 낮아짐
- PrAUC 는 positive가 매우 적은 상황에서 accuracy 보다 더 신뢰 할수 있음.
2.2 Precision@K and Recall@K
- Precision@K (P@K)
- \[Precision@K = \frac{\text{Top K 중 실제 구매한 상품 수}}{K}\]
- K: 상위 K 추천된 상품 수
- 유저가 실제 클릭/구매 확률이 높은지를 랭킹에서 보기 때문에 매우 중요
- Recall@K
- \[Recall@K = = \frac{\text{Top K 중 실제 구매한 상품 수}}{전체 구매 상품 갯수}\]
- 유저가 리스트중에서 한개를 구매하는게 아니라 여러개 구매 가능시 중요
- 쿠팡이나 아마존은 아님
2.3 mAP (Mean Average Precision)
Average Precision