单变量线性回归
预测线性方程可以用下式表示:
训练样本的目标值与预测计算所得的目标值之间存在一个误差ε:
ε=hθ(x)-y (服从高斯分布)
为了让误差越来越小,根据最小二乘法得到所需的目标函数:
通过批量梯度下降法使目标函数达到极值点:
通过迭代计算得到我们所需的曲线。
工具:Python3.6+PyCharm+Numpy+Pandas+PyQt5+Matplotlib
代码实现:
#创建所需的线性包 linear
#导入数据
import sys
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
def ToData():
path="Data.txt"
data=pd.read_csv(path,header=None,names=['x','y'])
return data
#定义代价函数
def costfun(X,y,Theta):
inner=np.power(((X*Theta.T)-y),2)
return np.sum(inner)/(2*len(X))
#提取数据,具体可参考Pandas用法
def data_taking(data):
data.insert(0,'Ones',1)
cols=data.shape[1]
X=data.iloc[:,0:cols-1]
y=data.iloc[:,cols-1:cols]
X=np.matrix(X.values)
y=np.matrix(y.values)
theta=np.ma