사다리꼴 하강법을 이용하여 일원 선형 회귀를 실현하다
1519 단어 기계 학습
import numpy as np
import matplotlib.pyplot as plt
#
data = np.genfromtxt("data.csv", delimiter=",")
x_data = data[:,0]
y_data = data[:,1]
# learning rate
lr = 0.0001
#
b = 0
#
k = 0
#
epochs = 100
#
def compute_error(b, k, x_data, y_data):
totalError = 0
for i in range(0, len(x_data)):
totalError += (y_data[i] - (k * x_data[i] + b)) ** 2
return totalError / float(len(y_data))
#
def gradient_descent_runner(x_data, y_data, b, k, lr, epochs):
m = float(len(x_data))
for i in range(epochs):
b_grad = 0
k_grad = 0
for j in range(0, int(m)):
b_grad += (k * x_data[i] + b - y_data[i])
k_grad += ((k * x_data[i] + b - y_data[i]) * x_data[i])
b_grad /= m
k_grad /= m
b = b - lr * b_grad
k = k - lr * k_grad
if i % 5 == 0:
print("epochs:", i)
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, x_data * k + b, 'r')
plt.show()
return b, k
print("Starting b = {0}, k = {1}, error = {2}".format(b, k, compute_error(b, k, x_data, y_data)))
print("Running......")
b, k = gradient_descent_runner(x_data, y_data, b, k, lr, epochs)
print("After {0} iterations b = {1}, k = {2}, error = {3}".format(epochs, b, k, compute_error(b, k, x_data, y_data)))
# plt.plot(x_data, y_data, 'b.')
# plt.plot(x_data, x_data * k + b, 'r')
# plt.show()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
형태소 분석은 데스크톱을 구성하는 데 도움이?문자×기계 학습에 흥미를 가져와 개인 범위의 용도를 생각해, 폴더 정리에 사용할 수 있을까 생각해 검토를 시작했습니다. 이번 검토에서는 폴더 구성 & text의 읽기 → mecab × wordcloud를 실시하고 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.