数据:工资和年龄(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
原文地址:https://www.cnblogs.com/my-love-is-python/p/10260236.html
时间: 2024-10-14 23:41:26