return Pasted;
article thumbnail
파이썬 배열을 사용하기 위해 numpy, 결과를 도표화하기 위해 matplotlib.pyplot 라이브러리를 사용한다.
import numpy as np
import matplotlib.pyplot as plt

x = np.array([0.0, 1.0, 2.0])
y = np.array([3.0, 3.5, 5.5])

plt.scatter(x, y)
plt.show()

실행 결과

w = 0   # 기울기
b = 0   # 절편

rate = 0.01   # 학습률
epochs = 1000   # 반복 횟수

n = float(len(x))   # 입력 데이터의 개수

# 경사하강법
for i in range(epochs):
  predict = w * x + b   # 예측값
  dw = (2/n) * sum(x * (predict - y))
  db = (2/n) * sum(predict - y)
  w = w - rate * dw   # 기울기 수정
  b = b - rate * db   # 절편 수정

  # 경사하강법 과정 출력
  if i % 100 == 0:
    predict = w * x + b
    plt.plot([min(x), max(x)], [min(predict), max(predict)])

# 기울기와 절편을 출력
print(w, b)

# 예측값을 만듬
predict = w * x + b

# 입력 데이터를 그래프 상에 찍음
plt.scatter(x, y)

# 예측값을 선 그래프로 그림
plt.plot([min(x), max(x)], [min(predict), max(predict)], color='red')
plt.show()
1.2532418085611319 2.745502230882486
실행 결과
해당 표에서 빨간 선이 최종 학습된 값이다.
좌표 사이에서 적절히 예측 값을 학습한 결과를 볼 수 있다.
profile

return Pasted;

@Pasted