非监督的降维算法--PCA

PCA是一种非监督学习算法,它能够在保留大多数有用信息的情况下,有效降低数据纬度。

它主要应用在以下三个方面:

1. 提升算法速度

2. 压缩数据,减小内存、硬盘空间的消耗

3. 图示化数据,将高纬数据映射到2维或3维

总而言之,PCA干的事情就是完成一个将原始的n维数据转化到k维的映射。其中,k<n

它的核心算法如下:

1. 将数据均一化

x‘ = [x-mean(x)] / range(x)

2. 计算它的协方差矩阵

即:Sigma = 1/m * x‘ * x

3. 进行svd分解,计算特征向量

[U, S, V] = svd(Sigma)

选出U中的前k列,就可以得到映射公式啦

即:

Ureduce = U(:, 1:k);

z = Ureduce‘*x;

其中,z便是降维后映射得到的特征矩阵。

至于如何选择k,那要看我们决定保留原始信息的多少变化范围(variance)。当我们想保留

原始信息99%的variance时:

即:将S中前k个对角线元素相加,最小的能使相加和大于整个S的对角线和的99%的k便是我们应选择的k。

有压缩,那自然就有相应的还原。不过PCA本身的压缩是有损压缩,无法还原为与原来完全一样的值。(当然k=n另当别论)

我们只能够得到原始特征向量(非矩阵)的近似还原值。公式为:

即:Xapprox = Ureduce * Z

在使用PCA时,有几个要注意的地方:

1. 构建机器学习算法时,不要一上来就想要用PCA,一般而言,直接使用原始特征效果会比较好。

PCA是在原始算法过于缓慢,或者内存、硬盘空间实在不够大无法支撑计算时才有必要加入的

2. 不要用PCA来减小过拟合的问题,用regularization才是解决过拟合更为合理的方法。因为

PCA只看特征矩阵来决定如何减小特征数,而regularization同时看特征矩阵和对应的label来减小过拟合。

时间: 2024-11-07 13:27:33

非监督的降维算法--PCA的相关文章

sklearn中的降维算法PCA和SVD

sklearn中的降维算法PCA和SVD 1 概述 1.1 从什么叫“维度”说开来 1.2 sklearn中的降维算法 2 PCA与SVD 2.1 降维究竟是怎样实现? 2.2 重要参数n_components 2.2.1 迷你案例:高维数据的可视化 2.2.2 最大似然估计自选超参数 2.2.3 按信息量占比选超参数 2.3 PCA中的SVD 2.3.1 PCA中的SVD哪里来? 2.3.2 重要参数svd_solver 与 random_state 2.3.3 重要属性components_

ML: 降维算法-PCA

        PCA (Principal Component Analysis) 主成份分析 也称为卡尔胡宁-勒夫变换(Karhunen-Loeve Transform),是一种用于探索高维数据结构的技术.PCA通常用于高维数据集的探索与可视化.还可以用于数据压缩,数据预处理等.PCA可以把可能具有相关性的高维变量合成线性无关的低维变量,称为主成分( principal components).新的低维数据集会尽可能的保留原始数据的变量.PCA将数据投射到一个低维子空间实现降维.例如,二维数

ML: 降维算法-概述

机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达, y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的).f可能是显式的或隐式的.线性的或非线性的.使用降维的原因: 压缩数据以减少存储量. 去除噪声的影响 从数据中提取特征以便于进行分类 将数据投影到低维可视空间,以便于看清数据的分布 变量(特征)数量相对数据条数有可能过大,从而不符合某些模型的需求.打

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式. y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的).f可能是显式的或隐式的.线性的或非线性的. 目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据.之所以使用降维

【转】四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

最近在找降维的解决方案中,发现了下面的思路,后面可以按照这思路进行尝试下: 链接:http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式. y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的).f可能是显式的或隐式的.线性的或非线性的. 目前大部分降维算法

降维算法中的PCA方法

1 主成分分析(Principal Component Analysis,PCA) 2 线性判别分析(Linear Discriminant Analysis, LDA)研究背景基本知识介绍经典方法介绍总结讨论问题的提出 地理系统是多要素的复杂系统.在地理学研究中,多变量问题是经常会遇到的.变量太多,无疑会增加分析问题的难度与复杂性,而且在许多实际问题中,多个变量之间是具有一定的相关关系的. 因此,人们会很自然地想到,能否在相关分析的基础上,用较少的新变量代替原来较多的旧变量,而且使这些较少的新

PCA 降维算法详解 以及代码示例

转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analysis ( 主成分分析) 最近发现我的一篇关于PCA算法总结以及个人理解的博客的访问量比较高, 刚好目前又重新学习了一下PCA (主成分分析) 降维算法, 所以打算把目前掌握的做个全面的整理总结, 能够对有需要的人有帮助. 自己再看自己写的那个关于PCA的博客, 发现还是比较混乱的, 希望这里能过做好

机器学习算法-PCA降维技术

机器学习算法-PCA降维 一.引言 在实际的数据分析问题中我们遇到的问题通常有较高维数的特征,在进行实际的数据分析的时候,我们并不会将所有的特征都用于算法的训练,而是挑选出我们认为可能对目标有影响的特征.比如在泰坦尼克号乘员生存预测的问题中我们会将姓名作为无用信息进行处理,这是我们可以从直观上比较好理解的.但是有些特征之间可能存在强相关关系,比如研究一个地区的发展状况,我们可能会选择该地区的GDP和人均消费水平这两个特征作为一个衡量指标.显然这两者之间是存在较强的相关关系,他们描述的都是该地区的

k-meas非监督聚类分析

实验名称: k-meas非监督聚类分析 一.实验目的和要求 目的: 加深对非监督学习的理解和认识 掌握聚类方法K-Means算法的设计方法 要求:     根据聚类数据,采用k-Means聚类方法画出聚类中心 二.实验环境.内容和方法 环境:windows 7,python2.6 ,Eclipse,Pydev 内容: 1)   非监督学习的理论基础 2)   动态聚类分析的思想和理论依据 3)   聚类算法的评价指标 三.实验基本原理 K-means算法是很典型的基于距离的聚类算法,采用距离作为