pca

How to annotated labels to a 3D matplotlib scatter plot?

时间秒杀一切 提交于 2019-12-23 17:08:16
问题 I have run a sklearn - Principal Component Analysis on my data with 3 principal components (PC1, PC2, PC3). The data looks like this (it's a pandas DataFrame): Here is the code for plotting the principle components: from mpl_toolkits.mplot3d import axes3d import matplotlib.pyplot as plt %matplotlib fig = plt.figure() ax = fig.gca(projection='3d') ax.set_title('3D Scatter Plot') ax.set_xlabel('PC1') ax.set_ylabel('PC2') ax.set_zlabel('PC3') ax.view_init(elev=12, azim=40) # elevation and angle

奇异值分解(SVD)原理及应用

若如初见. 提交于 2019-12-23 13:45:11
一、奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧: 1)特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。我这里引用了一些参考文献中的内容来说明一下。首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵: 它其实对应的线性变换是下面的形式: 因为这个矩阵M乘以一个向量(x,y)的结果是: 上面的矩阵是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换(每一个对角线上的元素将会对一个维度进行拉伸变换,当值>1时,是拉长,当值<1时时缩短),当矩阵不是对称的时候,假如说矩阵是下面的样子: 它所描述的变换是下面的样子:   这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最主要的变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换

PCA降维及SVD

荒凉一梦 提交于 2019-12-23 12:37:36
PCA降维 1.相关背景 我们在实际工作中经常需要分析不同组呈现来的成千上百个指标的数据,这些指标之间经常有一些相关性指标,比如厘米和英尺,这样的指标我们只要保留一个就可以,还有一些隐藏的高度相关的特征,以通过降维方法来进行数据预处理。 2. 数据降维 主成分分析(Principal Component Analysis,简称PCA)是一种常用的降维方法,属于无监督学习。所谓降维就是将数据指标从高维度减到低维度,因为低维度的数据有如下优点: 1) 更容易进行数据分析和数据可视化 2)更容易进行数据存储 3)降低算法的运行成本 3.PCA原理 样本点分布在正交属性空间中,我们如何找到一个超平面(直线的高维推广)对所有样本点最合适的表达? 1.最近重构性:样本点到这个超平面的距离足够近(类似线性回归) 2.最大可分性:样本点到这个超平面的投影尽可能分开(方差最大化) 以上两种方式得到的主成分分析的推导是等价的,下面从”最大可分析“进行推导PCA的过程。 3.1 向量的表示及基变换 3.1.1 向量的內积 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s α ( α 为 两 个 向 量 的 夹 角 ) \vec a\cdot\vec b = |\vec a||\vec b|cos\alpha(\alpha为两个向量的夹角) a ⋅ b = ∣ a ∣ ∣ b ∣ c o

PCA

∥☆過路亽.° 提交于 2019-12-23 08:30:17
1.原理:https://blog.csdn.net/program_developer/article/details/80632779 PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。 PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中, 第一个新坐标轴 选择是原始数据中 方差最大的方向 , 第二个新坐标轴 选取是 与第一个坐标轴正交的平面中使得方差最大 的, 第三个轴是与第1,2个轴正交的平面中方差最大的 。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现, 大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0 。于是,我们可以忽略余下的坐标轴, 只保留前面k个含有绝大部分方差的坐标轴 。 这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。 如何得到这些包含最大差异性的主成分方向呢? 通过 计算数据矩阵的协方差矩阵 ,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。 得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵

How to Use PCA to Reduce Dimension

