瞧这里!完完全全说透PCA算法原理外加代码实现!

SVM(支持向量机)算法原理和实际应用 的说法是 1 对svm有个直观的了解,最好的解释是下面这个 http://www.zhihu.com/question/21094489 https://www.reddit.com/r/MachineLearning/comments/15zrpp/please_explain_support_vector_machines_svm_like_i/ 阅读详情

点击上方“AI派”,选择“星标”公众号

第一时间获取价值内容

AI派在读学生小姐姐Beyonce

Java实战项目练习群

长按识别下方二维码,按需求添加

扫码添加Beyonce小姐姐

扫码关注

进Java学习大礼包

    众所周知,PCA(principal component analysis)是一种数据降维的方式,能够有效的将高维数据转换为低维数据,进而降低模型训练所需要的计算资源。

    以上是比较官方的说法,下面是人话(正常人讲的话)版。

    pca就是一种能够有效压缩数据的方法!打个不太准确的例子:我们现在有一个描述人的健康状况的数据:(年龄,身高,体重,地区,血压,心率,肺活量,体温,体脂),也就是说(年龄,身高,体重,地区,血压,心率,肺活量,体温,体脂)这些东西是特征,而这些特征对应的标签是健康状况:健康/亚健康/不健康。那么pca就是通过一些方法,将这9个特征压缩到只有4个,3个甚至更少的特征(暂且称之为x1, x2, x3, x4),但是我们仍能用这些特征来准确预测它们对应的健康状况。

    在这里补充一下,在数学/机器学习中,我们会把特征抽象为向量,比如上面提到的健康状况的数据:(年龄,身高,体重,地区,血压,心率,肺活量,体温,体脂),我们会抽象为(18, 180, 70, 广东, 100, 80, 5000, 37, 0.1), 其中地区这一项显得与众特别,毕竟其他的维度都是数值,就它是文字。我们把这样的维度称为类别,因为它是在有限的选项中选出来的(从世界上所有的地区中取一个),在计算机中表示这样的信息,我们可以有很多方式,但是为了简化难度,这边我就暂且不搞,直接把这一列删掉。于是乎我们的数据(其实就是向量!)就是(18, 180, 70, 100, 80, 5000, 37, 0.1),值得一提的是,这样的一个数据是属于一个实体的(也就是说这是描述一个人的健康状况的),在机器学习中,我们倾向于将一个实体的数据排成一列,也就是(18, 180, 70, 100, 80, 5000, 37, 0.1)^T(转置)。

    

    本文要介绍的目录为:

  • 使用PCA的必要性

  • PCA的本质

  • 前置知识的介绍

  • PCA的数学原理

  • PCA的思想

  • PCA的实现

使用PCA的必要性

     

    前面说了,pca就是将高维(很多列属性)数据转换为低维(较少列)数据的方法,同时保留大部分信息(可以用保留的信息准确预测)。但是我们可能会想:如果我不压缩的话,那我不就可以有100%的数据吗?我闲着没事干压缩干哈?其实我一开始使用的时候也有这样的疑惑,因为我一开始是用在图像上的,而一个图像只有500多个维度(列)的数据,使用pca压缩到100列可以保存原始数据95%的信息,但是我发现我用压缩的数据和不压缩的数据对模型的训练速度并没有什么影响。。。但是后来我做其他一些有500000维度的数据的时候,发现使用pca将维度降到5000就能保存接近98%的数据,而且训练速度可以提升数十倍!于是我就成了pca的脑残粉了。。。所以pca在应对高维度数据的时候是有奇效的!它不仅可以有效减少训练时间而且还可以防止过拟合,前面一点上文已给出原因,防止过拟合在下文给出。

PCA的本质

    其实pca的本质很简单,上面也有说,就是将高维度数据转换到低维度,不过在这里为了让大家能够有所体会,我使用2维数据降到1维在解释这点。

    如上图所示,假设我们的原始数据A, B, C是在直角坐标系中的三个点,它们的坐标分别为A(x_a, y_a), B(x_b, y_b), C(x_c, y_c),那么我们现在想要使用pca,将这三个在平面上的点降维到直线上(也就是上图中黄色的线上)。那么现在的问题就是:

  • 平面中的A, B, C点(高维数据)可以通过怎样的映射关系降维到黄线上(也就是高维的数据如何在低维中表示)。

  • 这条黄线(就是低维)怎么求/确定?

