您的位置:首页 > 编程语言 > Python开发

Python实战二.梯度下降 多元回归

2018-02-27 11:44 387 查看
1.获得数据
2.建立方程-初始化参数
3.梯度下降

import numpy as np
import matplotlib.pyplot as plt
#原始数据 假设关系为 y=3+x+2z ==== y=a+bx+cz
x=np.mat([1,2,3,4,5,6])
z=np.mat([1,1,2,2,3,3])
y=np.mat([6,7,10,11,14,15])
y=y.T
a=0
b=0
c=0
canshu=np.mat([a,b,c])
canshu=canshu.T

print(canshu)
bianliang=np.column_stack(([1,1,1,1,1,1],x.T,z.T))
print(bianliang[:,0])
#学习速率
alpha=0.001
#学习步长(循环次数)
step=100

for i in range(10000):
prey=bianliang*canshu
a = a+alpha*((y-prey).T*bianliang[:,0])
b = b+alpha*((y-prey).T*bianliang[:,1])
c = c+alpha*((y-prey).T*bianliang[:,2])
canshu=np.column_stack([a,b,c]).T
print(canshu)


可以看到预测结果较精确
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息