线性回归问题求解
最小二乘法
定义数据及设置相关数值
进行线性回归。
线性结果绘制:
梯度下降法
代价函数定义及代价函数的梯度函数。
定义代价函数
#损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数
def cost_function(theta, X, Y):
diff = dot(X, theta) - Y # dot() 数组需要像矩阵那样相乘,就需要用到dot()
return (1/(2*m)) * dot(diff.transpose(), diff)
定义代价函数对应的梯度函数
定义代价函数
线性结果绘制:
再与最小二乘法的结果相比,其差值是及其小的,最小二乘法是直接调用 sklearn 中 linear_model.LinearR egression() 函数来进行求解的,相对于梯度下降的方法来说,会更加快计算出结果。通过这个方法,还是比较好理解梯度下降的整个原理过程的实现。