线性规划 —— matlab

目录

一、基本概念

二、概念的数学形式表达

三、确定w和b

1.读取或输入数据

2.归一化、标准化

2.1 均值

2.2 归一化

2.3 标准化

3.求解w和b

1.直接解方程

2.最小二乘法(least square method)求解:

4. 评估回归模型

四、regress线性回归命令

1.调函数解方程

2.对原始值和预测值进行绘图

3. 画残差图:

五、matlab颜色表

六、matlab调色板

1、常用颜色的RGB值

2、产生标准调色板的函数


一、基本概念

线性(linear):

指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑的运动,一阶导数为常数

非线性(non-linear):

指不按比例、不成直线的关系,代表不规则的运动和突变,一阶导数不为常数。

一个线性的例子:

数据:工资和年龄(2个特征)

目标:预测银行会贷款给我多少钱(标签)

考虑:工资和年龄都会影响最终银行贷款的结果,那么他们各自有多大的影响呢?(参数)

通俗的解释

x1,x2就是我们的两个特征(年龄、工资),y是银行最终会借给我们多少钱

找到最合适的一条线(想象一个高维)来最好的拟合我们的数据点

数学形式来了

二、概念的数学形式表达

给定数据集

数据的矩阵形式:

 线性模型(linear model)试图学得一个通过属性组合的线性组合来进行预测的函数,即

向量形式写成:   