前置知识的介绍

    对于上面提到的题一个问题(如何将高维度数据映射到低维度中),我们需要先知道数据点如何被表示。

    这看起来似乎是一个很蠢的问题,因为答案貌似很简单,比如图xx中的点ABC不就是A(x1, y1), B(x2, y2), C(x3, y3)吗?对滴!这个答案是没有问题的,但是这样的答案并不具有普遍性,也就是说如果我们的坐标系发生了变化(类比直角坐标系变化到极坐标系),那就不能再用(x, y)这样的形式进行表示了,那么我们这里需要更加普遍的方法。

    我先说答案,再说为什么是这个答案~。答案就是通过坐标系的基向量来表示数据(向量)。如图所示,我们取i和j作为基向量(在这里i的坐标为(1,0), j的坐标为(0, 1)),那么数据A(1, 2),就可以表示为(1*i, 2*j)。于是我们把这个问题拓展开来,二维上的数据点可以通过(基向量i*数据点在基向量i上的投影长度,基向量j*数据点在基向量j上的投影长度)表示,那么三维上的数据点也可以用这样的方式,于是乎n(n>=2)维上的点可以表示为:(基向量i*数据点在基向量i上的投影长度,基向量j*数据点在基向量j上的投影长度,…,基向量n * 数据点在基向量n上的投影长度),于是乎我们这个子问题就解决了,即找到了一种在不同维度坐标系下表示数据的方法。

PCA的数学原理

    那么接下来的问题就是,我们如何把一个数据点从一个维度转变到另一个维度。

    在解决这个问题之前,我们先用矩阵描述一下上一个问题,比如我们现在基向量为(0,1)和(1,0)的坐标中表示(3,2),则可以写作为:

    假设我们现在有一个新的坐标系,这个坐标系的基向量 i 和 j 在普通平面直角坐标系中的表示是(0, -1)和(1, 0),(其实就是普通直角坐标系顺时针旋转90度), 如下图所示(黑色为新的坐标系):

    A点在普通直角坐标系中为(3, 2),在新的直角坐标系中为(-2, 3)。新的坐标(-2, 3)可以通过以下方式计算:

    于是乎我们找到了二维空间下数据变换的方式:

新的基向量矩阵 * 原基向量矩阵的转置 * 原数据向量 = 新的数据向量

    也就是说我们想要将高维数据转换为低维数据可以通过:

低维空间的基向量矩阵 * 高维空间的基向量矩阵的转置 * 高维数据向量 = 低维数据向量

    而参考上图,我们可以知道‘高维空间的基向量矩阵的转置 * 高维数据向量’是等于高维数据向量本身的,于是乎可以得到:

低维空间的基向量矩阵 * 高维数据向量 = 低维数据向量(此处应有数学公式)

    接下来我们解决第二个大问题,也就是如下这条黄线(就是低维)怎么求/确定?

   

PCA的思想

    这样要确定低维,要么就要给出标准,也就是什么样的低维是好的?

    在这里先确定两个标准,稍后解释为什么确定这两标准:

  • 不同特征之间的方差尽可能大。

  • 不同特征之间的协方差等于0。

