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

一、线性回归的概念

    对连续型数据做出预测属于回归问题。举个简单的例子:例如我们在知道房屋面积(HouseArea)和卧室的数量(Bedrooms)的情况下要求房屋的价格(Price)。通过一组数据,我们得到了这样的关系:

这样的关系就叫做线性回归方程,其中

为回归系数。当我们知道房屋面积以及卧室数量时,就可以求出房屋的价格。当然还有一类是非线性回归。

二、基本线性回归

三、基本线性回归实验

原始的数据

最佳拟合直线

MATLAB代码

主函数

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

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

ws = standRegres(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 ] = standRegres( X, Y )
    [m,n] = size(X);
    ws = zeros(m,1);
    XTX = X'*X;
    if det(XTX) == 0
        disp('This matrix is singular, cannot do inverse');
    end
    ws = XTX^(-1) *(X'*Y);
end

四、局部加权线性回归

    在线性回归中会出现欠拟合的情况,有些方法可以用来解决这样的问题。局部加权线性回归(LWLR)就是这样的一种方法。局部加权线性回归采用的是给预测点附近的每个点赋予一定的权重,此时的回归系数可以表示为

为给每个点的权重。

    LWLR使用核函数来对附近的点赋予更高的权重,常用的有高斯核,对应的权重为

这样的权重矩阵只含对角元素。

五、局部加权线性回归实验

    对上组数据做同样的处理:

MATLAB代码

主函数

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

X = A(:,1:2);
Y = A(:,3);

[SX,index] = sort(X);%得到排序和索引
%yHat = lwlrTest(SX, X, Y, 1);
%yHat = lwlrTest(SX, X, Y, 0.01);
%yHat = lwlrTest(SX, X, Y, 0.003);


hold on
xlabel x;
ylabel y;
plot(X(:,2),Y(:,1),'.');
plot(SX(:,2),yHat(:,:));
hold off

LWLR

function [ output ] = lwlr( testPoint, X, Y, k )
    [m,n] = size(X);%得到数据集的大小
    weight = zeros(m,m);
    for i = 1:m
        diff = testPoint - X(i,:);
        weight(i,i) = exp(diff * diff'./(-2*k^2));
    end
    XTX = X'*(weight * X);
    if det(XTX) == 0
        disp('his matrix is singular, cannot do inverse');
    end
    ws = XTX^(-1) * (X' * (weight * Y));
    output = testPoint * ws;
end
function [ y ] = lwlrTest( test, X, Y, k )
    [m,n] = size(X);
    y = zeros(m,1);
    for i = 1:m
        y(i,:) = lwlr(test(i,:), X, Y, k);
    end
end

时是欠拟合,当

时是过拟合,选择合适的

很重要。

实验数据下载

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习思考者

机器学习——Dropout原理介绍

一:引言   因为在机器学习的一些模型中,如果模型的参数太多,而训练样本又太少的话,这样训练出来的模型很容易产生过拟合现象。在训练bp网络时经常遇到的一个问题,...

6578
来自专栏世界第一语言是java

BP神经网络基础算法

2433
来自专栏红色石头的机器学习之路

matlab svmtrain和svmclassify函数使用示例

监督式学习(Supervised Learning)常用算法包括:线性回归(Linear Regression)、逻辑回归(Logistic Regressio...

5850
来自专栏专知

【CVPR2018论文笔记】非监督任意姿势人体图像合成

1852
来自专栏深度学习计算机视觉

BP神经网络总结笔记

概念背景(来自百度百科) BP神经网络的代表者是D.Rumelhart和J.McCelland,“反向传播(backpropagation)”一词的使用出现在1...

2673
来自专栏书山有路勤为径

Convolutional Neural Networks

计算机视觉(Computer Vision)包含很多不同类别的问题,如图片分类、目标检测、图片风格迁移等等。

701
来自专栏张俊红

支持向量机详解

总第81篇 (本文框架) 01|概念及原理: 支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。 说的通俗一点就是就是在特征空...

3363
来自专栏小鹏的专栏

Faster RCNN:RPN,anchor,sliding windows

paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal N...

82110
来自专栏码农笔录

BP神经网络基础算法

1505
来自专栏null的专栏

优化算法——OWL-QN

一、正则化(Regularization) 1、正则化的作用     在机器学习中,正则化是相对于过拟合出现的一种特征选择的方法。在机器学习算法中使用的Loss...

5447

扫码关注云+社区