데이터 모델링, 회귀분석
P(B|A) = P(A∩B)/P(A), P(A|B) = P(B∩A)/P(B) ⇒ P(B|A) = P(A|B)P(B) / P(A)
데이터 모델링 관점에선 P(세타|X) = P(X|세타)P(세타)/P(X)
궁극적인 목적은 P(세타|X)를 최대화하는 세타를 찾는 것
- P(세타)가 일정하다는 가정 하에 P(X|세타)(likelihood)를 최대화하는 세타를 추정(MLE)
- 그렇지 않을 때는 P(X|세타)P(세타)를 최대화 하는 세타를 추정(MAP)
⇒ 이게 데이터 모델링이다..
데이터 전처리 및 간단한 분석(통계적 분석, 시각화 등)
training set/test set으로 분리 (validation set도 나누기도 함)
training set으로 사용할 모델을 학습 (model.fit(training_set))
학습된 모델의 test set에 대한 예측값을 통해 모델의 성능을 평가 (실제값과 예측값의 비교)
새로운 데이터에 대해 학습된 모델을 이용해 y 값을 예측 (추론)
overfitting (과적합)
Generalization (일반화)
오버피팅 해결 방법
Ridge regression
선형 최귀 모델에 L2 loss를 추가해서 파라미터를 정규화해줌
람다(하이퍼파라미터) 값을 조절해 패널티를 조절
sklearn.linear_model에서 ridge를 import해서 linearRegression과 동일하게 사용
Lasso
로지스틱 회귀
SVM (Support Vector Machine)
어 맞음… 그니까 여기선 가중치 W를 갖고 설명한 것 처럼, 만약 내가 업데이트하고자 하는 파라미터 X가 있을 때 손실함수를 X에 대해 편미분한 값을 파라미터 X를 업데이트하는 데 사용하고자 하는거지
근데 그럴려면 손실함수에 세타(파라미터)가 포함되어있어야하는거 아니야?