设立这两个标准的原因是这样的:

    先做一个前提假设哈!

    假设我们现在有两个样本(在这个例子中就是两个人),他们的健康状况如下:

    好了,我要来解释了。

    第一个标准的解释其实不算太难,假设我们现在要处理上面的数据,也就是要将小王和老丁的数据的进行降维,而他们的健康数据包含9个特征(健康水平是算作label而不是特征X,相当于y=f(X)中的y), 理想状态是每个特征描述的东西都是完全不同的(因为特征描述的是对象的特性,如果两个特征描述的东西很类似甚至可以被代替,那就浪费了大把的计算资源了。比如说现在有这样两个特征,第一个特征是:是否为男性,第二个特征是:是否为女性。如果第一个特征为真,则第二个特征必定为假,也就是这两个东西描述的都是同一个特性,就是性别),也就是说在原始数据中,不同的特征它们之间的方差应该是很大的(可以理解为方差越大,这两个东西越不同)。而每个特征之间我们希望降维之后它们也和原来的数据一样,不同的特征之间保持有大的方差,于是乎就有了第一个标准:不同特征之间的方差尽可能大。

    第二个标准的解释其实和第一个标准是类似的,只不过形式不同。上面说过了,我们是希望原数据中不同的特征降维后还是不同,而希望它们不同就等价于说它们之间不相关,而协方差就是用来衡量两个特征之间的相关程度的,当协方差等于0的时候,就说明这两个特征之间是无关的。所以就有了这个标准:不同特征之间的协方差等于0。

    好了!现在我们已经有了处理标准了,接下来我们就要把这个标准给抽象化(就是写成数学公式)方便我们计算!

    我重新上面的数据贴出来:

写成向量的形式

让我们先写出标准1的公式吧:

    其中X就是一个特征的数据,用我们上面的例子来说,假设X是身高,则X为(180, 175),则/mu就是177.5,m等于2,于是就求得Var(X) = xxx,同样的道理可以用来算年龄呀,血压呀,心率呀啥的。

    这里有个技巧,就是我们先对X进行处理,就是将其减去它的均值:X = X - /mu,于是乎我们的公式就变成了:

标准2的公式如下:

    我们用上面的技巧,于是乎我们的公式就变成了:

    现在我们把这两个标准给写成数学的公式了,这样我们就可以用计算机来算了。但是这两个公式是分开的。。(就是说他们是两个公式),这样并不太方便于我们计算,我们要像个办法把他们组合起来,这样优化起来才能”联动”。在这里我介绍一个矩阵,叫做协方差矩阵:

    可以发现,这个矩阵的正对角线就是我们的标准1,也就是方差,而其他的位置则为协方差。所以我们的目的就是使得协方差的位置为0,然后选取方差最大的值(选取方差最大的值可能有点疑惑,是这样的:我们的特征矩阵X是可以有很多特征的,比如年龄,血压,心率,肺活量等等,而方程右边的a和b就是这些特征中的一个,那么势必有些特征的方差比较大,有些特征的方差比较小。而那些方差比较小的特征我们就觉得它们没有那么好的区分效果,而那些方差大的就觉得它们有很好的区分效果,于是乎就把它们选中)。

    于是乎我们的目标就变成了,通过优化方法,使得协方差矩阵对角化(就是非对角线的位置值为0)。接下来是很简单的数学推导了。

    假设我们最终的协方差矩阵(就是上面说的对角化后的矩阵)为D,X为我们的特征矩阵,C为我们特征矩阵X的协方差矩阵,我们要找到一个矩阵P,使得我们的X特征矩阵可以变成D矩阵。

    也就是说,我们现在的目标就变成了找到一个矩阵P,使得矩阵以上等式成立。这里需要一丢丢线性代数的知识,主要是关于实对称矩阵的知识,但是这里就不说啦!

    最后我们就可以得到矩阵P,这个矩阵P是由我们的特征X矩阵找到的,你也可以理解为它蕴含着我们X矩阵的信息,而这些信息的重要性是越往上的越重要,比如:

    则第一行中的(0.2 0.3)的重要性要高于第二行的(0.4 0.2),然后我们想将我们的数据降到一维度,则:

    其中X是原始特征,newX是降维后的特征,而(0.2 0.3)就是我们P矩阵的第一列。从之前的知识可以知道,我们是将X矩阵降维到一维。

PCA的实现

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

定义一个均值函数。

#计算均值,要求输入数据为numpy的矩阵格式,行表示样本数,列表示特征    
def meanX(dataX):
    return np.mean(dataX,axis=0)#axis=0表示依照列来求均值。假设输入list,则axis=1

开始实现pca的函数:

