# -*- coding: utf-8 -*-
import numpy as np
import pylab
def Loss(b,m,x,y):
L1 = (y-m*x-b)**2
L2 = np.sum(L1,axis = 0)
return L2
def GD(m,b,learning_rate,x,y,data):
N = float(len(data))
for i in range(10000):
wcost_m = -(2/N) * x * (y - m*x - b)
wcost_b = -(2/N) * (y - m*x - b)
weifen_m = np.sum(wcost_m,axis = 0)
weifen_b = np.sum(wcost_b,axis = 0)
m = m - weifen_m * learning_rate
b = b - weifen_b * learning_rate
if i%1000==0:
#print m,b
print Loss(b,m,x,y)
return [m,b]
def plotfunction(x,y,intial_m,intial_b,learning_rate,data):
m_ok,b_ok = GD(intial_m,intial_b,learning_rate,x,y,data)
print m_ok,b_ok
yhat = m_ok * x + b_ok
pylab.plot(x,y,'o')
pylab.plot(x,yhat,'k-')
pylab.show()
def main():
intial_m = 0.0;
intial_b = 0.0;
learning_rate = 0.001
data =np.loadtxt('data.csv',delimiter=',')
x = data[:,0]
y = data[:,1]
print x,y
plotfunction(x,y,intial_m,intial_b,learning_rate,data)
if __name__ == '__main__':
main()
#第一:python的输入输出语句
#第二:参数传递是一一对应的
#第三:画图语句不熟悉
#第四:切片操作
#第五:for循环
#第六:列操作
#第七:文件读取
Code Implementation of Linear Regression
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=325615478&siteId=291194637
Ranking