코드의 형태는 크게 다르지 않습니다. 다만 x가 두 개가 되었으므로 x1, x2 두 변수를 만들고, 기울기도 a1과 a2 이렇게 두 개를 만듭니다. 앞서 했던 방법대로 경사 하강법을 적용해 보겠습니다. 먼저 예측 값을 구하는 식을 다음과 같이 세웁니다.
# 기울기와 절편 자리에 a1, a2, b를 각각 대입합니다. = - # 실제 값과 비교한 오차를 error로 놓습니다.= * + * +
오차 함수를 a1, a2, b로 각각 편미분한 값을 a1_diff, a2_diff, b_diff라고 할 때 이를 구하는 식은 다음과 같습니다.
len(x1) # 변수의 총 개수입니다. = (2/ ) * sum(- * ( )) # 오차 함수를 a1로 편미분한 값입니다. = (2/ ) * sum(- * ( )) # 오차 함수를 a2로 편미분한 값입니다. = (2/ ) * sum(-( )) # 오차 함수를 b로 편미분한 값입니다.=
학습률을 곱해 기존의 기울기와 절편을 업데이트한 값을 구합니다.
# 학습률을 곱해 기존의 a1 값을 업데이트합니다. = - * # 학습률을 곱해 기존의 a2 값을 업데이트합니다. = - * # 학습률을 곱해 기존의 b 값을 업데이트합니다.= - *
이제 실제 점수와 예측된 점수를 출력해서 예측이 잘되는지 확인합니다.
print("실제 점수: ", y) print("예측 점수: ", y_pred)
지금까지 코드를 정리하면 다음과 같습니다.