def pca(XMat, k):
    """
    XMat:传入的是一个numpy的矩阵格式,行表示样本数,列表示特征    
    k:表示取前k个特征值相应的特征向量
    finalData:指的是返回的低维矩阵
    reconData:相应的是移动坐标轴后的矩阵
    """
    average = meanX(XMat) 
    m, n = np.shape(XMat)
    data_adjust = []
    avgs = np.tile(average, (m, 1))
    data_adjust = XMat - avgs
    covX = np.cov(data_adjust.T)   #计算协方差矩阵
    featValue, featVec=  np.linalg.eig(covX)  #求解协方差矩阵的特征值和特征向量
    index = np.argsort(-featValue) #依照featValue进行从大到小排序
    finalData = []
    if k > n:
        print("k must lower than feature number")
        return
    else:
        #注意特征向量时列向量。而numpy的二维矩阵(数组)a[m][n]中,a[1]表示第1行值
        selectVec = np.matrix(featVec.T[index[:k]]) #所以这里须要进行转置
        finalData = data_adjust * selectVec.T 
        reconData = (finalData * selectVec) + average  
    return finalData, reconData

     到这里整个流程基本就结束了~

文末福利

各位猿们,还在为记不住API发愁吗,哈哈哈,最近发现了国外大师整理了一份Python代码速查表和Pycharm快捷键sheet,火爆国外,这里分享给大家。

这个是一份Python代码速查表

下面的宝藏图片是2张(windows && Mac)高清的PyCharm快捷键一览图

怎样获取呢?可以添加我们的AI派团队的Beyonce小姐姐

一定要备注【高清图】哦

????????????????????

➕我们的Beyonce小姐姐微信要记得备注【高清图】哦

来都来了,喜欢的话就请分享、点赞、在看三连再走吧~~~

最详细的SVM数学模型讲解 背景: 支持向量机SVM常用于二分类问题,其输入的数据形式如[x1,x2,x3...,xn,y],其中x1,x2,...,xn为特征值,y为结果值,为1和-1。 点到直线的距离: 点到超平面的距离: ... 阅读详情

相关推荐

【机器学习实战】——SVM支持向量机

【引言】 SVM可以说是目前最好的现成的分类器,即不加任何修改就可以直接使用。本文对应《机器学习实战》第六章内容,具体理论知识可以联系西瓜书第七章内容和博客笔记,此处只介绍SMO算法的实现与学习心得,以及关于核函数的选择和实现。 1、基于最大间隔分隔数据 支持向量机: 优点:泛化错误率低,计算开销小,可解释性强; 缺点:调参工作量大,核函数敏感性强; 适用数据类型:标称型和数值型 线性可分:在...

锟金铐鏜鏜鏜 420

SVM支持向量机

划分数据集的示例 当输入特征的维度低,可以自己划线,划分不同的数据集。 当输入特征的维度很大(3维/几十维),如何做一个“超平面”,划分不同的数据集。 # 一个蛋糕,切3刀 分成8等分,二维做不到,三维可以的! 分类 1.线性可分情况 简述 简述:找一个平面,向上向下平行移动该平面,使之擦过一些向量(支持向量),间距(margin)表示为d。 方法目的:让d作为优化指标,使d尽可能大;取中间作为平面就行了; 方法优点:只与支持向量有关,与其他向量无关,适用于小样本;.

bijingrui的博客 412

PCA 原理及 Python 实现

PCA是机器学习中一个很重要的算法,这篇文章主要是对PCA算法的一个总结。

lguduy的博客 1万+

SVM入门

原帖http://www.blogjava.net/zhenandaci/   (一)SVM的八股简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。支持向量机方法是建立在统计学习理论的VC 维理论和结构

rushwolfbupt的专栏 916

PCA的原理及MATLAB实现

相关文章PCA的原理及MATLAB实现UFLDL教程:Exercise:PCA in 2D & PCA and Whitening----------------------------本文参考: http://blog.youkuaiyun.com/gwh111/article/details/11742735 http://www.mathworks.com/matlabcentral/newsread

jiandanjinxin的专栏 2万+

PCA降维原理及sklearn代码实现

PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。本文从实际问题代入探索PCA,尽量避免纯数学的推导,更简单明了地讲解PCA原理。 1.数据的向量表示及降维问题的产生 一般情况下,在数据挖掘和机器学习中,数据被表示为向量来进行处理,就拿我近期做的...

Y_hero的博客 5935

PCA算法原理及实现

