机器学习算法——岭回归(Ridge Regression)

一、一般线性回归遇到的问题

    在处理复杂的数据的回归问题时,普通的线性回归会遇到一些问题,主要表现在:

  • 预测精度:这里要处理好这样一对为题,即样本的数量和特征的数量
    • 时,最小二乘回归会有较小的方差
    • 时,容易产生过拟合
    • 时,最小二乘回归得不到有意义的结果
  • 模型的解释能力:如果模型中的特征之间有相互关系,这样会增加模型的复杂程度,并且对整个模型的解释能力并没有提高,这时,我们就要进行特征选择。

以上的这些问题,主要就是表现在模型的方差和偏差问题上,这样的关系可以通过下图说明:


(摘自:机器学习实战)

方差指的是模型之间的差异,而偏差指的是模型预测值和数据之间的差异。我们需要找到方差和偏差的折中。

二、岭回归的概念

    在进行特征选择时,一般有三种方式:

  • 子集选择
  • 收缩方式(Shrinkage method),又称为正则化(Regularization)。主要包括岭回归个lasso回归。
  • 维数缩减
    岭回归(Ridge Regression)是在平方误差的基础上增加正则项

,

通过确定的值可以使得在方差和偏差之间达到平衡:随着的增大,模型方差减小而偏差增大。

    对求导,结果为


令其为0,可求得的值:


三、实验的过程

    我们去探讨一下取不同的对整个模型的影响。


MATLAB代码

主函数

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. %% 岭回归(Ridge Regression)  
  2.   
  3. %导入数据  
  4. data = load('abalone.txt');  
  5. [m,n] = size(data);  
  6.   
  7. dataX = data(:,1:8);%特征  
  8. dataY = data(:,9);%标签  
  9.   
  10. %标准化  
  11. yMeans = mean(dataY);  
  12. for i = 1:m  
  13.     yMat(i,:) = dataY(i,:)-yMeans;  
  14. end  
  15.   
  16. xMeans = mean(dataX);  
  17. xVars = var(dataX);  
  18. for i = 1:m  
  19.     xMat(i,:) = (dataX(i,:) - xMeans)./xVars;  
  20. end  
  21.   
  22. % 运算30次  
  23. testNum = 30;  
  24. weights = zeros(testNum, n-1);  
  25. for i = 1:testNum  
  26.     w = ridgeRegression(xMat, yMat, exp(i-10));  
  27.     weights(i,:) = w';  
  28. end  
  29.   
  30. % 画出随着参数lam  
  31. hold on  
  32. axis([-9 20 -1.0 2.5]);  
  33. xlabel log(lam);  
  34. ylabel weights;  
  35. for i = 1:n-1  
  36.     x = -9:20;  
  37.     y(1,:) = weights(:,i)';  
  38.     plot(x,y);  
  39. end  

岭回归求回归系数的函数

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. function [ w ] = ridgeRegression( x, y, lam )  
  2.     xTx = x'*x;  
  3.     [m,n] = size(xTx);  
  4.     temp = xTx + eye(m,n)*lam;  
  5.     if det(temp) == 0  
  6.         disp('This matrix is singular, cannot do inverse');  
  7.     end  
  8.     w = temp^(-1)*x'*y;  
  9. end  


转自:http://blog.csdn.net/google19890102/article/details/27228279
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ridge回归是一种机器学习算法,它是线性回归的一种变种。它在标准线性回归的基础上加入了一个正则化项,以防止过拟合。Ridge回归的核心思想是通过最小化代价函数来找到最优的回归系数。代价函数由两部分组成,一部分是均方误差,用来衡量预测值与实际值之间的差距;另一部分是正则化项,用来控制回归系数的大小。正则化项中的参数λ决定了正则化的程度,越大则对回归系数的限制越严格。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [机器学习算法-线性回归、Lasso回归、Ridge回归算法python实现](https://download.csdn.net/download/LYQZDX/87921627)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)](https://blog.csdn.net/sai_simon/article/details/122337097)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [机器学习算法系列篇9:Lasso 和 Ridge回归算法](https://blog.csdn.net/robot_learner/article/details/103942849)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值