线性回归中的平方损失和正规方程

损失函数

        损失函数是用来衡量机器学习模型性能的一个函数。它通过计算模型的预测值与真实值之间的误差,用一个实数来表示这种误差。误差越小,说明模型的性能越好,预测越准确。在确定损失函数之后,通过优化算法求解损失函数的极小值,从而确定机器学习模型中的最佳参数,使模型在训练数据上的表现尽可能好。

平方损失

        线性回归的损失函数通常用平方损失表示,如下:

J(w) = \sum_{i=1}^{n}(h(x_{i})-y_{i})^2


  • n 是样本数量。
  • y_{i}是第 i 个样本的实际值。
  • h(x_{i}) 是第 i 个样本的预测值。
    h(x_{i})=w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+...+b=w^{T}x+b
    wb为模型参数

    正规方程可以找到平方损失的最优解时的wb

正规方程 

w = (x^{T}x)^{-1}x^{T}y


J(w)=\sum_{i=1}^{n}(w^{T}x_{i}-y_{i})^2=(w^{T}x_{1}-y_{1},w^{T}x_{2}-y_{2},...,w^{T}x_{n}-y_{n})\cdot \begin{pmatrix}w^{T}x_{1}-y_{1} \\ w^{T}x_{2}-y_{2} \\ ... \\ w^{T}x_{n}-y_{n} \end{pmatrix}=(w^{T}x^{T}-y^{T})\cdot (xw-y)=w^{T}x^{T}xw-2w^{T}x^{T}y+y^{T}y
则:

\frac{\partial J}{\partial w}=2x^{T}xw-2x^{T}y

令导数为0:

2x^{T}xw-2x^{T}y=0

则:

x^{T}xw=x^{T}y

即:

w = (x^{T}x)^{-1}x^{T}y

import numpy as np
from sklearn.linear_model import LinearRegression



# 特征值(面积和房间数)
x = np.array([[1200, 3],
              [1500, 4],
              [1700, 3],
              [2000, 5],
              [2100, 4],
              [2300, 5],
              [2500, 4],
              [2700, 5]])

# 目标值(房屋价格,单位:千美元)
y = np.array([300, 350, 370, 400, 410, 450, 480, 500]).reshape(-1, 1)

# 给特征值增加一列1(用于计算截距)
ones_array = np.ones([x.shape[0], 1])
x = np.hstack([ones_array, x])

# 使用正规方程公式计算 w 和 b
w = np.linalg.inv(x.T @ x) @ x.T @ y
print('正规方程计算结果:[%.1f %.1f %.1f]' % (w[0][0], w[1][0], w[2][0]))

# 使用 LinearRegression 求解
estimator = LinearRegression(fit_intercept=False)  # 已经包含截距项,无需再拟合截距
estimator.fit(x, y)

# 获取系数并分别格式化
intercept, coef_area, coef_rooms = estimator.coef_[0]
print(f'LinearRegression 计算结果:[{intercept:.1f} {coef_area:.1f} {coef_rooms:.1f}]')


# 输出结果
# 正规方程计算结果:[截距 面积系数 房间数系数]
# LinearRegression 计算结果: [截距 面积系数 房间数系数]

正规方程计算结果:[147.0 0.1 -1.8]
LinearRegression 计算结果:[147.0 0.1 -1.8] 

 

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正规方程是一种用于求解线性回归问题的方法。它通过将代价函数对参数θ的偏导数等于零,来求得代价函数最小时的参数值。具体而言,正规方程首先定义代价函数,然后将其对参数θ进行偏导数运算,令偏导数等于零,最后解出参数θ的值。 使用正规方程求解线性回归可以避免使用梯度下降等迭代算法,直接得到参数θ的解析解。对于简单的线性回归问题,正规方程是一种方便且直观的求解方法。 要使用正规方程求解线性回归,需要以下几个步骤: 1. 定义代价函数:线性回归的代价函数通常采用均方误差(Mean Square Error, MSE)。它衡量了模型预测值与实际值之间的差异。代价函数的定义为所有样本预测值与实际值之差的平方和的一半。 2. 求解偏导数:将代价函数对参数θ进行偏导数运算,得到一个关于θ的方程。 3. 令偏导数等于零:将求得的偏导数方程等于零,得到一个关于θ的方程。 4. 解方程:解出关于θ的方程,得到最优的参数θ值。 需要注意的是,正规方程在求解过程需要计算矩阵的逆,因此当矩阵不可逆时,无法使用正规方程求解线性回归。此时可以考虑使用岭回归或Lasso回归等方法来解决。 总结起来,正规方程是一种通过最小化代价函数的解析解来求解线性回归的方法。它是一种直观且方便的求解方法,但在某些情况下可能无法使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值