协方差矩阵

协方差矩阵的详细说明

匿名 (未验证) 提交于 2019-12-02 23:38:02
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zaf0516/article/details/36033955 协方差矩阵的详细说明 变量说明: 设 为一组随机变量,这些随机变量构成随机向量 对应着第i个随机单变量的所有样本值构成的向量。 单随机变量间的协方差: 随机变量 根据已知的样本值可以得到协方差的估计值如下: 可以进一步地简化为: (4) 协方差矩阵: 其中 如果所有样本的均值为一个零向量,则式(5)可以表达成: 补充说明: 1、协方差矩阵中的每一个元素是表示的随机向量X的不同分量之间的协方差,而不是不同样本之间的协方差,如元素Cij就是反映的随机变量Xi, Xj的协方差。 2、协方差是反映的变量之间的二阶统计特性,如果随机向量的不同分量之间的相关性很小,则所得的协方差矩阵几乎是一个对角矩阵。对于一些特殊的应用场合,为了使随机向量的长度较小,可以采用主成分分析的方法,使变换之后的变量的协方差矩阵完全是一个对角矩阵,之后就可以舍弃一些能量较小的分量了(对角线上的元素反映的是方差,也就是交流能量)。特别是在模式识别领域,当模式向量的维数过高时会影响识别系统的泛化性能,经常需要做这样的处理。 3、必须注意的是,这里所得到的式(5)和式(6)给出的只是随机向量协方差矩阵真实值的一个估计(即由所测的样本的值来表示的

卡尔曼滤波的原理、理解与仿真

匿名 (未验证) 提交于 2019-12-02 23:36:01
转载 : https://zhuanlan.zhihu.com/p/49298236 卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而且由于观测包含系统的噪声和干扰的影响,所以最优估计也可看做是滤波过程。 1 卡尔曼滤波的原理与理解 1.1 预测 假设有一辆小车,其在t时刻的位置为 P t P_t P t (假设其在一维直线上运动,则位置可以用数轴上的点表示),速度为 v t v_t v t 。 因此在t时刻小车的状态可用向量表示为 x t = [ p t , v t ] T x_t=\left[ p_t ,v_t\right]^T x t = [ p t , v t ] T 。 但是我们并没有捕捉到一切信息,可能存在外部因素会对系统进行控制,带来一些与系统自身状态没有相关性的改变。如汽车司机可能会操纵油门,让汽车加速。 假设由于油门的设置或控制命令,我们知道了期望的加速度为 u t u_t u t (加速度理解为外部的控制量),则可由运动学公式从t-1时刻推出其在t时刻的速度与位置如下: 进一步的可以将其写成向量形式: 即: 令 则通过变量代换可以得到状态转移公式: 其中: 矩阵 F t F_t F t 为状态转移矩阵,表示如何从上一状态来推测当前时刻的状态; B t B_t B t 为控制矩阵,表示控制量 u t u_t u t

使用协方差矩阵的特征向量PCA来处理数据降维

六眼飞鱼酱① 提交于 2019-12-02 02:10:44
取2维特征,方便图形展示 import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.datasets import load_iris data = load_iris() y = data.target X = data.data pca = PCA(n_components=2) reduced_X = pca.fit_transform(X) red_x, red_y = [], [] blue_x, blue_y = [], [] green_x, green_y = [], [] for i in range(len(reduced_X)): if y[i] == 0: red_x.append(reduced_X[i][0]) red_y.append(reduced_X[i][1]) elif y[i] == 1: blue_x.append(reduced_X[i][0]) blue_y.append(reduced_X[i][1]) else: green_x.append(reduced_X[i][0]) green_y.append(reduced_X[i][1]) plt.scatter(red_x, red_y, c='r', marker='x')

深度解析卡尔曼滤波在IMU中的使用

泪湿孤枕 提交于 2019-12-01 21:52:13
卡尔曼滤波主要分两个步骤,预测加校正。预测是基于上一时刻的状态对当前状态进行估计,校正是根据当前状态的观测与上一时刻的估计进行综合分析,估计出系统的最优状态值,然后下一时刻接着重复这个过程;卡尔曼不断的进行迭代,它不需要大量的粒子状态输入,只需要过程量,因此它的速度很快,非常适合线性系统的状态估计。 众所周知卡尔曼滤波在处理 IMU 传感器数据融合中作用巨大,但在实际实现起来并非那么容易;本文从 MPU6050 入手,分析卡尔曼滤波的使用。 本篇文章需要你在夜深人静的时候、先去冲一杯咖啡、准备一张纸、一支笔…… 卡尔曼滤波 从来没有坐下来认真的计算卡尔曼滤波的公式由来以及它背后更深层次的原理,为什么在处理加速度以及陀螺仪的数据融合中卡尔曼滤波就那么的有效。但是对于大多数人来说,可能更感兴趣的是如何正确的去使用它,卡尔曼滤波的那五个公式到底怎么使用。 开始之前需要你具备一定的矩阵乘法、矩阵变换等知识,大家都知道矩阵乘法的重要性,不夸张的说,不懂矩阵乘法根本做不了复杂的模型。当然本篇涉及到的矩阵乘法没那么复杂,如果忘记了请翻大学时的课本脑补,或参考以下网站: http://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29 http://www.mathwarehouse.com

图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix)

