【Python机器学习】利用PCA来简化数据——降维技术

通常情况下,我们会显示三维图像或者只显示其相关特征,但是数据往往拥有超出显示能力的更多特征。数据显示并非大规模特征下的唯一难题,对数据进行简化还有以下的原因:

1、使得数据集更易使用;

2、将死很多算法的计算开销;

3、去除噪声;

4、使得结果易懂。

在已标注和未标注的数据上都有降维技术。这里我们主要关注的是未标注数据上的降维技术,该技术同时也可以应用于已标注的数据。

第一种降维方法称为主成分分析PCA)。在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据中方差最大的方向;第二个新坐标轴的选择和第一个坐标轴正交且具有最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。我们会发现,大部分方差都包含在最前面的几个新坐标轴中。因此,我们可以忽略余下的坐标轴,即对数据进行了降维处理。

另一种降维技术是因子分析 。在因子分析中,我们假设在观察数据的生成中有一些观察不到的隐变量。假设观察数据是这些隐变量和某些噪声的线性组合。那么隐变量的数据可能比观察数据的数目少,也就是说通过找到隐变量就可以实现数据的降维。因子分析已经应用于社会科学、金融及其他领域了。

还有一种降维技术就是独立成分分析(ICA)。ICA假设数据使用N个数据源生成的,这一点和因子分析有些类似。假设数据为多个数据源的混合观察结果,这些数据源之间在统计上是相互独立的,而在PCA中只假设数据是不相关的。同因子分析一样,如果数据源的数目少于观察数据的数目,则可以实现降维过程。

在上述3中降维技术中,PCA的应用目前最为广泛。

相关推荐
Mr_Xuhhh3 分钟前
项目需求分析(2)
c++·算法·leetcode·log4j
橙*^O^*安26 分钟前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
NiKo_W30 分钟前
Linux 文件系统与基础指令
linux·开发语言·指令
c++bug30 分钟前
六级第一关——下楼梯
算法
Morri332 分钟前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
工程师小星星35 分钟前
Golang语言的文件组织方式
开发语言·后端·golang
乂爻yiyao35 分钟前
java 代理模式实现
java·开发语言·代理模式
林木辛1 小时前
LeetCode热题 15.三数之和(双指针)
算法·leetcode·双指针
张子夜 iiii1 小时前
实战项目-----Python+OpenCV 实现对视频的椒盐噪声注入与实时平滑还原”
开发语言·python·opencv·计算机视觉
AndrewHZ1 小时前
【3D算法技术】blender中,在曲面上如何进行贴图?
算法·3d·blender·贴图·三维建模·三维重建·pcg