简单易学的机器学习算法——线性回归(2)

一、基本线性回归模型的抽象

    在基本的线性回归中(可见简单易学的机器学习算法——线性回归(1)),对于一个线性回归为题,我们得到一个线性方程组:

在上一篇中我们是构建平方误差函数使得误差函数取得最小值得方法求得回归系数。换种思考,对于这样的一个线性方程组的求解我们有其他的方式,这里我们提到了广义逆。

二、广义逆

    1、广义逆的概念

        广义逆的形式很多,并且广义逆有很好的性质。在众多的广义逆中,有一种称为Moore-Penrose广义逆,其要求比较严格,这里就不再具体说明。对于一个方阵,如果这个矩阵的行列式,则矩阵的逆存在,即对于满秩矩阵,其逆矩阵存在。如果矩阵不是方阵,此时并没有逆的概念,但是我们可以求矩阵的Moore-Penrose广义逆

    2、Moore-Penrose广义逆的性质

        定理:Moore-Penrose广义逆存在而且唯一。

    3、Moore-Penrose广义逆的求法

        可以通过奇异值分解SVD的方式求解广义逆,具体如下:

  • 奇异值分解:,其中为对角阵
  • 计算广义逆

这里,假设,则

三、线性回归的求解

    对于上面的线性方程组,利用Moore-Penrose广义逆,我们可以求得回归系数为:

四、实验

    我们同样采用简单易学的机器学习算法——线性回归(1)中的实验数据,我们得到以下的实验结果:


原始数据


最佳拟合直线

MATLAB实验源码

主函数

%% load Data
A = load('ex0.txt');

X = A(:,1:2);%读取x
Y = A(:,3);

ws = pinvRegres(X,Y);

%% plot the regression function
x = 0:1;
y = ws(1,:)+ws(2,:)*x;
hold on
xlabel x;
ylabel y;
plot(X(:,2),Y(:,1),'.');
plot(x,y);
hold off

求线性回归系数

function [ ws ] = pinvRegres( X, Y )
    [m,n] = size(X);
    ws = zeros(m,1);
    ws = pinv(X)*Y;
end


实验数据下载

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习中,线性回归是一种常见的实战方法。线性回归的目标是通过拟合一个线性模型来预测一个连续的目标变量。在实际应用中,线性回归可以用于预测房价、销售量等连续变量。 线性回归的基本定义是通过最小化预测值与真实值之间的平方误差来拟合一个线性模型。这可以通过梯度下降算法来实现。梯度下降算法是一种迭代优化算法,通过不断调整模型参数来最小化损失函数。 在线性回归中,我们可以使用最小二乘法来计算模型参数。最小二乘法通过求解正规方程来得到模型参数的闭式解。然而,当矩阵为非满秩矩阵时,无法求逆,这时可以采用岭回归来解决这个问题。岭回归通过在矩阵的转置乘以矩阵上加上一个正则化项来使矩阵非奇异,从而能够求逆。 另一种方法是使用梯度下降算法求解线性回归模型的参数。梯度下降算法通过不断迭代调整模型参数来最小化损失函数。在每一次迭代中,算法根据损失函数的梯度方向更新模型参数。通过不断迭代,梯度下降算法可以逐渐接近最优解。 在实际应用中,线性回归可以通过使用不同的特征工程方法来提高模型的性能。特征工程包括选择合适的特征、处理缺失值、进行特征缩放等。此外,线性回归还可以通过引入正则化项来防止过拟合问题。 总结起来,机器学习中的线性回归是一种常见的实战方法,可以通过最小化预测值与真实值之间的平方误差来拟合一个线性模型。可以使用最小二乘法或梯度下降算法求解模型参数。在实际应用中,还可以通过特征工程和正则化来提高模型性能。 #### 引用[.reference_title] - *1* [机器学习实战(一)—— 线性回归](https://blog.csdn.net/qq_44715621/article/details/110449232)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [机器学习实战----线性回归](https://blog.csdn.net/zhangyingjie09/article/details/83018072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [机器学习实战之线性回归](https://blog.csdn.net/luoluopan/article/details/88052806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值