丶灬走出姿态 提交于 2019-12-01 13:17:10
图Lasso求逆协方差矩阵(Graphical Lasso for inverse covariance matrix) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 图Lasso方法的基本理论 2. 坐标下降算法 3. 图Lasso算法 4. MATLAB程序 数据见参考文献 [2] 4.1 demo.m load SP500 data = normlization(data); S = cov(data); %数据协方差 [X, W] = glasso_1(double(S), 0.5); %X:sigma^(-1), W:sigma [~, idx] = sort(info(:,3)); colormap gray imagesc(X(idx, idx) == 0) axis off %% Data Normalization function data = normlization(data) data = bsxfun(@minus, data, mean(data)); data = bsxfun(@rdivide, data, std(data)); end 4.2 glasso_1.m function [X, W] = glasso_1(S, lambda) %% Graphical Lasso -

推荐算法初探

丶灬走出姿态 提交于 2019-12-01 05:02:22
1. 推荐算法简介 0x1:关于推荐的几个小故事 在开始讨论抽象具体的算法和公式之前,笔者希望先通过几个小故事,来帮助读者朋友建立一个对推荐算法的感性理解。同时我们也可以更好地体会到在现实复杂世界中,推荐是一项非常复杂的事情,现在的最新的推荐算法可能只模拟了其中30%不到的程度。 1. 150年前美国西部小镇的生活情形 假想150年前一个美国小镇的生活情形,大家都互相认识: 百货店某天进了一批布料,店员注意到这批布料中某个特定毛边的样式很可能会引起Clancey夫人的高度兴趣,因为他知道Clancey夫人喜欢亮花纹样,于是他在心里记着等Clancey夫人下次光顾时将该布料拿给她看看。 Chow Winkler告诉酒吧老板Wilson先生,他考虑将多余的雷明顿(Renmington)来福枪出售,Wilson先生将这则消息告诉Bud Barclay,因为他知道Bud正在寻求一把好枪。 Valquez警长及其下属知道Lee Pye是需要重点留意的对象,因为Lee Pye喜欢喝酒,并且性格暴躁、身体强壮 100年前的小镇生活都与 人和人之间的联系 有关。人们知道你的喜好、健康和婚姻状况。不管是好是坏,大家得到的都是 个性化的体验 。那时,这种高度个性化的社区生活占据了当时世界上的大部分角落。 请注意,这里每个人都对其他 每个人的个性和近期情况 非常了解

【机器学习】PCA

半腔热情 提交于 2019-11-30 13:35:14
目录 PCA 1. PCA最大可分性的思想 2. 基变换(线性变换) 3. 方差 4. 协方差 5. 协方差矩阵 6. 协方差矩阵对角化 7. PCA算法流程 8. PCA算法总结 PCA PCA 就是找出数据最主要的方面,用数据里最主要的方面来代替原始数据。 PCA 是最重要的降维方法之一,在数据压缩、消除冗余和数据噪音消除等领域都有广泛的应用。 1. PCA最大可分性的思想 ​ 最大可分性: 样本点在超平面上的投影尽可能的分开 2. 基变换(线性变换) ​ 欲获得原始数据新的表示空间,最简单方法是对原始数据进行基变换(线性变换)。 3. 方差 ​ 如何选择一个方向或者基才是最优的?基于PCA最大可分思想,我们要找的方向是 降维后损失最小 ,可以理解为 投影后的数据尽可能分得开 ,而分散程度可以用数学上的方差来表示,因为 方差越大数据也就越分散 。 4. 协方差 ​ 在高维变换中,我们希望基变换后选择的各个方向(或者基)是不相关的,这样才能表示更多的信息。数学上使用协方差表示相关性: \[ Cov(a,b) = \frac{1}{m} \sum_{i=1}^{m}a_ib_i \] 如果 \(Cov(a,b)=0\) ,则表示两个字段完全独立,这也是我们的 优化目标 。 5. 协方差矩阵 ​ 我们想达到的 目标( \(Cov(a,b)=0\) ) 与 字段内方差 及 字段间协方差