线性回归(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记

三、确定w和b

对离散属性

若属性间存在“序”关系,可通过连续化将其转化为连续值。

若属性间不存在“序”关系,则转化为k维向量。

1.读取或输入数据

matlab不需要导入库,直接引用函数 csvread 读取csv数据文件

首先我们先看看csv数据的导入

% 引用函数 csvread 读取csv数据文件data = csvread('路径',1,0) #从第二行,第0列读取数据

 读取数据后得分出和为X,何为Y

# matlab从1开始算,与实际一样
X = data[:,1:4]  # 1到4列所有的数据也就是实际的1到4列
Y = data[:, 6]  # 第6列所有的数据也就是实际的第6列

 接下来我们看看自己建立矩阵的数据读取方式

Y=[160260250];X=[70,35,175,40,2.465,42,3];

返回:

 

  说到矩阵了,就顺便说一下

创建矩阵的相关知识

(1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
(2) zeros()函数:产生全为0的矩阵;
(3) rand()函数:产生在(0,1)区间均匀分布的随机阵;
(4) eye()函数:产生单位阵;
(5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。

2.归一化、标准化

2.1 均值

# MATLAB直接引用mean()函数就好
X_mean = mean(X)
Y_mean = mean(Y)

1. mean:计算向量均值。mean(x,1)列向量均值,mean(x,2)行向量均值。  mean2(x)矩阵均值.

2. std:计算向量均方差,std(x,0,1)列向量均方差,std(x,0,2)行向量均方差。 std2(x)矩阵均方差

3. var:计算向量方差,var(x)

4. sse:误差平方和,sse(x)。越接近于0,说明拟合的越好,数据预测越成功。

5. mse:均方差平方和,mse(x)=sse(x)/N。意义同sse

6. R-square:确定系数。确定系数是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。

要想确定w和b,首先要视情况决定是否需要对数据进行归一化或标准化

2.2 归一化

%归一化X=[70,35,175,40,2.465,42,3];
for X=XMappedX = (X-min(X))/(max(X)-min(X))
end
%用函数mapminmax
%默认的map范围是[-1, 1],所以如果需要[0, 1],则按这样的格式提供参数:MappedData = mapminmax(OriginalData, 0, 1);
% 只按行归一化,如果是矩阵,则每行各自归一化,如果需要对整个矩阵归一化FlattenedData = OriginalData(:)'; % 展开矩阵为一列,然后转置为一行。
MappedFlattened = mapminmax(FlattenedData, 0, 1); % 归一化。% 还原为原始矩阵形式。此处不需转置回去,因为reshape恰好是按列重新排序
MappedData = reshape(MappedFlattened, size(OriginalData)); 

2.3 标准化

% z-score 标准化
% 新数据=(原数据-均值)/标准差
% 标准化以后,X中元素的取值范围为实数。X=zscore(X)

3.求解w和b

1.直接解方程

N = length(Y);A = X'*X-(N*X_mean'*X_mean);
C=X'*Y - (N*X_mean'*Y_mean);
B = (A^-1*C).'

2.最小二乘法(least square method)求解:

把数据集D表示为一个m*(d+1)大小的矩阵X,其中每行对应于一个示例,改行前d个元素对应于示例的d个属性值,最好一个元素恒置为1,即

A=[1 2 3;4 5 6;7 8 9];
B = ones(3,1) %生成3行1列的1矩阵
% B=[1;1;1];  %一共三行,用“;”分开
A_column=[A B];
display(A_column);%输出结果

当X^TX 为满秩矩阵(full-rank matrix) 或正走矩阵(positive definite matrix) 时,令

得到

w = (X'*X)^-1*X'*Y %变量的系数
w0 = Y_mean - X_mean*w %常数

 其中(X^TX)^-l是矩阵(X^TX)的逆矩阵.令xi = (xi ,l) ,则最终学得的多元线性回归模型为

YY = X*w+w0 %Y的估计值

4. 评估回归模型

%离差平方和
S = var(Y);
fprintf('离差平方和S=:%d\n',S)
%回归平方和
U = var(YY);
fprintf('回归平方和U=:%d\n',U)
%剩余平方和
Q=S-U;
fprintf('剩余平方和Q=:%d\n',Q)
%复可决系数
R2 = U/S;
fprintf('复可决系数R2=:%d\n',R2)
%负相关系数
R = sqrt(U/S);
fprintf('复相关系数R=:%d\n',R)
%回归均方
% n= X_mean 的个数
UU = U/n;
fprintf('回归均方=:%d\n',UU)
%剩余均方
% N= Y的个数
QQ = Q/(N-n-1);
fprintf('剩余均方=:%d\n',QQ)
%剩余标准差
s = sqrt(QQ);
fprintf('剩余标准差s=:%d\n',s)
%方程显著性检验值
F = UU/QQ;
fprintf('方差显著性检验值F=:%d\n',F)

四、regress线性回归命令

用于一元及多元线性回归,本质上是最小二乘法。在Matlab 2014a中,输入help regress ,会弹出和regress的相关信息

调用格式

  • B = regress(Y,X)
  • [B,BINT] = regress(Y,X)
  • [B,BINT,R] = regress(Y,X)
  • [B,BINT,R,RINT] = regress(Y,X)
  • B,BINT,R,RINT,STATS] = regress(Y,X)
  • [...] = regress(Y,X,ALPHA)

参数解释

  • B:回归系数,是个向量(“the vector B of regression coefficients in the  linear model Y = X*B”)。
  • BINT:回归系数的区间估计(“a matrix BINT of 95% confidence intervals for B”)。
  • R:残差( “a vector R of residuals”)。
  • RINT:置信区间(“a matrix RINT of intervals that can be used to diagnose outliers”)。
  • STATS:用于检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验的p的值,误差方差的估计。
  • ALPHA:显著性水平(缺少时为默认值0.05)。

1.调函数解方程

% 方程求解函数使用
[b,bint,r,rint,stats] = regress(Y,X);

2.对原始值和预测值进行绘图

x = 1:1:N;
plot(x,Y,'-*b',x,YY,'-or'); %线性,颜色,标记% hold on; %表示在同一张图上继续作画
% title('x'); %命名标题
% axis([0 1 0 10]) % 设置坐标轴在指定的区间
% xlabel('t'); %命名x轴
% ylabel('x'); %命名y轴
% grid on %显示坐标轴网格线
% legend('Y','YY'); %*加标注,2条线分别代表是什么*

3. 画残差图:

figure %创建窗口
rcoolot(r,rint) %绘制残差图

五、matlab颜色表

线型

说明

标记符

说明

颜色

说明

-

实线(默认)

+

加号符

r

红色

--

双划线

o

空心圆

g

绿色

:

虚线

*

星号

b

蓝色

:.

点划线

.

实心圆

c

青绿色

x

叉号符

m

洋红色

s(square)

正方形

y

黄色

d

菱形

k

黑色

^

上三角形

w

白色

v

下三角形

>

右三角形

<

左三角形

p(pentagram)

五角星

h(hexagram)

六边形

square正方形
pentagram五角形
hexagram六角形

六、matlab调色板

1、常用颜色的RGB值

  --------------------------------------------

    颜色   R   G   B     颜色   R   G  B

  --------------------------------------------

     黑    0   0  1     洋红    1  0   1

     白    1   1  1     青蓝    0  1   1

     红    1   0  0     天蓝 0.67 0   1

     绿    0   1  0     橘黄    1 0.50

     蓝    0   0  1     深红   0.5 0  0

     黄    1   1  0      灰    0.5 0.50.5      

  --------------------------------------------

⚠️注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。

2、产生标准调色板的函数

  -------------------------------------------------

    函数名      调色板

  -------------------------------------------------

     Hsv     色彩饱和度,以红色开始,并以红色结束

     Hot     黑色-红色-黄色-白色

     Cool    青蓝和洋红的色度

     Pink     粉红的色度

     Gray     线型灰度

     Bone    带蓝色的灰度

     Jet      Hsv的一种变形,以蓝色开始,以蓝色结束

     Copper   线型铜色度

     Prim     三棱镜,交替为红、橘黄、黄、绿和天蓝

     Flag     交替为红、白、蓝和黑

--------------------------------------------------

缺省情况下,调用上述函数灰产生一个64×3的调色板,用户也可指定调色板大小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564862.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java商品信息查询

使用一维数组和二维数组的相关知识&#xff0c;以及数组排序的多种算法来实现商品信息查询的功能。 假设在仓库系统中&#xff0c;每件商品都有 3 个库存信息&#xff0c;分别是入库量、出库量和当前库存量。定义一个一维数组来存储 5 件商品的名称&#xff0c;并定义一个二维…

openwrt dhcp 无法获取ip_电脑的 ip 是怎么来的呢?我又没有配置过

来源 | 苦逼的码农作者 | 帅地对于我们平时上网的电脑的 ip 是如何来的呢&#xff1f;一种简单的方法就是我们自己来配置了显然&#xff0c;这里有两种配置方式&#xff0c;一种是自动获取 ip 地址&#xff0c;一种是我们手动来设置&#xff0c;我相信大部分人都是通过自动获取…

线性回归 —— python

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法&#xff08;least square method&#xff09;求解&#xff1a; 4. 评估回归模型 四、sklearn中…

审查元素找不到创建的元素_香奈儿除了珍珠,还有哪些你不知道的经典元素?答案在原文中找...

Chanel曾经说过&#xff1a;“没有珍珠的女人&#xff0c;不算是女人”珍珠是Coco永远的标志无论白天还是夜晚也无论她穿着运动服还是毛衣男装裤甚至在她人生最后的一段日子珍珠饰品都如影随形。BUT&#xff01;你能相信&#xff1f;对珍珠如此看重的Coco竟然卖的大部分珍珠是人…

博弈论 —— python

目录 1.简介 2.算法原理 3.实例分析 1.各参数初始化 2.计算期望与实际期望 3.博弈过程 4.绘图 完整代码 1.简介 博弈论又被称为对策论(Game Theory)既是现代数学的一个新分支&#xff0c;也是运筹学的一个重要学科。 博弈论主要研究公式化了的激励结构间的相互作用。是研…

android应用程序 多少钱_关于APP开发你最想了解的事,开发一个APP多少钱?

当我们在进行APP开发&#xff0c;最关注的问题一定是APP开发的价格问题&#xff0c;而作为软件开发行业的从业人员&#xff0c;经常会遇到这样的情况&#xff1a;“别说这么多&#xff0c;你只要告诉我开发一个软件多少钱就行了”。郑州APP开发公司的确&#xff0c;无论我们买什…

mvc 扫描二维码跳转内部指定页面_开源神器:一个二维码,让文件传输不设限!...

大家好&#xff0c;我是小 G。今天给大家推荐一个在前不久火遍 GitHub 的开源项目&#xff1a;QRCP。从项目的命名你们应该就能大致猜测出来&#xff0c;这款神器的主要作用&#xff0c;就是能通过指定二维码&#xff0c;快速完成文件的传输功能。项目作者是来自意大利的一位小…

K-means聚类 —— matlab

目录 1.简介 2.算法原理 3.实例分析 3.1 读取数据 3.2 原理推导K均值过程 3.3 自带kmeans函数求解过程 完整代码 1.简介 聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程&#xff0c;聚类就是一种发现这种内在结构的技术&#xff0c;聚类技术经常被称为…

数据线给电脑联网是什么原理_物联网孵化的产物——条码扫描器

一、什么是物联网&#xff1f;物联网的概念由凯文阿什顿(Kevin Ashton)于1999年被提出&#xff0c;即Internet of Things(IOT)&#xff0c;也称为Web of Things。根据阿什顿的想法&#xff0c;计算机最终能够在没有人工干预的情况下&#xff0c;自主产生及收集数据&#xff0c;…

灰色关联法 —— matlab

目录 1.简介 2.算法详解 2.1 数据标准化 2.2 计算灰色相关系数 2.3 计算灰色关联度系数 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 绘制 x1,x4,x5,x6,x7 的折线图 3.4 计算灰色相关系数 完整代码 1.简介 对于两个系统之间的因素&#xff0c;其随时间或不同对象而…

灰色关联与TOPSIS法 —— matlab

目录 1.简介 2.算法详解 2.1 指标正向化及标准化 2.2 找到最大最小参考向量 2.3 计算与参考向量的相关系数 2.4 求评分 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 得到最大最小参考行 3.4 与最大值的灰色相关系数 3.5 与最小值的灰色相关系数 3.6 计算综合评分 …

mmap函数_Linux内存映射mmap原理分析

一直都对内存映射文件这个概念很模糊&#xff0c;不知道它和虚拟内存有什么区别&#xff0c;而且映射这个词也很让人迷茫&#xff0c;今天终于搞清楚了。。。下面&#xff0c;我先解释一下我对映射这个词的理解&#xff0c;再区分一下几个容易混淆的概念&#xff0c;之后&#…

灰色关联法 —— python

目录 1.简介 2.算法详解 2.1 数据标准化 2.2 计算灰色相关系数 2.3 计算灰色关联度系数 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 绘制 x1,x4,x5,x6,x7 的折线图 3.4 计算灰色相关系数 完整代码 1.简介 对于两个系统之间的因素&#xff0c;其随时间或不同对象而变…

arraylist线程安全吗_Java中的集合和线程安全

通过Java指南我们知道Java集合框架(Collection Framework)如何为并发服务&#xff0c;我们应该如何在单线程和多线程中使用集合(Collection)。话题有点高端&#xff0c;我们不是很好理解。所以&#xff0c;我会尽可能的描述的简单点。通过这篇指南&#xff0c;你将会对Java集合…

灰色关联与TOPSIS法 —— python

目录 1.简介 2.算法详解 2.1 指标正向化及标准化 2.2 找到最大最小参考向量 2.3 计算与参考向量的相关系数 2.4 求评分 3.实例分析 3.1 读取数据 3.2 数据标准化 3.3 得到最大最小参考行 3.4 与最大值的灰色相关系数 3.5 与最小值的灰色相关系数 3.6 计算综合评分…

spark 数据框 删除列_pandas 常用的数据处理函数

在数据分析过程中&#xff0c;首先就是对数据进行清洗和处理&#xff0c;而使用 python 进行处理的朋友们&#xff0c;对 pandas 包肯定是熟悉不过的了。pandas 的功能很强大&#xff0c;基本的数据处理操作都可以找到对应函数去使用&#xff0c;想全面了解的朋友可以查看相关文…

Java元注解作用及使用

元注解是负责对其它注解进行说明的注解&#xff0c;自定义注解时可以使用元注解。Java 5 定义了 4 个注解&#xff0c;分别是 Documented、Target、Retention 和 Inherited。Java 8 又增加了 Repeatable 和 Native 两个注解。这些注解都可以在 java.lang.annotation 包中找到。…

灰色预测法 —— matlab

目录 1.简介 2.算法详解 2.1 生成累加数据 2.2 累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据及对比 完整代码 1.简介 灰色系统理论认为对既含有已知信息又含有未知或非确定信息的系统进行预测&a…

jpa 自定义sql if_SpringBoot整合JPA实现多数据源及读写分离

SpringBoot整合JPA实现多数据源及读写分离项目地址&#xff1a;https://github.com/baojingyu/spring-boot-jpa-dynamic-datasource本项目使用 SpringBoot 和 SpringData JPA 实现多数据源&#xff0c;动态数据源的切换。前段时间写 MySQL 主从复制的技术分享&#xff0c;我就在…

时间序列分析简介

目录 1.引言 2.时间序列的定义 3.时间序列分析方法 &#xff08;1&#xff09;描述性时间序列分析 &#xff08;2&#xff09;统计时序分析 时序分析方法 时域分析方法 1.引言 最早的时间序列分析可以追溯到7000年前&#xff0c;古埃及把尼罗河涨落的情况逐天记录下来&a…