斯坦福机器学习3之局部线性回归建模

代码和word版笔记下载地址:
http://download.csdn.net/detail/misscoder/9381035
一:模型引入
当我们需要对某输入变量x进行预测时,若使用线性回归对问题进行建模,算法流程是这样的:
首先:使用最小二乘法或者极大似然法,基于梯度下降或正规方程法求解模型参数theta,确定模型;
最后:返回输入变量的预测值y=θ^T x
然而当线性建模并不能很好地描述问题时,我们便不能再使用这种方式来对变量x进行预测了。举个简单例子,对于y=exp(x)的实际问题,若以y=θ^T x进行线性建模则就显得不够明智了。但是局部线性还是OK的,即不管整体上或者说整个变量空间上,输出与输入满足哪种模型,但我们始终可以认为在局部变量空间上,输出与输入是满足线性模型的,这就是局部拟合的思想,所以在这节课中他介绍了局部加权线性回归方法,这是一种非常流行的算法。
二:算法核心思想
局部线性拟合。如果我们需要对x进行预测,那我们考虑x邻域范围内的训练样本,基于这一训练样本子集进行线性建模(而常规线性回归是基于所有训练样本进行线性建模,这就是LMR和LR的区别之处),然后对x进行线性预测。
三:算法数学核心思想
成本函数J(theta)只考虑或者只考虑x邻域内的训练样本,类似于DSP和DIP中加窗处理,这里在x处使用高斯函数对训练样本预测误差(的平方)进行加窗,以此构造局部线性拟合成本函数
四:算法步骤
(1):使用正规方程法求解使成本函数J(theta)值最小的参数theta
(2):返回输入变量的预测值y=θ^T x

图1 正规方程法求解局部线性回归模型参数

五:MATLAB实现代码
1、算法实现函数

% Function: 基于正规方程法的最小二乘法进行局部加权线性回归建模并对指定输入x进行预测
% Author:  
% Create Time:2015/12/26
% Parameter:
%   tx--训练样本输入
%   ty--训练样本输出
%   t --bandwidth,加权函数的波形控制参数
%   x --输入变量
% Steps:
%   1:构建样本输入矩阵、输出向量、权重矩阵W等
%   2:正规方程法求解参数theta并对指定输入x进行预测

function [y,theta ] = laLWR(tX,tY,t,x)
%%   1:构建样本输入矩阵、输出向量、权重矩阵W等
[m,n] = size(tX);%m--样本数,n--特征数
tX0 = ones(m,1);
X = [tX0 tX];
Y = tY;
W = zeros(m,m);
for i = 1:1:m
    W(i,i) = weight_LWR(X(i,:),[1 x],t);
end

%%   2:正规方程法求解参数theta
mytheta = pinv(X'*W*X)*X'*W*Y;
y = [1 x]*mytheta;
if nargout ==2 
    theta = mytheta;
end

end

function w = weight_LWR(xi,x,t)
% Function: 求解局部加权线性回归建模过程中权重,xi与x可为任意行向量
w = exp(-(xi-x)*(xi-x)'/(2*t^2));
end

2、测试函数。
实验结果如图2,图中包含训练样本数据点,线性模型以训练样本中x为输入变量进行预测的曲线以及不同波形参数下局部线性回归的预测曲线。实验结果表明,应根据实际情况合理设置波形参数,否则会出现欠拟合问题,本文参数设置方式下,使用t<=0.3建模比较合理

% Function: 测试基于正规方程法的最小二乘法进行局部加权线性回归建模函数theta = laLWR(tx,ty,t)
% Create Time:2015/12/26
% % Parameter:

clc;
clear all;
close all;

% 1 构造样本矩阵和参数矩阵框架
m = 50;
n = 1;
X = zeros(m,n);
Y = zeros(m,1);
theta = zeros(n+1,1);

% 2 完成样本矩阵和参数矩阵构建
for i=1:1:m
    x1 = randi([-2 22],1,1);%r = randi([iMin,iMax],m,n)
    %x1 = 10*randn(1);
    X(i,:) = x1;
    Y(i) = 20*exp(-((x1-2)^2)/2);
end

% 3 建模并预测x
x = 3 ;
t = 0.3;
[predict_x,h_theta]=laLWR(X,Y,t,x);
y_x = 20*exp(-x(1)^2/2);

% 4 作图反映建模结果
% 4_1 描述训练样本
C = sortrows([X,Y]);%排序以方便后续绘图
figure; hold on; 
plot(C(:,1),C(:,2),'rx','linewidth',7);
% 4_2 使用线性回归模型预测各个样本
pm = size(C,1);%预测变量的个数
pC = zeros(pm,1);%存储各个变量的预测值
for ip = 1:1:pm
    pC(ip) = laNormalEquations(X,Y,C(ip,1));
end
plot(C(:,1),pC,'Color',[0.4  0.5  0.6],'linewidth',2);
% 4_3 使用局部线性回归模型预测各个样本,并对模型波形参数进行探讨
t_vector = [0.1 0.3 0.6 1  3 5];%模型波形参数
colors=['g';'b';'c';'m';'y';'k'];

for it = 1:1:size(t_vector,2)%最外层控制波形参数的更新
   t = t_vector(it);
   pix = zeros(pm,1);
   for ix = 1:1:pm;%第二层对样本中的每一个输入变量进行预测
       x = C(ix,1);
       pix(ix)=laLWR(X,Y,t,x);
   end
   plot(C(:,1),pix,colors(it),'linewidth',2 );
end
legend('训练样本','线性模型','LWR t=.1','LWR r=.3','LWR r=.8,','LWR r=2','LWR r=5');

图2 线性建模和局部权重线性建模效果图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
斯坦福大学机器学习的数学基础.pdf》是一本由斯坦福大学开发的机器学习教材。本书将数学基础与机器学习算法相结合,旨在向读者介绍机器学习所需的数学知识。 该书首先介绍了线性代数的基础知识。线性代数是机器学习中常用的工具,被广泛应用于数据处理和模型训练中。本书从向量、矩阵和线性变换等基本概念开始,逐步讲解了线性方程组、行列式、特征值与特征向量等重要内容,为读者提供了深入理解线性代数的基础。 接着,本书介绍了概率论和统计学的相关知识。概率论是机器学习的核心概念之一,它用于描述和解释不确定性。统计学是机器学习中的重要工具,利用统计方法对数据进行分析和建模。本书讲解了概率论的基本概念、条件概率和贝叶斯定理等内容,同时介绍了统计学中的假设检验、参数估计和回归分析等方法。 最后,本书还介绍了线性回归、逻辑回归、支持向量机等常用的机器学习算法。这些算法建立在数学基础之上,通过数学模型实现对数据的学习和预测。本书通过具体的案例分析和实践操作,让读者理解这些算法的原理和实际应用。 总之,《斯坦福大学机器学习的数学基础.pdf》是一本系统而全面的机器学习教材,涵盖了机器学习所需的数学基础知识。读者通过学习本书,将能够理解和应用机器学习算法,从而在实际问题中进行数据分析和模型构建。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值