精华内容
下载资源
问答
  • 多变量线性分析图
    千次阅读
    2019-06-02 22:39:39

    日萌社

    人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新)


    1.多变量线性回归/多元线性回归
    	多变量线性回归 又可称作 多元线性回归,即使用多个特征值/变量来预测y。
    	1.单变量线性回归中,只有一个单一特征值/变量值(房子面积x),那么希望用这个特征值/变量值来预测y(房屋价格)。
    	  单变量的假设函数:hθ(x)=θ0+θ1x。x即为唯一输入的特征值/变量值,h(x)的结果值即为y(房屋价格)。
    	2.多变量线性回归这种形式适用于多个变量值或者多特征值的情况。
    		多变量线性回归形式的预测房屋价格,不仅有房子面积x的一个特征值/变量值,还可以有卧室数量、楼层数量、房子年龄等多个特征值/变量值来预测房屋价格。
    	3.如下图中,使用x1、x2、x3、x4来表示四个特征值/变量值,仍然使用y来表示要预测的房子价格。
    		符号使用:
    			n:表示特征值/变量值的数目。下图中特征值/变量值的数目为n=4。
    			m:训练样本数量,即表格中的行数。
    			x^(i):表示第i个训练样本的输入特征值/变量值。i代表训练集中的某个样本的索引/下下标。
    			       比如下图中:x^(2) 表示第2个训练样本的一行中所包含的4个输入特征值/变量值,而该4个输入特征值便构建成为一个4x1矩阵(四维向量)。
    			       		 那么x^(2)即可以看做为一个4x1矩阵(四维向量):[1416,3,2,40]。
    			x^(i)_j:表示第i个训练样本中的第j个特征量的值。
    			         比如下图中:x^(2)_3 表示第2个训练样本的这一行中的第3个特征值,即第2行中第3列的值。

    	4.多变量/多特征值的假设函数
    		1.多变量/多特征值的假设函数公式:hθ(x)=θ0 +θ1*x1 +θ2*x2 + ... +θn*xn。
    		2.例子如下图:
    			公式:hθ(x)=θ0 +θ1*x1 +θ2*x2 +θ3*x3 +θ4*x4
    			特征值输入后:h(x)= 80000 + 0.1 * x1 + 0.01 * x2 + 3 * x3 -2 * x4
    			解析:h(x)的结果值为预测的房子价格,单位千美元。
    			     θ0为 基本价格80(千)美元。 
    			     θ1为 0.1(千)美元 表示每平方英尺100美元,x1 表示输入特征值(房子面积)。
    			     θ2为 0.01(千)美元 表示随着楼层数的增加而增加10美元,x2 表示输入特征值(楼层数)。
    			     θ3为 3(千)美元 表示 随着卧室数量的增加而增加3000美元,x3 表示输入特征值(卧室数量)。
    			     θ4为 -2(千)美元 表示 随着使用年数的增加而贬值2000美元,x4 表示输入特征值(使用年数)。

    		3.简化多变量/多特征值的假设函数公式
    			1.多变量/多特征值的假设函数公式:hθ(x)=θ0 +θ1*x1 +θ2*x2 + ... +θn*xn。
    			  在上述公式的基础上增加多一个输入特征值x0,并且把输入特征值x0设为1,因此公式变换成:hθ(x)=θ0*x0 +θ1*x1 +θ2*x2 + ... +θn*xn。
    			  增设一个值为1的输入特征值x0,意味着对于任意第i个样本都存在一个额外的第0个特征值,第0个特征值为1,即x^(i)向量存在一个x^(i)_0=1的特征值。
    			2.θ0 +θ1*x1 +θ2*x2 + ... +θn*xn:特征值向量X是一个从1开始标记的n维的向量(n行1列矩阵),即X=[x1,x2,...,xn]。
    			  θ0*x0 +θ1*x1 +θ2*x2 + ... +θn*xn:
    				由于额外增加了第0个特征值,并且第0个特征值总是1,因此特征值向量X是一个从0开始标记的n+1维的向量(n+1行1列矩阵),
    				即X=[x0,x1,x2,...,xn]。
    			3.hθ(x)=θ0*x0 +θ1*x1 +θ2*x2 + ... +θn*xn 
    				1.X特征向量:把输入特征值xn看作为一个n+1维向量(n+1行1列矩阵),即X=[x0,x1,x2,...,xn]
    				2.θ参数向量:把θn看作为一个n+1维向量(n+1行1列矩阵),即θ=[θ0,θ1,θ2,...,θn]
    				3.输入特征值x0 永远等于1
    			4.hθ(x)=θ0*x0 +θ1*x1 +θ2*x2 + ... +θn*xn 可以简化写成θ参数向量转置运算后乘以X特征向量,公式为θ^T*X。
    				1.θ^T即为θ参数向量转置运算:
    					θ参数向量本身为n+1维的θ参数向量(n+1行1列矩阵),θ参数向量转置运算后变成一个(n+1)*1维的矩阵,即n+1列1行矩阵,
    					因此又被称为行向量,可写作为(n+1)*1。
    				2.θ^T可看作为行向量,因此θ^T*X可看作为行向量与X特征向量的相乘。
    				3.θ^T*X:可被称为内积向量,即θ参数向量与X特征向量的内积,或者说内积就是θ参数向量转置运算后乘以X特征向量。
    					 θ^T*X 等于θ0*x0 +θ1*x1 +θ2*x2 + ... +θn*xn。
    

    更多相关内容
  • 线性空间中使用规范变量分析(CVA)来辨识状态空间模型,从数据中提取状态信息.3个监测量(Tr2,Ts2,Q)用来进行故障检测,同时使用贡献分离故障变量,并判断故障原因.在CSTR系统上的仿真结果表明,KCVA方法比主元分析法...
  • 文章目录前言一、多维特征二、多变量梯度下降1.特征缩放2.学习率三、多项式回归1.特征选择2.正规方程3.正规方程不可逆性总结 前言 一、多维特征 在前面只探讨了单变量/特征的回归模型,然而,在实际生活中,...


    前言


    一、多维特征

    在前面只探讨了单变量/特征的回归模型,然而,在实际生活中,多重因素构成一个含有多个变量的模型,模型中的特征为(𝑥1, 𝑥1, . . . , 𝑥𝑛)

    eg:在这里插入图片描述
    在实际生活中,有卧室的数量,楼层的数量…都会影响房价的

    符号约定:

    n : 特征的数量
    𝑥(𝑖) : 第 𝑖 个训练实例,是特征矩阵中的第𝑖行,是一个向量( vector)
    x j ( i ) : 特 征 矩 阵 中 第 𝑖 行 的 第 𝑗 个 , 第 𝑖 个 训 练 实 例 的 第 𝑗 个 特 征 x_j^{(i)} :特征矩阵中第 𝑖 行的第 𝑗个,第 𝑖 个训练实例的第 𝑗 个特征 xj(i):ij,ij
    支持多变量的假设函数h: ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛

    $$ 第2个训练样本:𝑥^{(2)} =\begin{bmatrix} 1416  \ 40 \3 \ 2 \end{bmatrix}\$$

    第 二 个 样 本 的 第 二 个 特 征 和 第 三 个 特 征 : 𝑥 2 ( 2 ) = 3 , 𝑥 3 ( 2 ) = 2 第二个样本的第二个特征和第三个特征:𝑥_2^{(2)} = 3, 𝑥_3^{(2)} = 2 x2(2)=3,x3(2)=2

    假设函数中有𝑛 + 1个参数和𝑛个变量,为了使得公式能够简化,引入𝑥0 = 1,则公式为: ℎ𝜃(𝑥) = 𝜃0𝑥0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛

    此时模型中的参数是一个𝑛 + 1维的向量,任何一个训练实例也都是𝑛 + 1维的向量,特征矩阵𝑋的维度是 𝑚 ∗ (𝑛 + 1)。 所以公式可以简化为:ℎ𝜃(𝑥) = 𝜃^𝑇𝑋,其中上标𝑇代表矩阵转置

    二、多变量梯度下降

    与单变量线性回归一样的,在多变量线性回归中,构建一个代价函数,则代价函数是所有建模误差的平方和,以下是假设函数和代价函数
    在这里插入图片描述
    在多变量线性回归中,目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数

    多变量线性回归的批量梯度下降算法为:
    在这里插入图片描述
    单变量线性回归与多变量线性回归对比:
    在这里插入图片描述
    开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛

    代码

    def computeCost(X, y, theta):
    	inner = np.power(((X * theta.T) - y), 2)
    	return np.sum(inner) / (2 * len(X))
    

    1.特征缩放

    对于处理多维特征问题,若保证了这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛

    eg:
    假设有两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000 平方英尺,房间数量的值则是 0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图,如图,图像显得很扁,梯度下降算法需要迭代多次才能收敛
    在这里插入图片描述

    特征缩放:将所有特征的尺度都尽量缩放到-1 到 1 之间
    在这里插入图片描述

    在概率论中,归一化:𝑥𝑛 = (𝑥𝑛−𝜇𝑛)/ 𝑠𝑛,其中 𝜇𝑛是平均值, 𝑠𝑛是标准差

    2.学习率

    梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,不能提前预知,可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛
    在这里插入图片描述
    也可以通过自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)进行比较

    一般推荐使用第一种画代价函数的图像,更直观,效果更好

    前面我们知道梯度下降算法的每次迭代受到学习率的影响,如果学习率𝑎过小,则达到收敛所需的迭代次数会非常高;如果学习率𝑎过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛,通常可以考虑尝试些学习率:𝛼 = 0.01, 0.03, 0.1, 0.3, 1, 3, 10 缓慢增加

    三、多项式回归

    1.特征选择

    通过定义新的特征,可能会得到一个更好地模型
    eg: 假设两个特征,分别是房子临街的宽度(frontage)和垂直宽度(depth),则可以建立一个线性回归模型:
    在这里插入图片描述
    但是当在运用线性回归时,不一定非要使用直接给出的x1 , x2,可以定义一个新的特征,例如在上述预测房价的例子中,可以认为能够决定房子大小的是所拥有的土地面积的大小,因此定义一个新特征area=𝑓𝑟𝑜𝑛𝑡𝑎𝑔𝑒 ∗ 𝑑𝑒𝑝𝑡ℎ, 则假设函数为:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥

    线性回归并不适用于所有数据,有时需要曲线来适应数据集,比如下图的数据集,如果用直线来拟合效果会很差的。
    在这里插入图片描述
    在上图中二次函数对数据前半段拟合的很好,但是后半段由于二次函数的性质,曲线下降,不能很好地拟合后半段数据,所以这里三次或者多元函数更适合。可以使用多元线性回归(multiple linear regression)的方法将模型与数据进行拟合
    在这里插入图片描述
    另外,可以令:𝑥^2 = 𝑥2, 𝑥^3 = 𝑥3,从而将模型转化为线性回归模型

    2.正规方程

    前面,都是使用梯度下降算法,去解决代价函数最小化问题,但是对于某些线性回归问题,使用正规方程(只需要一步就能得到最优值)可以更加简便。

    在这里插入图片描述
    正规方程是通过求解导数值为0的方程来找出使得代价函数最小的参数的,但是,参数𝜃一般不是一个实数,而是一个n+1维的向量,代价函数是这个向量的函数,将它的导数全部置0,求出全部的𝜃
    在这里插入图片描述
    假设训练集特征矩阵为 𝑋(包含了 𝑥0 = 1)并且训练集结果为向量 𝑦,则利用正规方程解出向量 𝜃 = (𝑋𝑇 𝑋)(−1)𝑋𝑇𝑦

    注:上标 T 代表矩阵转置,上标-1 代表矩阵的逆

    eg:
    数据集
    在这里插入图片描述
    了在上述数据中实现正规方程法,要在数据集中加上一列,以对应额外的特征变量x0
    构建矩阵X ,它包含了训练样本的所有特征变量,以及向量y, 它包含了所有的预测值
    在这里插入图片描述
    则矩阵X和向量y通过下面的公式来计算使得代价函数最小化的θ
    在这里插入图片描述
    即:
    在这里插入图片描述

    矩阵X称为设计矩阵(design matrix),构建设计矩阵的方法,就是取第一个训练样本,也就是第一个向量,取它的转置,作为设计矩阵的第一行,以此类推
    注:要在数据集中加上一列,以对应额外的特征变量x0

    梯度下降与正规方程的比较:
    在这里插入图片描述
    只要特征变量的数目并不大,标准方程是一个很好的计算参数𝜃的替代方法。具体地说,只要特征变量数量小于一万,通常使用标准方程法,而不使用梯度下降法

    正规方程的 python 实现:

    import numpy as np
    def normalEqn(X, y):
    	theta = np.linalg.inv(X.T@X)@X.T@y   # X.T@X 等价于 X.T.dot(X)
    return theta
    

    3.正规方程不可逆性

    求解正规方程中参数θ的公式中,需要求矩阵(XT X )可逆,但是,如果不可能用这种方法求解,程序还是会解出正确的解

    矩阵不可逆通常有两种最常见的原因

    (1)特征值相关联,即𝑥1 = 𝑥2 ∗k
    (2)特征值过多(在样本𝑚小于或等于特征值 n 的时候)

    eg:
    在预测住房价格时,如果𝑥1是以英尺为尺寸规格计算的房子, 𝑥2是以平方米为尺寸规格计算的房子(1 米等于3.28 英尺),这两个特征值将始终满足约束: 𝑥1 = 𝑥2 ∗(3.28)2,可以用一个线性方程,来描述两个相关联的特征值,矩阵𝑋′𝑋将是不可逆的

    eg:
    有𝑚等于 10 个的训练样本和有𝑛等于 100 的特征数量,要找到适合的(𝑛 + 1) 维参数矢量𝜃,尝试从 10 个训练样本中找到满足 101 个参数的值,花费的代价大

    使用小数据样本以得到101 个参数,通常会使用一种叫做正则化的线性代数方法,通过删除某些特征或者是使用某些技术,来解决当𝑚比𝑛
    小的时候的问题

    当发现的矩阵𝑋′𝑋的结果是奇异矩阵,或者找到的其它矩阵是不可逆的首先应该通过观察所有特征检查是否有多余的特征(𝑥1和𝑥2是线性相关的,互为线性函数),如果有多余的就删除掉,直到他们不再是多余的为止,如果特征数量实在太多,删除一些用较少的特征来反映尽可能多内容, 否则会考虑使用正规化方法

    4.推导证明

    在这里插入图片描述
    在这里插入图片描述


    总结

    提示:这里对文章进行总结:

    展开全文
  • 2.1 线性回归算法模型表示 让我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方...




    2.1 线性回归算法模型表示

    让我们通过一个例子来开始:这个例子是预测住房价格的,我们要使用一个数据集,数据集包含俄勒冈州波特兰市的住房价格。在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集。比方说,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱。那么,你可以做的一件事就是构建一个模型,也许是条直线,从这个数据模型上来看,也许你可以告诉你的朋友,他能以大约220000(美元)左右的价格卖掉这个房子。这就是监督学习算法的一个例子。

    它被称作监督学习是因为对于每个数据来说,我们给出了“正确的答案”,即告诉我们:根据我们的数据来说,房子实际的价格是多少,这是一个回归问题。回归指的是,我们根据之前的数据预测出一个准确的输出值,对于这个例子就是价格,同时,还有另一种最常见的监督学习方式,叫做分类问题,当我们想要预测离散的输出值,例如,我们正在寻找癌症肿瘤,并想要确定肿瘤是良性的还是恶性的,这就是0/1离散输出的问题。

    更进一步来说,在监督学习中我们有一个数据集,这个数据集被称训练集。

    我将在整个课程中用小写的来表示训练样本的数目。

    以之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示:

    我们将要用来描述这个回归问题的标记如下:

    m 代表训练集中实例的数量

     x 代表特征/输入变量

     y 代表目标变量/输出变量

     (x,y)代表训练集中的实例

     (x(i),y(i))代表第i个观察实例

     h代表学习算法的解决方案或函数也称为假设(hypothesis

    监督学习算法的工作方式,通过将数据集中的训练集传入线性模型算法中,即可输出一个

    我们可以看到这里有我们的训练集里房屋价格 我们把它喂给我们的学习算法,学习算法的工作了,然后输出一个函数,通常表示为小写 h表示。 代表hypothesis(假设),表示一个函数,输入是房屋尺寸大小,就像你朋友想出售的房屋,因此 h根据输入的x值来得出y值,y值对应房子的价格 因此,h是一个从x到y的函数映射。

    我将选择最初的使用规则代表hypothesis,因而,要解决房价预测问题,我们实际上是要将训练集“喂”给我们的学习算法,进而学习得到一个假设,然后将我们要预测的房屋的尺寸作为输入变量输入给,预测出该房屋的交易价格作为输出变量输出为结果。那么,对于我们的房价预测问题,我们该如何表达 ?

    一种可能的表达方式为:

    因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。

    2.2 代价函数

    代价函数的概念有助于理解如何把最有可能的直线与数据相拟合。

    如图:

    在线性回归中我们有一个像这样的训练集,代表了训练样本的数量,比如 m=47。而我们的假设函数,也就是用来进行预测的函数,是这样的线性函数形式:

    接下来我们会引入一些术语我们现在要做的便是为我们的模型选择合适的参数θ0和θ1 ,在房价问题这个例子中便是直线的斜率和在y轴上的截距。

    我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距(下图中蓝线所指)就是建模误差modeling error)。

    我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得代价函数

     最小。

    我们绘制一个等高线图,三个坐标分别为和θ0、θ1和J(θ0,θ1):

    则可以看出在三维空间中存在一个使得J(θ0,θ1)最小的点。

    代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回归问题最常用的手段了。


    通过穷举法实现实现寻找最低点or最小误差

    数据集设计

    问题:如图一某校学生在A课程中每周投入时间y与最终成绩的数值x,因此设y=wx,设计算法求w的权重的最佳拟合数值。 

    图1 数据集

    图2 损失函数

     代码:

    import numpy as np
    import matplotlib.pyplot as plt
    
    #数据集
    x_data=[1.0,2.0,3.0]
    y_data=[2.0,4.0,6.0]
    
    #构建 y = w * x ===>预测值
    def forward(x):
        return x*w
    
    #计算loss 即 loss 公式如上图,预测值减去原始数据求误差
    def loss(x,y):
        y_pred=forward(x)
        return (y_pred-y)*(y_pred-y)
    #权重w的列表
    w_list=[]
    #损失loss的列表
    mse_list=[]
    
    #对w使用穷举法,计算机y=w*x的最佳拟合值
    for w in np.arange(0.0,4.1,0.1):
        print(w)
        l_sum=0
        #zip()当传递参数长度不一样时候,以短的为标准
        for x_val,y_val in zip(x_data,y_data):
            #计算新的预测值
            y_pred_val=forward(x_val)
            #新预测值与
            loss_val=loss(x_val,y_val)
            l_sum= l_sum+loss_val
            print(x_val,y_val,y_pred_val,loss_val)
        #除以样本数,即平均误差
        MSR=l_sum/3
        w_list.append(w)
        mse_list.append(MSR)
    #绘制损失loss与权重w之间的函数图像
    plt.plot(w_list,mse_list)
    plt.ylabel('Loss')
    plt.xlabel('w')
    plt.show()
    

    运行结果:可知当w为2时loss的损失最小


    问题2

    作业题目:实现线性模型(y=wx+b)并输出loss的3D图像。

    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    
    #数据集
    x_data = [1.0,2.0,3.0]
    y_data = [5.0,8.0,11.0]
    
    # 数据集长度
    m=len(x_data)
    
    # 权值
    W=np.arange(0.0,4.0,0.1)
    B=np.arange(-2.0,2.0,0.1)
    [w,b]=np.meshgrid(W,B)
    #即三维坐标下 W做X周 B做Y周,在绘图时候一定要用小写,因为小写是N×N的二维数组,大写是一维N个数组成的数组
    
    # 注意矩阵的运算
    def farword(x):
        return x * w+b
    
    def loss(y_test,y):
        return (y_test-y)*(y_test-y)
    
    total_loss = 0
    for x_val,y_val in zip(x_data,y_data):
        y_test=farword(x_val)
        total_loss=(total_loss+loss(y_test,y_val))/m
    
    fig = plt.figure()
    
    # MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().
    # ax = fig.gca(projection='3d') 改为
    # ax = fig.add_subplot(projection='3d')
    ax = Axes3D(fig)
    
    print(W.shape) #(40,)
    print(W)
    print(w.shape)#(40,40)
    print(w)
    
    # ax.plot_surface(W,B,total_loss)
    ax.plot_surface(w,b,total_loss)
    plt.show()

    效果图

     numpy.meshgrid()理解

    numpy.meshgrid()理解_lllxxq141592654的博客-CSDN博客https://blog.csdn.net/lllxxq141592654/article/details/81532855

    展开全文
  • 多变量线性相关分析 现实世界中的数据科学 (Data Science in the Real World) This article aims to present two ways of calculating non linear correlation between any number of discrete variables. The ...

    多变量线性相关分析

    现实世界中的数据科学 (Data Science in the Real World)

    This article aims to present two ways of calculating non linear correlation between any number of discrete variables. The objective for a data analysis project is twofold : on the one hand, to know the amount of information the variables share with each other, and therefore, to identify whether the data available contain the information one is looking for ; and on the other hand, to identify which minimum set of variables contains the most important amount of useful information.

    本文旨在介绍两种计算任意数量的离散变量之间的非线性相关性的方法。 数据分析项目的目标是双重的:一方面,了解变量之间共享的信息量,从而确定可用数据是否包含人们正在寻找的信息; 另一方面,确定哪些最小变量集包含最重要的有用信息量。

    变量之间的不同类型的关系 (The different types of relationships between variables)

    线性度 (Linearity)

    The best-known relationship between several variables is the linear one. This is the type of relationships that is measured by the classical correlation coefficient: the closer it is, in absolute value, to 1, the more the variables are linked by an exact linear relationship.

    几个变量之间最著名的关系是线性关系。 这是用经典相关系数衡量的关系类型:绝对值越接近1,变量之间通过精确的线性关系链接的越多。

    However, there are plenty of other potential relationships between variables, which cannot be captured by the measurement of conventional linear correlation.

    但是,变量之间还有许多其他潜在的关系,无法通过常规线性相关性的测量来捕获。

    Image for post
    Correlation between X and Y is almost 0%
    X和Y之间的相关性几乎为0%

    To find such non-linear relationships between variables, other correlation measures should be used. The price to pay is to work only with discrete, or discretized, variables.

    为了找到变量之间的这种非线性关系,应该使用其他相关度量。 要付出的代价是仅对离散变量或离散变量起作用。

    In addition to that, having a method for calculating multivariate correlations makes it possible to take into account the two main types of interaction that variables may present: relationships of information redundancy or complementarity.

    除此之外,拥有一种用于计算多元相关性的方法,可以考虑变量可能呈现的两种主要交互类型:信息冗余或互补性的关系。

    冗余 (Redundancy)

    When two variables (hereafter, X and Y) share information in a redundant manner, the amount of information provided by both variables X and Y to predict Z will be inferior to the sum of the amounts of information provided by X to predict Z, and by Y to predict Z.

    当两个变量(以下,XY)以冗余的方式共享信息,由两个变量XY中提供的信息来预测的Z量将不如由X所提供的预测的Z信息的量的总和,和由Y预测Z。

    In the extreme case, X = Y. Then, if the values taken by Z can be correctly predicted 50% of the times by X (and Y), the values taken by Z cannot be predicted perfectly (i.e. 100% of the times) by the variables X and Y together.

    在极端情况下, X = Y。 然后,如果可以通过X (和Y )正确地预测Z所取的值的50%时间,则变量XY不能一起完美地预测Z所取的值(即100%的时间)。

                                ╔═══╦═══╦═══╗
    ║ X ║ Y ║ Z ║
    ╠═══╬═══╬═══╣
    ║ 0 ║ 0 ║ 0 ║
    ║ 0 ║ 0 ║ 0 ║
    ║ 1 ║ 1 ║ 0 ║
    ║ 1 ║ 1 ║ 1 ║
    ╚═══╩═══╩═══╝

    互补性 (Complementarity)

    The complementarity relationship is the exact opposite situation. In the extreme case, X provides no information about Z, neither does Y, but the variables X and Y together allow to predict perfectly the values taken by Z. In such a case, the correlation between X and Z is zero, as is the correlation between Y and Z, but the correlation between X, Y and Z is 100%.

    互补关系是完全相反的情况。 在极端情况下, X不提供有关Z的信息, Y也不提供任何信息,但是变量XY一起可以完美地预测Z所取的值。 在这种情况下, XZ之间的相关性为零, YZ之间的相关性也为零,但是XYZ之间的相关性为100%。

    These complementarity relationships only occur in the case of non-linear relationships, and must then be taken into account in order to avoid any error when trying to reduce the dimensionality of a data analysis problem: discarding X and Y because they do not provide any information on Z when considered independently would be a bad idea.

    这些互补关系仅在非线性关系的情况下发生,然后在尝试减小数据分析问题的维数时必须考虑到它们以避免错误:丢弃XY,因为它们不提供任何信息在Z上单独考虑时,将是一个坏主意。

                                ╔═══╦═══╦═══╗
    ║ X ║ Y ║ Z ║
    ╠═══╬═══╬═══╣
    ║ 0 ║ 0 ║ 0 ║
    ║ 0 ║ 1 ║ 1 ║
    ║ 1 ║ 0 ║ 1 ║
    ║ 1 ║ 1 ║ 0 ║
    ╚═══╩═══╩═══╝

    “多元非线性相关性”的两种可能测度 (Two possible measures of “multivariate non-linear correlation”)

    There is a significant amount of possible measures of (multivariate) non-linear correlation (e.g. multivariate mutual information, maximum information coefficient — MIC, etc.). I present here two of them whose properties, in my opinion, satisfy exactly what one would expect from such measures. The only caveat is that they require discrete variables, and are very computationally intensive.

    存在(多元)非线性相关性的大量可能度量(例如多元互信息,最大信息系数MIC等)。 我在这里介绍他们中的两个,我认为它们的性质完全满足人们对此类措施的期望。 唯一的警告是它们需要离散变量,并且计算量很大。

    对称测度 (Symmetric measure)

    The first one is a measure of the information shared by n variables V1, …, Vn, known as “dual total correlation” (among other names).

    第一个是对n个变量V1,…,Vn共享的信息的度量,称为“双重总相关”(在其他名称中)。

    This measure of the information shared by different variables can be characterized as:

    不同变量共享的信息的这种度量可以表征为:

    Image for post

    where H(V) expresses the entropy of variable V.

    其中H(V)表示变量V的熵。

    When normalized by H(V1, …, Vn), this “mutual information score” takes values ranging from 0% (meaning that the n variables are not at all similar) to 100% (meaning that the n variables are identical, except for the labels).

    当用H(V1,…,Vn)归一化时,该“互信息分”取值范围从0%(意味着n个变量根本不相似)到100%(意味着n个变量相同,除了标签)。

    This measure is symmetric because the information shared by X and Y is exactly the same as the information shared by Y and X.

    此度量是对称的,因为XY共享的信息与YX共享的信息完全相同。

    Image for post
    Joint entropy of V1, V2 and V3
    V1,V2和V3的联合熵

    The Venn diagram above shows the “variability” (entropy) of the variables V1, V2 and V3 with circles. The shaded area represents the entropy shared by the three variables: it is the dual total correlation.

    上方的维恩图用圆圈显示变量V1V2V3的“变异性”(熵)。 阴影区域表示三个变量共享的熵:它是对偶总相关。

    不对称测度 (Asymmetric measure)

    The symmetry property of usual correlation measurements is sometimes criticized. Indeed, if I want to predict Y as a function of X, I do not care if X and Y have little information in common: all I care about is that the variable X contains all the information needed to predict Y, even if Y gives very little information about X. For example, if X takes animal species and Y takes animal families as values, then X easily allows us to know Y, but Y gives little information about X:

    常用的相关测量的对称性有时会受到批评。 的确,如果我想将Y预测为X的函数,则我不在乎XY是否有很少的共同点信息:我只关心变量X包含预测Y所需的所有信息,即使Y给出关于X的信息很少。 例如,如果X取动物种类而Y取动物种类作为值,则X容易使我们知道Y ,但Y几乎没有提供有关X的信息:

        ╔═════════════════════════════╦══════════════════════════════╗
    ║ Animal species (variable X) ║ Animal families (variable Y) ║
    ╠═════════════════════════════╬══════════════════════════════╣
    ║ Tiger ║ Feline ║
    ║ Lynx ║ Feline ║
    ║ Serval ║ Feline ║
    ║ Cat ║ Feline ║
    ║ Jackal ║ Canid ║
    ║ Dhole ║ Canid ║
    ║ Wild dog ║ Canid ║
    ║ Dog ║ Canid ║
    ╚═════════════════════════════╩══════════════════════════════╝

    The “information score” of X to predict Y should then be 100%, while the “information score” of Y for predicting X will be, for example, only 10%.

    那么,用于预测YX的“信息分数”应为100%,而用于预测XY的“信息分数”仅为例如10%。

    In plain terms, if the variables D1, …, Dn are descriptors, and the variables T1, …, Tn are target variables (to be predicted by descriptors), then such an information score is given by the following formula:

    简而言之,如果变量D1,...,Dn是描述符,变量T1,...,Tn是目标变量(将由描述符预测),则这样的信息得分将由以下公式给出:

    Image for post

    where H(V) expresses the entropy of variable V.

    其中H(V)表示变量V的熵。

    This “prediction score” also ranges from 0% (if the descriptors do not predict the target variables) to 100% (if the descriptors perfectly predict the target variables). This score is, to my knowledge, completely new.

    此“预测分数”的范围也从0%(如果描述符未预测目标变量)到100%(如果描述符完美地预测目标变量)。 据我所知,这个分数是全新的。

    Image for post
    Share of entropy of D1 and D2 useful to predict T1
    D1和D2的熵份额可用于预测T1

    The shaded area in the above diagram represents the entropy shared by the descriptors D1 and D2 with the target variable T1. The difference with the dual total correlation is that the information shared by the descriptors but not related to the target variable is not taken into account.

    上图中的阴影区域表示描述符D1D2与目标变量T1共享的熵。 与双重总相关的区别在于,不考虑描述符共享但与目标变量无关的信息。

    实际中信息分数的计算 (Computation of the information scores in practice)

    A direct method to calculate the two scores presented above is based on the estimation of the entropies of the different variables, or groups of variables.

    计算上述两个分数的直接方法是基于对不同变量或变量组的熵的估计。

    In R language, the entropy function of the ‘infotheo’ package gives us exactly what we need. The calculation of the joint entropy of three variables V1, V2 and V3 is very simple:

    在R语言中,“ infotheo”程序包的熵函数提供了我们所需的信息。 三个变量V1V2V3的联合熵的计算非常简单:

    library(infotheo)df <- data.frame(V1 = c(0,0,1,1,0,0,1,0,1,1),                 V2 = c(0,1,0,1,0,1,1,0,1,0),                 V3 = c(0,1,1,0,0,0,1,1,0,1))entropy(df)[1] 1.886697

    The computation of the joint entropy of several variables in Python requires some additional work. The BIOLAB contributor, on the blog of the Orange software, suggests the following function:

    Python中几个变量的联合熵的计算需要一些额外的工作。 BIOLAB贡献者在Orange软件博客上建议了以下功能:

    import numpy as np
    import itertools
    from functools import reducedef entropy(*X): entropy = sum(-p * np.log(p) if p > 0 else 0 for p in
    (
    np.mean(reduce(np.logical_and, (predictions == c for predictions, c in zip(X, classes))))
    for
    classes in itertools.product(*[set(x) for x in X]))) return(entropy)V1 = np.array([0,0,1,1,0,0,1,0,1,1])V2 = np.array([0,1,0,1,0,1,1,0,1,0])V3 = np.array([0,1,1,0,0,0,1,1,0,1])entropy(V1, V2, V3)1.8866967846580784

    In each case, the entropy is given in nats, the “natural unit of information”.

    在每种情况下,熵都以nat(“信息的自然单位”)给出。

    For a high number of dimensions, the information scores are no longer computable, as the entropy calculation is too computationally intensive and time-consuming. Also, it is not desirable to calculate information scores when the number of samples is not large enough compared to the number of dimensions, because then the information score is “overfitting” the data, just like in a classical machine learning model. For instance, if only two samples are available for two variables X and Y, the linear regression will obtain a “perfect” result:

    对于大量维,信息分数不再可计算,因为熵计算的计算量很大且很耗时。 同样,当样本数量与维数相比不够大时,也不希望计算信息分数,因为就像经典的机器学习模型一样,信息分数会使数据“过度拟合”。 例如,如果对于两个变量XY只有两个样本可用,则线性回归将获得“完美”的结果:

                                ╔════╦═════╗
    ║ X ║ Y ║
    ╠════╬═════╣
    ║ 0 ║ 317 ║
    ║ 10 ║ 40 ║
    ╚════╩═════╝
    Image for post
    Basic example of overfitting
    过度拟合的基本示例

    Similarly, let’s imagine that I take temperature measures over time, while ensuring to note the time of day for each measure. I can then try to explore the relationship between time of day and temperature. If the number of samples I have is too small relative to the number of problem dimensions, the chances are high that the information scores overestimate the relationship between the two variables:

    同样,让我们​​想象一下,我会随着时间的推移进行温度测量,同时确保记下每个测量的时间。 然后,我可以尝试探索一天中的时间与温度之间的关系。 如果我拥有的样本数量相对于问题维度的数量而言太少,则信息分数很有可能高估了两个变量之间的关系:

                    ╔══════════════════╦════════════════╗
    ║ Temperature (°C) ║ Hour (0 to 24) ║
    ╠══════════════════╬════════════════╣
    ║ 23 ║ 10 ║
    ║ 27 ║ 15 ║
    ╚══════════════════╩════════════════╝

    In the above example, and based on the only observations available, it appears that the two variables are in perfect bijection: the information scores will be 100%.

    在上面的示例中,并且基于仅可用的观察结果,看来这两个变量完全是双射的:信息得分将为100%。

    It should therefore be remembered that information scores are capable, like machine learning models, of “overfitting”, much more than linear correlation, since linear models are by nature limited in complexity.

    因此,应该记住,信息评分像机器学习模型一样,具有“过拟合”的能力,远远超过了线性相关性,因为线性模型天生就受到复杂性的限制。

    预测分数使用示例 (Example of prediction score use)

    The Titanic dataset contains information about 887 passengers from the Titanic who were on board when the ship collided with an iceberg: the price they paid for boarding (Fare), their class (Pclass), their name (Name), their gender (Sex), their age (Age), the number of their relatives on board (Parents/Children Aboard and Siblings/Spouses Aboard) and whether they survived or not (Survived).

    泰坦尼克号数据集包含有关当泰坦尼克号与冰山相撞时在船上的887名乘客的信息:他们所支付的登船价格( 车费 ),其舱位( Pclass ),姓名( Name ),性别( Sex ) ,他们的年龄( Age ),在船上的亲戚数( 父母/子女兄弟姐妹/配偶 )以及他们是否幸存( Survived )。

    This dataset is typically used to determine the probability that a person had of surviving, or more simply to “predict” whether the person survived, by means of the individual data available (excluding the Survived variable).

    该数据集通常用于通过可用的个人数据(不包括生存变量)来确定一个人生存的可能性,或更简单地“预测”该人是否生存

    So, for different possible combinations of the descriptors, I calculated the prediction score with respect to the Survived variable. I removed the nominative data (otherwise the prediction score would be 100% because of the overfitting) and discretized the continuous variables. Some results are presented below:

    因此,对于描述符的不同可能组合,我针对生存变量计算了预测得分。 我删除了名义数据(否则,由于过度拟合,预测得分将为100%),并离散化了连续变量。 一些结果如下所示:

    Image for post
    Purely illustrative example — results depend on the discretization method
    纯粹是示例性的-结果取决于离散化方法

    The first row of the table gives the prediction score if we use all the predictors to predict the target variable: this score being more than 80%, it is clear that the available data enable us to predict with a “good precision” the target variable Survived.

    如果我们使用所有预测变量来预测目标变量,则表的第一行将给出预测得分:该得分超过80%,很明显,可用数据使我们能够“精确”地预测目标变量幸存下来

    Cases of information redundancy can also be observed: the variables Fare, PClass and Sex are together correlated at 41% with the Survived variable, while the sum of the individual correlations amounts to 43% (11% + 9% + 23%).

    信息冗余的情况下,也可以观察到:变量票价 ,PClass性别在与幸存变量41%一起相关,而各个相关性的总和达43%(11%+ 9%+ 23%)。

    There are also cases of complementarity: the variables Age, Fare and Sex are almost 70% correlated with the Survived variable, while the sum of their individual correlations is not even 40% (3% + 11% + 23%).

    还有互补的情况: 年龄票价性别变量与生存变量几乎有70%相关,而它们各自的相关总和甚至不到40%(3%+ 11%+ 23%)。

    Finally, if one wishes to reduce the dimensionality of the problem and to find a “sufficiently good” model using as few variables as possible, it is better to use the three variables Age and Fare and Sex (prediction score of 69%) rather than the variables Fare, Parents/Children Aboard, Pclass and Siblings/Spouses Aboard (prediction score of 33%). It allows to find twice as much useful information with one less variable.

    最后,如果希望减少问题的范围并使用尽可能少的变量来找到“足够好”的模型,则最好使用年龄票价性别这三个变量(预测得分为69%),而不是变量票价家长 / 儿童 到齐 ,Pclass兄弟姐妹 / 配偶 到齐 (33%预测得分)。 它允许查找变量少一倍的有用信息。

    Calculating the prediction score can therefore be very useful in a data analysis project, to ensure that the data available contain sufficient relevant information, and to identify the variables that are most important for the analysis.

    因此,在数据分析项目中,计算预测分数可能非常有用,以确保可用数据包含足够的相关信息,并确定对于分析最重要的变量。

    翻译自: https://medium.com/@gdelongeaux/how-to-measure-the-non-linear-correlation-between-multiple-variables-804d896760b8

    多变量线性相关分析

    展开全文
  • 一、单变量分析绘图 什么是单变量分析? 单变量其实就是我们通常接触到的数据集中的一列数据。 单变量分析是数据分析中最简单的形式,其中被分析的数据只包含一个变量。因为它是一个单一的变量,它不处理原因或关系 ...
  • 变量线性回归实验分析

    千次阅读 2019-04-01 20:51:01
    实现线性回归,预测该城市人口对应的利润。 2 数据集描述 现有一个数据集命名为ex1data1.txt,里面包含两个属性,即城市人口和利润。 3 使用工具 Pycharm python3 4 实验步骤 导入数据,并给每列数据命名一个名称...
  • 线性回归分为单变量线性回归、多变量线性回归 区别 变量比单变量个特征缩放 代码及注释 import numpy as np import matplotlib.pyplot as plt # 中文、负号 plt.rcParams['font.sans-serif'] = ['SimHei'] plt....
  • 目录:前言偏相关或复相关意义与用途分析方法:1、 样本相关系数矩阵、...没读过上篇文章请先仔细阅读再过来,因为多变量本质上是基于双变量的TzeSing Kong:相关性分析(两变量)​zhuanlan.zhihu.com二、偏相关或...
  • Matlab多变量回归分析教程

    千次阅读 2021-04-20 02:38:43
    资源描述:本次教程的主要内容包含 一、多元线性回归 2 多元线性回归regress 二、多项式回归 3 一元多项式polyfit或者polytool 多元二项式rstool或者rsmdemo 三、非线性回归 4 非线性回归nlinfit 四、逐步回归 5 ...
  • 变量线性回归模型与结果解读

    千次阅读 2019-06-09 13:59:19
    其中Y为输出变量、响应变量、因变量、被解释变量;m为均值;e为不可控因子,可以理解为噪声。故模型等式右边是用X组成的函数去描述Y的均值,即模型是在平均的意义下去描述自变量与因变量间的关系...
  • 1.多元线性回归SPSS分析 四步搞定SPSS多元线性回归视频教程(含详细操作及结果解读)_哔哩哔哩_bilibili订阅陈老师B站送福利!订阅后加陈老师QQ1622275006送数据分析教程及软件福利哟~关注微信公众号:杏花开医学...
  • 机器学习Machine Learning - Andrew NG ...linear regression works with multiple variables or with multiple features多变量线性规划 Multiple Features变量 Gradient Descent for Multiple
  • 实验目的:了解R语言多元线性回归模型中变量的选择和诊断分析 实验要求:对给出的数据用逐步回归的方法选择变量,并对实验结果进行诊断分析。 实验数据:1. 对给出数据进行变量选择,并进行回归诊断。 实验代码: a1...
  • 1.rstool工具箱 具体参考官网... 用法:rstool(x,y,model,alpha,xname,yname) ​ 出现一个交互式画面(如下所示) x为一个矩阵(n*m) y矩阵(n*1) alpha:显著水平 ...
  • 之前的文章中都是给大家写的变量线性关系的做法,包括回归和广义线性回归,变量间的非线性关系其实是很常见的,今天给大家写写如何拟合论文中常见的非线性关系。包括多项式回归Polynomial regression和样条回归...
  • 线性回归分析步骤总结

    千次阅读 2022-04-02 16:16:23
    线性回归分析研究影响关系情况,回归分析实质上就是研究X(自变量)对Y(因变量,定量数据)的影响关系情况。当自变量为1个时,是一元线性回归,又称作简单线性回归;自变量为2个及以上时,称为多元线性回归。线性回归广泛...
  • 变量相关性分析

    千次阅读 2021-12-02 10:46:21
    变量相关性分析   接下来,我们尝试对变量和标签进行相关性分析。从严格的统计学意义讲,不同类型变量的 相关性需要采用不同的分析方法,例如连续变量之间相关性可以使用皮尔逊相关系数进行计算, 而连续变量和...
  • 多重对应分析在超过两个以上定类变量时有时候非常有效,当然首先我们要理解并思考,如果只有三个或有限的几个变量完全可以通过数据变换和交互表变量重组可以转换成两个定类变量,这时候就可以用简单对应分析了。...
  • 任意变量都可以考虑相关问题,不单单局限于两个变量,一次可以分析多变量的相关性 任意测量尺度的变量都可以测量相关强度,不单单仅可以测连续与连续变量的相关性,连续变量和有序分类变量,连续变量和...
  • 多元线性回归分析

    千次阅读 2021-08-07 20:34:33
    常见的回归分析有五类:线性回归、0‐1回归、定序回归、计数回归和生存回归,其划分的依据是因变量Y的类型。本讲主要学习线性回归。 多元线性回归分析 相关性 通过回归分析,研究相关关。相关性不等于因果性。 X X...
  • 回归分析:能让我们进一步用更精确的话来描述出两个变量之间的线性相关性。二、线性相关计算方法:相关系数:反应的是两个变量每单位的相关性程度。线性相关性种类:正线性相关,负线性相关,不是线性相关。线性...
  • 利用SPSS进行线性回归分析

    千次阅读 2020-12-24 14:08:59
    一元线性回归分析一元线性回归是描述两个变量之间统计关系的最简单的回归模型。1.数学模型2.估计参数(最小二乘法)3.方程的显著性检验求得回归方程后,还不能马上就用它去做分析和预测,还需要应用统计方法对回归方程...
  • 多元线性回归哑变量设置方法

    万次阅读 多人点赞 2021-04-14 23:53:13
    多元线性回归是研究一个连续型变量和其他变量线性关系的统计学分析方法,如果在自变量中存在分类变量,如果直接将分类变量和连续性变量统一纳入模型进行分析是有问题的,尤其是无序分类资料,即使进入了模型,...
  • 多重线性回归分析SPSS操作与解读

    千次阅读 2020-12-19 08:55:17
    严格来讲,这种一个因变量个自变量的线性回归叫多变量线性回归或者因素线性回归更合适一些。多元或者变量往往指的是个因变量。在线性回归中,残差是一个非常重要的概念,它是估计值与观测值之差,表示因变量...
  • 变量线性回归原理解析

    千次阅读 2017-06-28 11:25:37
    摘要: 给出一个房价预测的例子,x轴是房子的大小,y轴是房子的价格,中标注了一些房子作为数据集,而这些点被称为标注数据(labeled data),利用这样的...Linear Regression with one Variable(单变量线性
  • R语言的一般线性模型 R语言的一般线性模型用函数:lm(),即可轻松实现。 例子 建立一般线性模型 ...这里解释一下变量(我直接copy我项目里面的两行代码),因变量y就是fmri.SFG_R_CerebellumGM_L,...
  • SPSS中可以使用分析-一般线性模型中的分析来做显著性分析 其中又有两个选择,单因素与因素。 查看SPSS官方帮助文档,即点击左下角的“?”,找到了两者区别。 单因素 ...“GLM 单变量”过程通过一个或个因子和/或...
  • 变量线性回归(披萨案例)

    千次阅读 2020-11-01 21:17:10
    文章目录前言一、单变量线性回归二、代码三、总结 前言 在研究机器学习,发现了一些宝藏算法,写下来让自己记住,超有用!同时也想要分享给大家,如果喜欢可以支持一下,谢谢。 一、单变量线性回归 假设某披萨店...
  • 相关分析就是对两个变量之间线性关系的描述与度量,要解决的问题如下: 变量之间是否存在关系? 如果存在关系,它们之间是什么关系? 变量之间的关系强度如何? 样本反映的变量之间的关系能否代表总体变量之间的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,224
精华内容 52,889
关键字:

多变量线性分析图