数据:工资和年龄(2个特征)

目标:预测银行会贷款多少钱(标签)

考虑: 工资和年龄影响银行贷款,它们各自的影响大小(参数)

 

x1, x2 表示的是两个特征(年龄, 工资)

y 是银行最终会借我们多少钱

找到一条最合适线(一些高维点)来最好拟合我们的数据点

假设theta1是年龄的参数, theta2是工资的参数

h0 = theta0 + theta1 * x1 + theta2 * x2  # 目标函数np.dot(X, theta.T)

y = h0 + error  # 真实值与预测值的误差

error = y - h0 

由于大多数误差概率都符合高斯分布

p(error) = 1/(sqrt(2pi)*mean) * exp(-(y-h0)^2/2*mean^2)

计算所有x的误差,也就是似然函数

L(theta) =p(error)***

化解为对数似然

loglL(theta) = p(error) ++ 

化简为了使得对数似然的值越大,即

J(theta) = 0.5sum(y - h0) / len(h0)  最小, 这就是最小二乘法

对J(theta) 依据 theta进行求导操作

最后解得:

求最小值使得偏导等于0, 线性回归是唯一一个可以直接求解的函数

theta = np.dot(x.T * x) ^-1 * x.T * y 

 

posted on 2019-01-12 16:43  python我的最爱  阅读(340)  评论(0编辑  收藏  举报