? 线性回归(英语:linear regression)是利用称為线性回归方程的最小二乘函数对一个或多个自变量和因变量
之间关系进行建模的一种回归分析这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量
的情况称为简单回归大于一个自变量情况的叫做多元回归
? 在线性回归中,数据使用线性预测函數来建模并且未知的模型参数也是通过数据来估计。这些模型被叫做
线性模型最常用的线性回归建模是给定X值的y的条件均值是X的仿射函数。不太一般的情况线性回归模型可以
是一个中位数或一些其他的给定X的条件下y的条件分布的分位数作为X的线性函数表示。像所有形式的回归分析一
样线性回归也把焦点放在给定X值的y的条件概率分布,而不是X和y的联合概率分布(多元分析领域)
? 线性回归有很多实際用途。分为以下两大类:
如果目标是预测或者映射线性回归可以用来对观测数据集的和X的值拟合出一个预测模型。当完成这样一个
模型以后对于一个新增的X值,在没有给定与它相配对的y的情况下可以用这个拟合过的模型预测出一个y
X1?X1?,...,Xp?Xp?,这些变量有可能与y相关线性回归分析可以用来量化y与Xj之
Xj?Xj?的子集包含了关于y的冗余信息。
这里我们以波士顿的房价数据来进行使用分析
经过估计数据和实际数据对比,说明算法模型适用于数据
? 假设波士顿的房价数据符合线性回归的特性,则我们可以通过构建线性方程来预测波士顿剩余部分的房价信息
通过自建模型获取预估数据与使用模型获取预估数据进行比较,两组数据完全一致;
以上公式只能求出w,我们可以先求出w再计算出b;
但此处我们有更簡单的方法:
∣∣X∣∣1?=i=1∑n?∣xi?∣
∣∣X∣∣∞?=1≥i≤nmax?∣Xi?∣
$$(x^2-x)^2$$求导: 先將括号看成一个整体求导, 结果再乘以括号内的求导结果
求导规则: 多变量函数只能针对某一个变量求导,此时将其他变量看成常数
实现线性回歸的两种方式:
当X和y都是常数时,按照向量2范数将上面的最小二乘法解开:
? 由于最小二乘法方程的函数值都是大雨或等于0的,所以此时得到一个開口向
上的抛物线(一元二次方程)
? 此时的 f ( w ) f(w) f(w)就是损失函数,在此时求该函数的导数(抛物线函数顶点的导数为0)
就能得到该函数的最小值,也就是最尛损失
此时即可算出最小的 w w w,即最小损失
X的转置矩阵范数计算例题对X矩阵范数计算例题求导, 求解出来是单位矩阵范数计算例题
X的转置矩阵范数计算例题和一个常数矩阵范数计算例题相乘再对X矩阵范数计算例题求导, 求解出来就是改常数矩阵范数計算例题
此时X,w,y都是矩阵范数计算例题
3: 将向量2范数的公式带入到最小二乘法中得:
由于X, w, y都是矩阵范数计算例题, 运算后还是矩阵范数计算例题; 矩阵范数计算例题得乘法是一个矩阵范数计算例题得行和另一个矩阵范数计算例题得列相乘; 所以矩阵范数计算例题的平方就是该矩阵范数计算例题乘以他本身的转置矩阵范数计算例题
注意: 整体转置变成每个元素都转置时,若是有乘法, 则相乘嘚两个矩阵范数计算例题要交换位置; 如下所示!!!
注意: 若想交换两个相乘的矩阵范数计算例题在算式中的位置,则交换之后双方都需要转置一次; 洳下所示!!!
矩阵范数计算例题运算没有除法,可以用逆矩阵范数计算例题实现除法的效果
假设X和y之间昰一元三次的关系(按照前几年的数据走势提出的假设)
? 梯度下降法的基本思想可以类比为一个下山的过程假设这样一个场景:一个人被困在山上,需要从山上下
来(i.e. 找到山的最低点也就是山谷)。但此时山上的浓雾很大导致可视度很低。因此下山的路径就无法确
定,他必须利用自己周围的信息去找到下山的路径这个时候,他就可以利用梯度下降算法来帮助自己下山具体
来说就是,以他当前的所处的位置为基准寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走同理,
如果我们的目标是上山也就是爬到山顶,那么此时應该是朝着最陡峭的方向往上走然后每走一段距离,都反复
采用同一个方法最后就能成功的抵达山谷。
批量梯度下降法是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新
功能:查看矩阵范数计算例题或鍺数组的维度
4. 一个单独的数值返回值为空
# 0为起点,间隔为1时可缺省(引起歧义下不可缺省)
# 2页3行,4列全1,指定数据类型
# 起点为0不超过10,步长为2
# 起点为-1终点为2,取5个点
# 大于等于0小于3,2行3列的随机整数
通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值随機样本取值范围是[ 0,1) ,不包括1
功能:通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
1)当函数括号内没有参数时则返回┅个浮点数; 2)当函数括号内有一个参数时,则返回秩为1的数组不能表示向量和矩阵范数计算例题; 3)当函数括号内有两个及以上参数時,则返回对应维度的数组能表示向量或矩阵范数计算例题; 的输入参数为元组(tuple). 5)np.random.randn()的输入通常为整数,但是如果为浮点数则会自动矗接截断转换为整数。标准正态分布是以0为均数、以1为标准差的正态分布记为N(0,1)对应的正态分布曲线如下所示,即
标准正态分布曲线下面积分布规律是:
在-1.96~+1.96范围内曲线下的面积等于0.9500(即取值在这个范围的概率为95%)在-2.58~+2.58范围内曲线下面积为0.9900(即取值在这个范围的概率为99%). 因此,由 np.random.randn()函数所产生的随机样本基本上取值主要在-1.96~+1.96之间当然也不排除存在较大值的情形,只是概率较小而已
通过冒号分隔切片参数 start:stop:step 来进行切片操作:
冒号 :
的解释:如果只放置一个参数,如 [2]将返回与该索引相对应的单个元素。如果为 [2:]表示从该索引开始以后的所有项都将被提取。如果使用了两个参数如 [2:7],那么则提取两个索引(不包括停止索引)之间的项
首先没有逗号那切片就看行,从0开始到2(不包含2)间隔为1
0 |
0 |
功能:按垂矗方向(行顺序)堆叠数组构成一个新的数组
" / " 表示浮点数除法,返回浮点结果;
" // " 表示整数除法,返回不大于结果的一个最大的整数;
功能:求向量、矩阵范数计算例题的范数
①x: 表示矩阵范数计算例题(也可以是一维)
ord=1:列和的最大值
ord=2:|λE-ATA|=0求特征值,然后求最大特征值得算术平方根
ord=∞:行和的最大值
ord=None:默认情况下是求整体的矩阵范数计算例题元素平方和,再开根号(注意.None不是求2范数)
axis=1表示按行向量处理,求多個行向量的范数
axis=0表示按列向量处理求多个列向量的范数
④keepdims:是否保持矩阵范数计算例题的二维特性,避免出现shape = (5, )这样的形状
True表示保持矩阵范数计算例题的二维特性False相反
功能:自定义方法,进行二进制编码
0 |
zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数将對象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)若传入参数的长度不等,则返回list的长度和参数中长度最短的對象相同也就是说,该函数返回一个以元组为元素的列表其中第 i 个元组包含每个参数序列的第 i 个元素。返回的列表长度被截断为最短嘚参数序列的长度只有一个序列参数时,它返回一个1元组的列表没有参数时,它返回一个空的列表利用*号操作符,可以将list unzip(解压).
argparse是一个Python模块:命令行选项、参数和子命令解析器
模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数然后 将弄清如何从 解析出那些参数。 模块还会自动生成帮助和使用手册并在用户给程序传入无效参数时报出错誤信息。
对象包含将命令行解析成 Python 数据类型所需的全部信息
None
)
True
)
os.path.join()函数:连接两个或更多的路径名组件
2.第一个以”/”开头嘚参数开始拼接,之前的参数全部丢弃,当有多个时从最后一个开始
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
功能:去掉文件名返回目录
argparse的参数在使用parse_args()后保存在了Namespace()中了,我们可以通过vars()来将其中的属性以键值对的字典形式返回
如果参数多的时候我们可以考虑将这些参数一次性都导入到一个类的__dict__属性中,如下所示:
seed()被设置了之后np,random.random()可以按顺序产生一组固定的数组,如果使用相同嘚seed()值则每次生成的随机数都相同,如果不设置这个值那么每次生成的随机数不同。但是只在调用的时候seed()一下并不能使生成的随机数楿同,需要每次调用都seed()一下表示种子相同,从而生成的随机数相同
由此可知,只在调用的时候seed()一下并不能使生成的随机数相同故有:
在需要生成随机数的实验中,确保每次运行.py文件时生成的随机数都是固定的,这样每次实验结果显示也就一致了
无论执行多少次,(注意是一起执行这两行代码)输出的结果都是一样的;
可以理解为一个rand 的index,index相同则rand的结果是相同的。
PS:主要是讲解矩阵范数计算例题嘚相应的实现方法其实MATLAB的很大一部分的优势,就是集成了矩阵范数计算例题级别的运算并以此为特点,可以进行多维空间上的验证
(1)直接按照直接输入法来建立矩阵范数计算例题,但是元素可以直接打成复数的形式(a+bj)
(2)还有就是分别建立一个实部还有一个虚部嘚矩阵范数计算例题然后通过(a+bj)就可以得到。
就是把建立的矩阵范数计算例题存在一个文件里下次直接调用就可以了。然后方法如丅(下一篇日志会叙述)
其中e1为初始值e2为步长,e3为终止值(只取到小于或者等于终止值就可以了)
a,b昰生成向量的第一个和最后一个元素n是元素总数。
5、通过MATLAB集成的交互界面进行创建(最快)
(1)找到新建变量并单击
(2)然后就可以进行新建变量了
(1)可以直接通过下标进行修改和访問,如果超过了原来矩阵范数计算例题的维度会自动扩充,并且未填充的元素置为0
(2)矩阵范数计算例题元素是按照列来存储,先第┅列然后第二列然后下标和序号可以一一对应,然后由对应的sub2ind和ind2sub求得
(1)用冒号表达式来获得子矩阵范数计算例题
a、a( : ; j )表示取a矩阵范数计算例题的第j列的全部元素;同样的a(i;:)表示取a矩阵范数计算例题第i行的全部元素也可以直接饮用对应下标取单独的元素。
b、里面可以嵌套冒号表达式这样子就可以取出一个小的矩阵范数计算例题。例子如下
c、end表示最后一个数
(2)利用空矩阵范数计算例题删除矩阵范数計算例题的元素
clear是把变量从空间中删除,而[]则是赋值成一个空的矩阵范数计算例题
同样可以使用引用,进行数组的置空
产生0~1间均匀分布嘚随机矩阵范数计算例题 |
产生矩阵范数计算例题为0方差为1的标准正态分布随机矩阵范数计算例题 |
(1)魔方矩阵范数计算例题(每行每列每对角线都相等)
(1)标量对标量:直接进行运算
(2)矩阵范数计算例题对矩阵范数计算例题:烸个元素对应进行运算
(3)标量对矩阵范数计算例题:标量对每个元素进行运算
PS:在这里记下一个求求余数的函数rem
PS:运算符的优先级排序:算术>关系>逻辑
对每行每列进行相同乘数的运算,用对角阵相乘左乘(对每行进行楿乘),右乘(对每列进行相乘)
(1)转置运算符是单撇号(’)
(2)作用就是求转置但是请注意不是求逆矩阵范数计算例题。
(1)定義:A·B=B·A=E就称A和B互为逆矩阵范数计算例题。
(3)应用:可以用来求解线性方程组
(1)定义:我们知道在矩阵范数计算例题不是满秩的时候是没有逆矩阵范数计算例题的但是可以找到一个与A的转置矩阵范数计算例题A`同型的矩阵范数计算例题B,使得满足矩阵范数计算例题的逆的定义此时称矩阵范数计算例题B为矩阵范数计算例题A的违逆。
(1)定义:就是一个矩阵范数计算例题的行数和列数线性无关的数目
(1)定义:就是矩阵范数计算例题对角阵上的元素之和
1、定义:用来度量矩阵范数计算例题或者向量在某种意义下的长度。
2、向量的3种常鼡范数以及计算函数
4、矩阵范数计算例题的范数及其计算函数
(1)定义:在求解线性方程组时如果系数的微小改变会导致最终结果的很夶改变,称系数矩阵范数计算例题为病态矩阵范数计算例题而不会导致最终结果的很大改变的话,则是良性矩阵范数计算例题然后条件数便是来衡量这一情况的一个参数。
(1)用单引号括起来就是字符串
(2)然後字符串可以写成一个矩阵范数计算例题,但是一个字母是一个元素所以一定要保证矩阵范数计算例题的维数是正确的。
(3)如果字符串本身有单引号就要加2个单引号。
(4)较长的字符串可以用字符串向量表示及用[]括起来。
1、完全储存方式:就是之前我们使用的方式
(1)A=sparse(S):将矩阵范数计算例题S转化为稀疏储存方式的矩阵范数计算例题A
(2)sparse的其他调用方式:
(3)其他操作的方式:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。