前言:
这次我来使用梯度下降法来解决多元线性回归问题,实际问题中每个事物都带有很多属性,一个参数往往只出现于理想情况,因此解决多元问题是很重要的。
正文:
import numpy as np
from numpy import genfromtxt
#genfromtxt使用的比较频繁
#就把他拉出来单独用了,不用次次都调用np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#mpl_toolkits.mplot3d是用来画3d图的
#参数多了,就需要多维平面来解决问题了
#读入你需要使用的数据
data=genfromtxt("Delivery.csv",delimiter=',')
print(data)
数据展示如下:
#切分数据
#这里我希望y_data代表的是theta0
#x_data代表除theta0以外的参数
#因此切分数据时把第一和第二列给x_data,最后一列给y_data
#代表了最后一列是theta0的值,其余为其他参数的值
x_data = data[:,:-1]
y_data = data[:,-1]
print(x_data)
print(y_data)
数据切分情况,看得出来成功切成了两部分:
#学习率
lr = 0.0001
#设置参数,只不过参数由一元变成了多元,想要几个就设置几个
theta0 = 0
theta1 = 0
theta2 = 0
#最大迭代次数
epochs = 1000
#最小二乘法,这一步仍然是在算j(theta)
def compute_error(theta0,theta1,theta2,x_data,y_data