线性回归

Posted mysterygust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性回归相关的知识,希望对你有一定的参考价值。

%% 清屏

clc;
clear all;
close all;

%% 数据预处理

data = importdata(‘studentscores.csv‘);
x = data.data(:,1);
y = data.data(:,2);

% 原始数据的散点图

figure

plot(x,y,‘o‘);
xlabel(‘Hours‘);
ylabel(‘Scores‘);
hold on;

num = length(x);                             % 样本数目
x = [ones(num,1),x];    

%% 梯度下降法求参数

MaxIt = 1000;                                % 最大迭代次数
W = zeros(size(x(1,:)))‘ ;                   % 初始权重向量
L_rate = 0.05;                               % 学习率

for It=1:MaxIt
    
    % 计算损失函数梯度
    
    grad = (1/num).*x‘*(x*W - y);
    W = W - L_rate.*grad;
    L_rate = 0.05*0.95;  
    
end

plot(x(:,2),x*W,‘-‘);
legend(‘训练集‘,‘线性回归方程‘);
hold off;

 

上面是简单的一元线性回归,试验结果如下:

技术图片

数据:

技术图片

 

以上是关于线性回归的主要内容,如果未能解决你的问题,请参考以下文章

线性回归详解(代码实现+理论证明)

机器学习入门 ----线性回归模型及其Python代码解析

线性回归模型|机器学习

Python应用实战线性回归(附Python代码)

如何用matlab线性回归分析?

贝叶斯线性回归和多元线性回归构建工资预测模型|附代码数据