pca

Principal Component Analysis in MATLAB

为君一笑 提交于 2019-11-27 16:30:18
问题 I'm implementing PCA using eigenvalue decomposition for sparse data. I know matlab has PCA implemented, but it helps me understand all the technicalities when I write code. I've been following the guidance from here, but I'm getting different results in comparison to built-in function princomp. Could anybody look at it and point me in the right direction. Here's the code: function [mu, Ev, Val ] = pca(data) % mu - mean image % Ev - matrix whose columns are the eigenvectors corresponding to

PCA LDA降维测试

谁说胖子不能爱 提交于 2019-11-27 16:12:43
测试概述 该实验的目的是测试LDA(Linear Discriminant Analysis,线性判别分析)的降维效果(主要是训练时间),同时引入了PCA(Principal components analysis,主成分分析)作为比较。 程序比较简单,降维算法和训练算法均是调用python的sklearn库的函数,所有代码都在程序中给出。 每次使用相同数据集,通过三种不同方式测试,分别是直接训练、PCA降维后训练、LDA降维后训练。 文件说明 code 测试程序文件夹,内含LDA_test.py程序 dataset 测试数据集文件夹 output 测试结果截图文件夹 测试环境 操作系统 win10 64位 CPU AMD Ryzen 5 2600x 6-core 3.60GHz 内存 16GB IDE/编辑器 PyCharm Python版本 3.6 LDA_test.py代码 import numpy as np from pandas import read_csv import time from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.decomposition import PCA from sklearn.svm import SVC from

6、降维

[亡魂溺海] 提交于 2019-11-27 15:49:53
当特征选择完成后,可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。常见的降维方法除了以上提到的基于L1惩罚项的模型以外,另外还有主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样: PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能 。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。 来源: https://www.cnblogs.com/pacino12134/p/11369036.html

Incremental PCA on big data

限于喜欢 提交于 2019-11-27 14:57:59
问题 I just tried using the IncrementalPCA from sklearn.decomposition, but it threw a MemoryError just like the PCA and RandomizedPCA before. My problem is, that the matrix I am trying to load is too big to fit into RAM. Right now it is stored in an hdf5 database as dataset of shape ~(1000000, 1000), so I have 1.000.000.000 float32 values. I thought IncrementalPCA loads the data in batches, but apparently it tries to load the entire dataset, which does not help. How is this library meant to be

[数据科学] 通过基因表达监测进行肿瘤预测

淺唱寂寞╮ 提交于 2019-11-27 12:52:50
简介 通过基因表达监测(DNA微阵列)对新的癌症病例进行分类,从而为鉴定新的癌症类别和将肿瘤分配到已知类别提供了一般方法。这些数据用于对患有急性髓性白血病(AML)和急性淋巴细胞白血病(ALL)的患者进行分类。 代码实例 导入依赖库 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline 载入数据 labels_df = pd.read_csv('actual.csv', index_col = 'patient') test_df = pd.read_csv('data_set_ALL_AML_independent.csv') data_df = pd.read_csv('data_set_ALL_AML_train.csv') print('train_data: ', data_df.shape, '\n test_data: ', test_df.shape, '\n labels: ', labels_df.shape) # labels_df.shape data_df.head() #查看前5行(默认前5行) 清理数据 test_cols_to_drop = [c for c in test_df.columns if 'call' in c]

Factor Loadings using sklearn

徘徊边缘 提交于 2019-11-27 11:47:24
问题 I want the correlations between individual variables and principal components in python. I am using PCA in sklearn. I don't understand how can I achieve the loading matrix after I have decomposed my data? My code is here. iris = load_iris() data, y = iris.data, iris.target pca = PCA(n_components=2) transformed_data = pca.fit(data).transform(data) eigenValues = pca.explained_variance_ratio_ http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html doesn't mention how this

无监督学习——降维

