首页 > PCA降维

PCA降维

 

1.1算法流程 

假设有msamples,每个数据有n维。

1. 计算各个feature的平均值,计μj ;Xj(i)表示第i个样本的第j维特征的value

μj = Σm Xj(i)/m

meanVals = mean(dataMat, axis=0)

2. 将每一个feature scaling:将在不同scale上的feature进行归一化;

3. 将特征进行mean normalization

Xj(i)= (Xj(i)-μj)/sj

meanRemoved = dataMat - meanVals #remove mean

4. n×n的协方差矩阵Σ:

image

covMat = cov(meanRemoved, rowvar=0)

5.求取特征值和特征向量:

[U,S,V] = SVD(Σ)

eigVals,eigVects = linalg.eig(mat(covMat))

6. 按特征值从大到小排列,重新组织U

如果使用否则的话应进行排序,并按照该次序找到对应的特征向量重新排列。

eigValInd = argsort(eigVals) 

7. 选择k个分量

按照第五、六步中讲的后,我们得到了一个n×n的矩阵Σ和U,这时,我们就需要从U中选出k个最重要的分量;即选择前k个特征向量,即为Ureduce, 该矩阵大小为n×k

eigValInd = eigValInd[:-(topNfeat+1):-1]  #cut off unwanted dimensions

image

这样对于一个n维向量x,就可以降维到k维向量z了:

image

 1.2PCA降维实验

老师给的数据swissroll.dat

imageimage

自己生成数据:

def make_swiss_roll(n_samples=100, noise=0.0, random_state=None):

    #Generate a swiss roll dataset.

    t = 1.5 * np.pi * (1 + 2 * random.rand(1, n_samples))

    x = t * np.cos(t)

    y = 83 * random.rand(1, n_samples)

    z = t * np.sin(t)

    X = np.concatenate((x, y, z))

    X += noise * random.randn(3, n_samples)

    X = X.T

    t = np.squeeze(t)

    return X, t

 

1Y=100*random.rand(1,2000)

imageimage

2y=21*random.rand(1,2000)

imageimage

2y=1*random.rand(1,2000)

imageimage

1.3PCA

降维实验小结

       可以看到,当y的变化幅度较小时,最后降维之后的数据更类似于xz轴数据,当y变化较大时,更类似于变化较大的yx

转载于:https://www.cnblogs.com/hustlx/p/5264333.html

更多相关:

  • (1)关于点云的配准 1.首先给定源点云与目标点云。 2.提取特征确定对应点 3.估计匹配点对应的变换矩阵 4.应用变换矩阵到源点云到目标点云的变换 配准的流程图 通过特征点的匹配步骤 (1)计算源点云与目标点云的关键点 (2)计算关键点的特征描述子(比如:FPFH等等) (3)匹配特征点计算出对应关系 (4)从特征点之间的对应...

  • 特征点的检测 图像的特征点可以简单的理解为图像中比较显著的点,如轮廓点,较暗区域中的亮点,较亮区域中的暗点等。 原图 轮廓线(可能的特征点) ORB采用FAST(features from accelerated segment test)算法来检测特征点。FAST核心思想就是找出那些卓尔不群的点,即拿一个点跟它周围的...

  • 摘要:  1.pipeline 模式     1.1相关概念     1.2代码示例  2.特征提取,转换以及特征选择     2.1特征提取     2.2特征转换     2.3特征选择   3.模型选择与参数选择     3.1 交叉验证     3.2 训练集-测试集 切分   4.spark新增SparkSession与Da...

  • 本文出处:http://blog.csdn.net/xizhibei ============================= PCA,也就是PrincipalComponents Analysis,主成份分析,是个非常优秀的算法,依照书上的说法: 寻找最小均方意义下,最能代表原始数据的投影方法 然后自己的说法就是:主要用于特征...

  • 因为要设计AR系统,但是纠结是用cube还是Sphere mapping,cube mapping比较熟悉,但是网上关于sphere mapping的资料少之又少,只怪智商太低太原理的又看不懂,所以花了很长时间,主要是靠下面几个链接和那篇论文理解透的。总之,还是用Cube吧。。。。 参考资料: http://www.twinkli...

  • 2009年3月17日 阅读评论 发表评论     这个应该算是补遗漏,去年在MSN Space上写过一篇关于凹凸贴图的,当时写了半天其实写的一点也不明白,呵呵,因为有很多细节其实我也没搞太清楚,现在这里发一点关于其中一个用来完成凹凸贴图计算中将光向量转向顶点所在的切向量的细节,这个在当时的例子中是通过API实现的,这里简单描述一...