作者:Jones来源:海边的拾遗者 众所周知,PCA(principal component analysis)是一种数据降维的方式,能够有效的将高维数据转换为低维数据,进而降低模...

数据森麟 8589

PCA原理以及算法实现

一.算法介绍PCA(Princiapal Component Analysis),主成分分析,是统计数据分析、特征提取和数据压缩的经典方法,起源于Pearson的早期工作。实际上,PCA主要作用就是将一个存在信息冗余的多维空间变成一个无信息冗余的较低维空间,是一种通用的降维方法。举个例子,从一幅数字图像中取出一个8x8的像素窗口,首先通过逐行扫描,变换到向量xx,其元素为64个像素的灰度值,在实时的

lanyizheng blog 3466

PCA原理

PCA 各位,久违了~ 什么是PCA? 什么是PCA呢?这是一个问题,什么样的问题?简单而又复杂的问题,简单是因为百度一下就会出现一大堆的解释,复杂是因为它里面蕴含的内容还是很多的,值得我们仔细研究研究。 PCA 取自其英文的三个单词的首字母:Principle component analysis。中文名字:主成分分析。恐怕大家很早就知道PCA是个什么东东,并且还用过matlab、python、...

PiggyGaGa的博客 11万+

高通Sensor Tuning实战:手把手教你用Chromatix生成并打包bin文件(附避坑指南)

本文详细介绍了高通Sensor Tuning的全流程实战,从Chromatix配置到Bin文件加载验证。通过手把手教程,帮助开发者掌握Chromatix工具链的使用,避免常见配置错误,提升调试效率。特别针对kalama等新一代平台,提供经过验证的解决方案和避坑指南。

ios99的博客 483

Ubuntu 22.04 安装 PostgreSQL + AGE + pgvector 完全指南

本教程详细介绍了在Ubuntu 22.04服务器上安装PostgreSQL数据库,并为其添加AGE图数据库扩展和pgvector向量搜索扩展的步骤。首先,更新系统并安装PostgreSQL,然后通过源码构建并安装AGE和pgvector扩展。接着,配置PostgreSQL以使用这些扩展,并可选地允许远程连接。教程还包括创建用户、设置密码、验证安装以及安装后的优化建议。最后,提供了常见问题的解决方法。通过本教程,用户可以在同一数据库中处理关系型数据、图数据和向量数据,为现代应用程序提供强大的数据支持。

这个是个人博客,记录生活中的一些日常。 1743

PCA算法的原理以及代码实现

PCA算法是如何实现的?1、对原始数据零均值化(中心化)2、求协方差矩阵3、对协方差矩阵求特征向量和特征值

Exception_3212536934的博客 5699

一文入门BMS(电池管理系统)

本文章是基于曾师兄的文稿《具有组网扩展功能的新能源汽车电池管理系统》而写的文章。该文章主要是对BMS(Battery Management System,电池管理系统)做一些简要的介绍,借此助各位也助我入门BMS。有纰漏请指出,转载请说明。学习交流请发邮件 1280253714@qq.com。

weixin_45817947的博客 2万+

PCA算法原理及python实现