亡梦爱人 提交于 2019-11-27 11:12:37
降维算法应用:数据压缩、数据可视化。 主成分分析 ( PCA ) 是最常见的降维算法。 在 PCA 中,我们要做的是找到一个方向向量( Vector direction ), 当我们把所有的数据 都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。方向向量是一个经过原点 的向量,而投射误差是从特征向量向该方向向量作垂线的长度。 PCA算法推导 关于PCA算法推导我觉得还是挺复杂的。之前在做数模比赛时,经常用到PCA算法, 但是都是拿来直接套用解决实际问题,根本没有仔细思考原理推导。 这里总结一下PCA算法原理推导中用到的两个重要原理: 特征值分解矩阵和SVD分解矩阵。 1. 特征值分解矩阵原理 (1) 特征值与特征向量 如果一个向量v是矩阵A的特征向量,将一定可以表示成下面的形式: 其中,λ是特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。 (2) 特征值分解矩阵 对于矩阵A,有一组特征向量v,将这组向量进行正交化单位化,就能得到一组正交单位向量。 特征值分解 ,就是将矩阵A分解为如下式: 其中,Q是矩阵A的特征向量组成的矩阵, 则是一个对角阵,对角线上的元素就是特征值。 2. SVD分解矩阵原理 奇异值分解是一个能适用于任意矩阵的一种分解的方法,对于任意矩阵A总是存在一个奇异值分解: 假设A是一个m*n的矩阵,那么得到的U是一个m*m的方阵

从VCF文件画PCA图

血红的双手。 提交于 2019-11-27 08:10:59
1. 使用plink 获取 SNP_test.eigenvec 文件 plink --maf 0.05 --allow-extra-chr --vcf SNP.vcf --pca header tabs -out SNP_test eigenvec 文件格式如下: FID IID PC1 PC2 PC3 PC4 F2 H -0.101378 -0.366086 0.778957 -0.498928 F2 N -0.145292 -0.590011 -0.616724 -0.500428 F P -0.561637 0.653219 -0.0865941 -0.500371 M P 0.808194 0.30195 -0.0733369 -0.500271 2. 使用R进行画图: #!/bin/R library("FactoMineR") library("factoextra") data <- read.table("SNP_test.eigenvec",header = TRUE,sep="\t") data3 <- data[,-1] data2 <- as.data.frame(data3) pdf("SNP_test_pca.pdf") ggplot(data2, aes(x=data$PC1,y=data$PC2,color=data$IID)) + geom

千万不要小看PCA,大神对PCA的理解

南笙酒味 提交于 2019-11-27 07:50:09
学习PCA的时候感觉这是个什么玩意,挺简单呀,为自己的无知感到羞愧。本片学习的不仅仅是PCA的深入理解,更是学习大神们思考问题的方式。 作者:史博 链接:https://www.zhihu.com/question/30094611/answer/275172932 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 千万不要小看PCA , 很多人隐约知道求解最大特征值,其实并不理解PCA是对什么东西求解特征值和特征向量。 也不理解为什么是求解特征值和特征向量。 要理解到Hinton对PCA的认知,需要跨过4个境界,而上面仅仅是第1个境界的问题。 为什么要理解PCA? 其实深度学习在成为深度学习以前,主要是特征表达学习, 而特征表达学习追溯到始祖象阶段,主要是无监督特征表达PCA和有监督特征表达LDA。 对了这里LDA不是主题模型的LDA,是统计鼻祖Fisher搞的linear discriminant analysis(参考“ Lasso简史 ”)。 而Hinton在这方面的造诣惊人, 这也是为什么他和学生一起能搞出牛牛的 t-Distributed Stochastic Neighbor Embedding (t-SNE) 。 至于t-SNE为啥牛, 这里给两个对比图片, 然后我们再回到PCA,以后有机会再扩展! t-SNE vs PCA:

In sklearn.decomposition.PCA, why are components_ negative?

冷暖自知 提交于 2019-11-27 06:41:11
问题 I'm trying to follow along with Abdi & Williams - Principal Component Analysis (2010) and build principal components through SVD, using numpy.linalg.svd. When I display the components_ attribute from a fitted PCA with sklearn, they're of the exact same magnitude as the ones that I've manually computed, but some (not all) are of opposite sign. What's causing this? Update : my (partial) answer below contains some additional info. Take the following example data: from pandas_datareader.data