有些话、适合烂在心里 提交于 2019-12-22 17:47:02
问题 Input : LBP Feature extracted from an image with dimension 75520, so the input LBP data contains 1 row and 75520 columns. Required Output: Apply PCA on input to reduce the dimension, Currently my code look like, void PCA_DimensionReduction(Mat &src, Mat &dst){ int PCA_DIMENSON_VAL 40 Mat tmp = src.reshape(1,1); //1 rows X 75520 cols Mat projection_result; Mat input_feature_vector; Mat norm_tmp; normalize(tmp,input_feature_vector,0,1,NORM_MINMAX,CV_32FC1); PCA pca(input_feature_vector,Mat(),CV

PySpark PCA: avoiding NotConvergedException

血红的双手。 提交于 2019-12-22 09:38:32
问题 I'm attempting to reduce a wide dataset (51 features, ~1300 individuals) using PCA through the ml.linalg method as follows: 1) Named my columns as one list: features = indi_prep_df.select([c for c in indi_prep_df.columns if c not in{'indi_nbr','label'}]).columns 2) Imported the necessary libraries from pyspark.ml.feature import PCA as PCAML from pyspark.ml.linalg import Vector from pyspark.ml.feature import VectorAssembler from pyspark.ml.linalg import DenseVector 3) Collapsed the features to

Python PCA plot using Hotelling's T2 for a confidence interval

我们两清 提交于 2019-12-22 08:14:32
问题 I am trying to apply PCA for Multi variant Analysis and plot the score plot for first two components with Hotelling T2 confidence ellipse in python. I was able to get the scatter plot and I want to add 95% confidence ellipse to the scatter plot. It would be great if anyone know how it can be done in python. Sample picture of expected output: 回答1: This was bugging me, so I adopted an answer from PCA and Hotelling's T^2 for confidence intervall in R in python (and using some source code from

How to drop a perpendicular line from each point in a scatterplot to an (Eigen)vector?

蓝咒 提交于 2019-12-22 05:05:04
问题 I'm creating a visualization to illustrate how Principal Components Analysis works, by plotting Eigenvalues for some actual data (for the purposes of the illustration, I'm subsetting to 2 dimensions). I'm want a combination of these two plots from this fantastic PCA tutorial, only for my real data. I can plot the vectors and all ok: Person1 <- c(-3,1,1,-3,0,-1,-1,0,-1,-1,3,4,5,-2,1,2,-2,-1,1,-2,1,-3,4,-6,1,-3,-4,3,3,-5,0,3,0,-3,1,-2,-1,0,-3,3,-4,-4,-7,-5,-2,-2,-1,1,1,2,0,0,2,-2,4,2,1,2,2,7,0

特征分解和PCA

别来无恙 提交于 2019-12-22 00:06:52
文章目录 1.线性代数基础 标量、向量、矩阵和Tensor 线性代数的正确打开方式 Ax=b的行视图 Ax=b的列视图 线性相关和线性无关 Span、基和子空间(subspace) 四个基本子空间 四个基本子空间的关系 利用子空间重新看待线性方程组的解 可逆矩阵 2.特征分解 方针的特征值和特征向量 特征分解的性质 对称矩阵的特征分解 特征分解和子空间的关系 3.PCA 优化问题 PCA PCA举例 1.线性代数基础 标量、向量、矩阵和Tensor 线性代数的正确打开方式 Ax=b的行视图 Ax=b的列视图 线性相关和线性无关 Span、基和子空间(subspace) 四个基本子空间 四个基本子空间的关系 利用子空间重新看待线性方程组的解 可逆矩阵 2.特征分解 方针的特征值和特征向量 特征分解的性质 对称矩阵的特征分解 特征分解和子空间的关系 3.PCA 优化问题 PCA PCA举例 来源: CSDN 作者: LotusQ 链接: https://blog.csdn.net/qq_30057549/article/details/103648352

Confidence intervals of loadings in principal components in R

坚强是说给别人听的谎言 提交于 2019-12-21 21:55:00
问题 I am using following code for principal component analysis of first 4 columns of iris data set using prcomp function in R: > prcomp(iris[1:4]) Standard deviations: [1] 2.0562689 0.4926162 0.2796596 0.1543862 Rotation: PC1 PC2 PC3 PC4 Sepal.Length 0.36138659 -0.65658877 0.58202985 0.3154872 Sepal.Width -0.08452251 -0.73016143 -0.59791083 -0.3197231 Petal.Length 0.85667061 0.17337266 -0.07623608 -0.4798390 Petal.Width 0.35828920 0.07548102 -0.54583143 0.7536574 How can I get confidence