首页 > 编程语言 >简单易学的机器学习算法——岭回归(Ridge Regression)

简单易学的机器学习算法——岭回归(Ridge Regression)

时间:2023-06-15 11:04:13浏览次数:45  
标签:lam end 模型 回归 方差 易学 dataX Ridge Regression


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

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

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

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

简单易学的机器学习算法——岭回归(Ridge Regression)_岭回归

(摘自:机器学习实战)

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

二、岭回归的概念

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

  • 子集选择
  • 收缩方式(Shrinkage method),又称为正则化(Regularization)。主要包括岭回归个lasso回归。
  • 维数缩减

    岭回归(Ridge Regression)是在平方误差的基础上增加正则项

,

通过确定

的值可以使得在方差和偏差之间达到平衡:随着

的增大,模型方差减小而偏差增大。    对

求导,结果为

令其为0,可求得

的值:

三、实验的过程

    我们去探讨一下取不同的

对整个模型的影响。

简单易学的机器学习算法——岭回归(Ridge Regression)_方差_02

MATLAB代码

主函数


%% 岭回归(Ridge Regression)

%导入数据
data = load('abalone.txt');
[m,n] = size(data);

dataX = data(:,1:8);%特征
dataY = data(:,9);%标签

%标准化
yMeans = mean(dataY);
for i = 1:m
    yMat(i,:) = dataY(i,:)-yMeans;
end

xMeans = mean(dataX);
xVars = var(dataX);
for i = 1:m
    xMat(i,:) = (dataX(i,:) - xMeans)./xVars;
end

% 运算30次
testNum = 30;
weights = zeros(testNum, n-1);
for i = 1:testNum
    w = ridgeRegression(xMat, yMat, exp(i-10));
    weights(i,:) = w';
end

% 画出随着参数lam
hold on
axis([-9 20 -1.0 2.5]);
xlabel log(lam);
ylabel weights;
for i = 1:n-1
    x = -9:20;
    y(1,:) = weights(:,i)';
    plot(x,y);
end



岭回归求回归系数的函数


function [ w ] = ridgeRegression( x, y, lam )
    xTx = x'*x;
    [m,n] = size(xTx);
    temp = xTx + eye(m,n)*lam;
    if det(temp) == 0
        disp('This matrix is singular, cannot do inverse');
    end
    w = temp^(-1)*x'*y;
end



标签:lam,end,模型,回归,方差,易学,dataX,Ridge,Regression
From: https://blog.51cto.com/u_16161414/6485333

相关文章

  • 简单易学的机器学习算法——协同过滤推荐算法(1)
    一、推荐系统的概念  推荐系统(RecommendationSystem,RS),简单来说就是根据用户的日常行为,自动预测用户的喜好,为用户提供更多完善的服务。举个简单的例子,在京东商城,我们浏览一本书之后,系统会为我们推荐购买了这本书的其他用户购买的其他的书:推荐系统在很多方面都有很好的应......
  • 简单易学的机器学习算法——集成方法(Ensemble Method)
    一、集成学习方法的思想    前面介绍了一系列的算法,每个算法有不同的适用范围,例如有处理线性可分问题的,有处理线性不可分问题。在现实世界的生活中,常常会因为“集体智慧”使得问题被很容易解决,那么问题来了,在机器学习问题中,对于一个复杂的任务来说,能否将很多的机器学习算法......
  • 简单易学的机器学习算法——K-近邻算法
    一、近邻算法(NearestNeighbors)1、近邻算法的概念近邻算法(NearestNeighbors)是一种典型的非参模型,与生成方法(generalizingmethod)不同的是,在近邻算法中,通过以实例的形式存储所有的训练样本,假设有m个训练样本:此时需要存储这m个训练样本,因此,近邻算法也称为基于实例的模型......
  • 简单易学的机器学习算法——朴素贝叶斯
    一、贝叶斯定理  1、条件概率B发生的情况下,事件A发生的概率,用表示。  2、全概率公式     含义是:如果和构成样本空间的一个划分,那么事件B的概率,就等于和的概率分别乘以B对这两个事件的条件概率之和。  3、贝叶斯推断        其中称为先验概率,即......
  • 简单易学的机器学习算法——极限学习机(ELM)
    一、极限学习机的概念    极限学习机(ExtremeLearningMachine)ELM,是由黄广斌提出来的求解单隐层神经网络的算法。    ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。二、极限学习机的原理EL......
  • 简单易学的机器学习算法——Logistic回归
    一、Logistic回归的概述  Logistic回归是一种简单的分类算法,提到“回归”,很多人可能觉得与分类没什么关系,Logistic回归通过对数据分类边界的拟合来实现分类。而“回归”也就意味着最佳拟合。要进行最佳拟合,则需要寻找到最佳的拟合参数,一些最优化方法就可以用于最佳回归系数的确......
  • 简单易学的机器学习算法——因子分解机(Factorization Machine)
    一、因子分解机FM的模型    因子分解机(FactorizationMachine,FM)是由SteffenRendle提出的一种基于矩阵分解的机器学习算法。1、因子分解机FM的优势    对于因子分解机FM来说,最大的特点是对于稀疏的数据具有很好的学习能力。现实中稀疏的数据很多,例......
  • TensorFlow实践——Softmax Regression
    SoftmaxRegression是Logistic回归在多分类上的推广,对于Logistic回归以及SoftmaxRegression的详细介绍可以参见:简单易学的机器学习算法——Logistic回归利用Theano理解深度学习——LogisticRegression深度学习算法原理——SoftmaxRegression下面的代码是利用TensorFlow基本API实......
  • 简单易学的机器学习算法——K-Means算法
    一、聚类算法的简介  聚类算法是一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。聚类算法与分类算法最大的区别是:聚类算法是无监督的学习算法,而分类算法属于监督的学习算法。  在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似......
  • 简单易学的机器学习算法——K-Means++算法
    一、K-Means算法存在的问题由于K-Means算法的简单且易于实现,因此K-Means算法得到了很多的应用,但是从K-Means算法的过程中发现,K-Means算法中的聚类中心的个数k需要事先指定,这一点对于一些未知数据存在很大的局限性。其次,在利用K-Means算法进行聚类之前,需要初始化k个聚类中心,在上述的......