실습 | 파이썬 코딩으로 확인하는 다중 선형 회귀
import numpy as np import matplotlib.pyplot as plt # 공부 시간 x1과 과외 시간 x2, 성적 y의 넘파이 배열을 만듭니다. = np.array([2, 4, 6, 8]) = np.array([0, 4, 2, 3]) = np.array([81, 93, 91, 97]) # 데이터의 분포를 그래프로 나타냅니다. = plt.figure() = .add_subplot(111, ='3d') .scatter3D( , , ); plt.show() # 기울기 a의 값과 절편 b의 값을 초기화합니다. = 0 = 0 = 0 # 학습률을 정합니다. = 0.01 # 몇 번 반복될지 설정합니다. = 2001 # x 값이 총 몇 개인지 셉니다. x1과 x2의 수가 같으므로 x1만 세겠습니다. = len( ) # 경사 하강법을 시작합니다. for in range( ): # 에포크 수만큼 반복합니다. = * + * + # 예측 값을 구하는 식을 세웁니다. = - # 실제 값과 비교한 오차를 error로 놓습니다. = (2/ ) * sum(- * ( )) # 오차 함수를 a1로 편미분한 값입니다. = (2/ ) * sum(- * ( )) # 오차 함수를 a2로 편미분한 값입니다. = (2/ ) * sum(-( )) # 오차 함수를 b로 편미분한 값입니다. = - * # 학습률을 곱해 기존의 a1 값을 업데이트합니다. = - * # 학습률을 곱해 기존의 a2 값을 업데이트합니다. = - * # 학습률을 곱해 기존의 b 값을 업데이트합니다. if % 100 == 0: # 100번 반복될 때마다 현재의 a1, a2, b의 값을 출력합니다. print("epoch=%.f, 기울기1=, 기울기2=, 절편=" % ( , , , ))
# 실제 점수와 예측된 점수를 출력합니다. print("실제 점수: ", ) print("예측 점수: ", )