- 모델이 예측한 결과와 정답간의 차이(오차)를 가장 적게 만드는 Parameter를 찾는 과정
- 모델의 예측값과 실제 값의 차이를 계산하는 함수를 만들고 그 값이 최소가 되는 지점을 찾는 작업
- 방법
- Gradient Descent : 경사하강법
- 일반적인 최적화 알고리즘
- 손실함수를 최소화하는 파라미터를 찾기위해 반복해서 조정
- 과정
- 파라미터 벡터 𝑊에 대해 손실함수의 현재 gradient(경사,기울기)를 계산한다.
- gradient가 감소하는 방향으로 벡터 𝑊를 조정
- gradient가 0이 될때 까지 반복(gradient=0이 손실함수 최소화하는 지점)
- gradient는 weight와 loss의 관계를 나타냄
- gradient = 양수 : loss 줄이기 위해 weight 줄여야된다
- gradient = 음수 : loss 줄이기 위해 weight 커져야 한다
- parameter
- Learning rate
- 기울기에 따라 이동할 step의 크기
- 너무 작은 경우 시간이 오래걸리거나 gradient = 0이 되기 전에 멈춤
- 너무 큰 경우 gradient = 0 지점보다 큰 값, 작은 값 반복하다 발산하게됨
- 모델의 예측한 값과 실제값 사이의 차이를 정의하는 함수로 모델이 학습할 때 사용
- 이 함수의 반환값(Loss)을 최소화 하는 파라미터을 찾는 것이 최적화의 목적
- 해결하려는 문제에 맞춰 loss 정의
- Classification(분류) : cross entropy
- Regression(회귀) : MSE(Mean Squared Error)
- parameter
param = { 'C':[0.001, 0.01, 0.1, 1] # 규제강도(default : 1), 작을수록 규제가 강하다 } gs = GridSearchCV(LogisticRegression(random_state=0), param, cv=5, scoring='accuracy', n_jobs=-1)