Multivariate Linear Regression

2024-02-12 15:48

本文主要是介绍Multivariate Linear Regression,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

clear,clc
%梯度下降法
x = load('ex3x.dat');
y = load('ex3y.dat');
m = length(y);
x = [ones(m,1),x];
%归一化数据feature scaling
sigma = std(x); %求标准差
mu = mean(x);   %求均值
x(:,2) = (x(:,2) - mu(2))./ sigma(2); 
x(:,3) = (x(:,3) - mu(3))./ sigma(3);
n = 50;    %n为迭代次数
J = zeros(n , 1); 
alpha =[0.01, 0.03, 0.1, 0.3, 1, 1.3]; 
plotstyle = {'b', 'r', 'g', 'k', 'b--', 'r--'};for alpha_i = 1: size(alpha,2)theta = zeros(size(x(1,:)))'  % initialize fitting parametersfor k=1:n  %n为迭代次数   J(k) = 1/(2*m).* (x * theta - y)' * (x * theta - y);theta = theta - alpha(alpha_i)*(1/m)*(x'*(x*theta - y));  endif(1 == alpha(alpha_i)) %通过实验发现alpha为1时效果最好,则此时的迭代后的theta值为所求的值theta_grad_descent = thetaendplot(0:n-1, J(1:n), char(plotstyle(alpha_i)),'LineWidth',2)hold on
end
% now plot J
% technically, the first J starts at the zero-eth iteration
% but Matlab/Octave doesn't have a zero indexlegend('0.01','0.03','0.1','0.3','1','1.3');
xlabel('Number of iterations')
ylabel('Cost J')%预测:1650平方米,3个卧室的价格
%测试数据x=[1,1650,3]
x_test=[1,1650,3];
price_grad_descend = theta_grad_descent'*[1 (x_test(2)-mu(2))/sigma(2) (x_test(3)-mu(3)/sigma(3))]'%Normal Equations
x = load('ex3x.dat');
y = load('ex3y.dat');
x = [ones(size(x,1),1) x];
format long g %取消matlab的科学计数法
theta_norequ = inv((x'*x))*x'*y;
price_norequ = theta_norequ'*x_test'

运行结果如下:


图 1 学习速率alpha为不同值得时候,代价函数J的变换曲线


图2 梯度下降法和最小二乘法的预测结果


由上面的图可以知道当学习率alpha=1的时候,梯度下降时最快的,并且梯度下降法和最小二乘法的对于测试数据[1,1650,3]的预测结果是一样的。。


Gradient Descent Vs Normal Equation

Gradient Descent的特点:

(1)需要预先设定Learning rate;

(2)需要多次iteration

(3)需要Feature Scaling(如归一化处理:0-1之间),如果不做处理的话,梯度下降困难。

Normal Equation的特点:

(1)简单

(2)方便

(3)不需要Feature Scaling;

(4)需要大量的矩阵运算,特别是逆运算,在矩阵很大的情况相下会增加计算复杂度和内存容量

在Feature较少的时候,可以使用Normal Equation

如:当feature > 100000时 使用Gradient Descent ,feature < 100000时,使用Normal Equation




这篇关于Multivariate Linear Regression的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/702933

相关文章

理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)

Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客 在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

【CSS渐变】背景中的百分比:深入理解`linear-gradient`,进度条填充

在现代网页设计中,CSS渐变是一种非常流行的视觉效果,它为网页背景或元素添加了深度和动态感。linear-gradient函数是实现线性渐变的关键工具,它允许我们创建从一种颜色平滑过渡到另一种颜色的视觉效果。在本篇博客中,我们将深入探讨linear-gradient函数中的百分比值,特别是像#C3002F 50%, #e8e8e8 0这样的用法,以及它们如何影响渐变效果。 什么是linear-g

Spark MLlib模型训练—回归算法 Linear regression

Spark MLlib模型训练—回归算法 Linear regression 线性回归是回归分析中最基础且应用广泛的一种方法。它用于建模目标变量和一个或多个自变量之间的关系。随着大数据时代的到来,使用像 Spark 这样的分布式计算框架进行大规模数据处理和建模变得尤为重要。本文将全面解析 Spark 中的线性回归算法,介绍其原理、参数、Scala 实现、代码解读、结果分析以及实际应用场景。 1

线性代数:线性代数(Linear Algebra)综述

文章目录 矩阵 / Matrix元素运算加法 A + B A+B A+B数量乘法 c A cA cA与向量之间的运算乘法 A b A\mathbf{b} Ab 与矩阵之间的运算矩阵乘法 乘方 性质方阵 / Square Matrix零矩阵对角矩阵 / Diagonal Matrix单位矩阵 / Identity Matrix转置 / Transpose逆矩阵 / Inverse Mat

Spark MLlib模型训练—回归算法 GLR( Generalized Linear Regression)

Spark MLlib模型训练—回归算法 GLR( Generalized Linear Regression) 在大数据分析中,线性回归虽然常用,但在许多实际场景中,目标变量和特征之间的关系并非线性,这时广义线性回归(Generalized Linear Regression, GLR)便应运而生。GLR 是线性回归的扩展,能够处理非正态分布的目标变量,广泛用于分类、回归以及其他统计建模任务。

regression and anova

regression一般是统计学的回归 回归,研究一个随机变量Y对另一个(X)或一组(X1,X2,…,Xk)变量的相依关系的统计分析方法.研究一 个或多个随机变量Y1 ,Y2 ,…,Yi与另一些变量X1、X2,…,Xk之间的关系的统计方法.又称多重回归分析.通常称Y1,Y2,…,Yi为因变量,X1、X2,…,Xk为自变量.回归分析是一类数学模型,特别当因变量和自变量为线性关系时,它是一种特殊

linear-gradient 渐变

CSS3 Gradient 分为  linear-gradient(线性渐变)和  radial-gradient(径向渐变)。而我们今天主要是针对线性渐变来剖析其具体的用法。为了更好的应用 CSS3 Gradient,我们需要先了解一下目前的几种现代浏览器的内核,主要有 Mozilla(Firefox,Flock等)、WebKit(Safari、Chrome等)、Opera(Opera浏览器

机器学习—线性回归算法(Linear Regression)

目录 一、基本概念二、线性回归简单分类与模型三、线性回归的关键步骤四、线性回归问题分析五、线性回归问题的解法1、最小二乘法2、梯度下降法 六、线性回归中的过拟合与欠拟合1、过拟合1、岭回归(Ridge Regression)2、套索回归 (Lasso回归)(Lasso Regression)3、弹性网(Elastic Net) 2、欠拟合 七、线性回归中的超参数与模型评估方法1、超参数(Hy

【Pytorch】Linear 层,举例:相机参数和Instance Feaure通过Linear层生成Group Weights

背景 看论文看到这个pipeline,对于相机参数和Instance Fature 的融合有点兴趣,研究如下: Linear 层 Linear 层是最基本的神经网络层之一,也称为全连接层。它将输入与每个输出神经元完全连接。每个连接都有一个权重和一个偏置。 示例代码 import torchimport torch.nn as nn# 定义一个简单的全连接网络,包含两个Linear层