【原理】PCA算法原理 1.PCA算法 PCA(principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据压缩算法。在PCA中,数据从原来的坐标系转换到新的坐标系,由数据本身决定。转换坐标系时,以方差最大的方向作为坐标轴方向,因为数据的最大方差给出了数据的最重要的信息。第一个新坐标轴选择的是原始数据中方差最大的方法,第二个新坐标轴选择的是与第一个新坐标轴正交且方差次大的方向。重复该过程,重复次数为原始数据的特征维数。 通过这种方式获得的新的坐标系,我们发现..

weixin_56273009的博客 8678

Xilinx实战-深入AXI UART Lite IP核的配置与调试

本文详细介绍了Xilinx FPGA中AXI UART Lite IP核的配置与调试方法,包括Vivado环境下的IP核设置、关键参数优化、寄存器操作及常见问题排查。通过实战案例和代码示例,帮助开发者快速掌握AXI接口的串口通信技术,提升嵌入式系统开发效率。

weixin_29189377的博客 228

深入解析Sigma Delta调制器 —— 从电流采样到数字信号处理的完整链路

本文深入解析了Sigma Delta调制器的工作原理与应用。通过剖析过采样、噪声整形与负反馈核心机制,并结合AMC1306等实例,详细阐述了从电流采样到数字信号处理的完整链路。该技术凭借其高精度和高抗干扰能力,在ADC、电流测量及音频处理等领域发挥着关键作用。

ttt77的博客 645

PCA降维原理及其代码实现(附加 sklearn PCA用法参数详解)

学习笔记 本篇博文绝大多数来源于书籍《机器学习实战》 记录自己的学习笔记而已。 降维作用 (1)使得数据集更容易使用 (2)降低很多算法的计算开销 (3)去除噪声 (4)多维数据不容易画图,降低维度容易画图,使结果容易理解。 优点:降低数据的复杂性,识别出最重要的多个特征。 缺点:不一定需要,有可能损失掉有用信息,仅适用于数值数据。 PCA原理 在PCA中,数据从原来的坐标系转换到了新的坐标系。新坐标系的选择是由数据本身决定的。第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴的选择和第一.

总裁余(余登武)博客 3万+

麒麟V10系统下微信PC版安装全攻略:从源配置到一键安装(附常见问题解决)

本文详细介绍了在麒麟V10系统下安装和优化微信PC版的完整流程,包括系统环境准备、软件源配置、多途径安装方案以及性能优化技巧。特别针对国产操作系统用户,提供了从基础安装到高级配置的一站式解决方案,并附有常见问题排查方法,帮助用户快速实现微信PC版的高效运行。

weixin_30500105的博客 720

基于PCA的人脸识别的Matlab实现代码

基于PCA的人脸识别算法 --Matlab   Face recognition Based on PCA

hesays的专栏 6万+

U盘安装单系统ubuntu10.04之全过程&拔掉U盘后系统无法启动

借助U盘把电脑装成ubuntu单系统之过程记录,以及遇到拔掉U盘后系统无法启动问题,电脑就显示: Non-System disk or disk error, replace and strike any key when ready

CXHPLY的专栏 8682

基于经验模态分解和核主成分分析结合长短期记忆网络EMD-KPCA-LSTM的光伏功率预测算法--Matlab

基于经验模态分解和核主成分分析结合长短期记忆网络EMD-KPCA-LSTM的光伏功率预测算法--Matlab

前程算法屋的博客 629

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

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

Work Hard, Play Harder! 11万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PCA算法及其应用(代码)

简介PCA(Principal Component Analysis)算法叫做主成分分析,在进行图像识别以及高维度数据降维处理中有很强的应用性,算法主要通过计算特征值最大的特征向量来对原始数据进行线性变换。 本文将从算法原理角度来分析PCA算法的可行性,文中将引入人脸识别的概念,从而介绍PCA在人脸识别1中的应用。

Jim_Liu 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PCA降维算法原理及代码实现(python和matlab)

欢迎转载:转载请注明出处,谢谢。 常见的数据降维算法有:奇异值分解(SVD)、主成分分析(PCA)、因子分析(FA)、独立成分分析(ICA)。 PCA降维的基本思想:通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值、特征向量、选择特征值最大(即方差最大)的K个特征所对应的特征向量组成的矩阵,这样可以将数据矩阵转换到新的空间当中,实现数据特征的降维。 PCA降维有两种思路:一种是特征值...

菜的不行的IT民工 1万+

PCA算法原理及实现(Python)

欲将一组N维向量降到K维(0

诗小葵的博客 5103

主成分分析(PCA)算法模型实现及分析(MATLAB实现)PCA降维

主成分分析(PCA)是一种能够极大提升无监督特征学习速度的数据降维算法。主成分分析(Principal Component Analysis,PCA)的方法,可以将具有多个观测变量的高维数据集降维,使人们可以从事物之间错综复杂的关系中找出一些主要的方面,从而能更加有效地利用大量统计数据进行定量分析,并可以更好地 由于得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵,所以PCA算法有两种实现方法:基于特征值分解协方差矩阵实现PCA算法、基于SVD分解协方差矩阵实现PCA算法

weixin_42491720的博客 1万+
上一篇: PyTorch or TensorFlow?
下一篇: 吹爆了这个可视化神器,上手后直接开大~
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值