协方差矩阵和散布矩阵(散度矩阵)的意义

牧云@^-^@ 提交于 2019-11-30 13:20:40
协方差矩阵和散布矩阵的意义 【 尊重 原创,转载请注明出处 】http://blog.csdn.net/guyuealian/article/details/68922981 在机器学习模式识别中,经常需要应用到协方差矩阵C和散布矩阵S。如在 PCA主成分分析中 ,需要计算样本的散度矩阵,有的论文是计算协方差矩阵 。 实质上二者意义差不多,散布矩阵(散度矩阵)前乘以系数 1/(n-1) 就可以得到协方差矩阵了。 在模式识别的教程中,散布矩阵也称为散度矩阵,有的也称为类内离散度矩阵或者类内离差阵,用一个等式关系可表示为: 关系: 散度矩阵 = 类内离散度矩阵 = 类内离差阵 = 协方差矩阵 × ( n-1 ) 样本的协方差矩阵乘以 n-1 倍即为散布矩阵, n 表示样本的个数, 散布矩阵的大小由特征维数 d 决定, 是一个为 d × d 的半正定矩阵。 一、协方差矩阵的基础 对于二维随机变量(X,Y)之间的相互关系的数字特征,我们用协方差来描述,记为Cov(X,Y): 那么二维随机变量 (X,Y) 的 协方差矩阵,为 : 对于三 维随机变量 X = ( X 1 , X 2 , X 3 ) 的协方差矩阵可表示为: 对于 n 维 X = ( X 1 , X 2 ....X n ) 协方差矩阵: 说明: (1)协方差矩阵是一个 对称矩阵 ,且是 半正定矩阵 ,主对角线是各个随机变量 的方差

协方差矩阵—黑塞矩阵—正定矩阵

做~自己de王妃 提交于 2019-11-30 13:19:44
文章目录 一、基本概念 1.1 协方差矩阵 及推导 1.2 黑塞矩阵 示例 1.3 正定矩阵定义及性质 1.4 正定矩阵 示例 一、基本概念 1.1 协方差矩阵 及推导 在统计学中用标准差描述样本数据的 “散布度” 公式中之所以除以 n-1 而不是 n, 是因为这样使我们以较少的样本集更好的逼近总体标准差。即统计学上所谓的 “无偏估计”。 关于 协方差 与 散度 :https://blog.csdn.net/wsp_1138886114/article/details/80967843 方差 : v a r ( X ) = ∑ i = 1 n ( X i − X ˉ ) ( X i − X ˉ ) n − 1 var(X) = \frac{\sum_{i=1}^n(X_i-\bar{X})(X_i-\bar{X})}{n-1} v a r ( X ) = n − 1 ∑ i = 1 n ​ ( X i ​ − X ˉ ) ( X i ​ − X ˉ ) ​ 各个维度偏离其均值的程度, 协方差 : cov ( X , Y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 \text{cov}(X,Y) = \frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1} cov ( X , Y ) =

举例说明协方差矩阵的运算

喜你入骨 提交于 2019-11-30 13:14:29
均值,方差,协方差的运算公式 举例说明 代码演示 import numpy as np a = np.mat([[10, 15, 29], [15, 46, 13], [23, 21, 30], [11, 9, 35]]) a_mean = a.mean(axis = 0) # 求每列的均值 a_d_mean = a - a_mean # 去均值的矩阵 cov_x_y = np.dot(a_d_mean[:, 0].T, a_d_mean[:, 1]) / 3 # 26.58333333 cov_x_z = np.dot(a_d_mean[:, 0].T, a_d_mean[:, 2]) / 3 # -6.08333333 cov_y_z = np.dot(a_d_mean[:, 1].T, a_d_mean[:, 2]) / 3 # -152.08333333 a_cov = np.cov(a.T) # np 自带的矩阵计算公式 记住一定要转置 a_cov2 = np.dot(a_d_mean.T, a_d_mean) / (4 - 1) # 协方差矩阵还可以这样计算,先让样本矩阵中心化,即每一维度减去该维度的均值,使每一维度上的均值为0,然后直接用新的到的样本矩阵乘上它的转置,然后除以(N-1)即可 a_cov == a_cov2 # 结果相等 来源: CSDN 作者: