【linux i/o源码】【java源码 收银系统】【ios完整源码下载】pca的源码_pca 代码

时间:2024-12-24 07:17:09 编辑:飞镖小程序源码 来源:linux dd命令 源码

1.FindVariableFeatures
2.PCA9685:I2C转16路PWM,的a代助力你的源码系统
3.2020-07-21
4.FreeBSD下修改安装源的方法
5.综合评价与决策——主成分分析(PCA)法(附Python源码)
6.C#中如何编写PCA算法代码?

pca的源码_pca 代码

FindVariableFeatures

         单细胞文章层出不重,在重现文章数据的时候发现,有的文章提供的是处理后的单细胞矩阵,而不是原始counts。其中有的数据甚至是scaled data,这样我就有疑问:直接利用scaled data能否进行单细胞分析。

          单细胞数据进行分析主要有几个步骤:lognormalized,FindVariableFeatures,scaledata,PCA,FindClusters。其中,可以略过lognormalized和scaledata步骤,但是FindVariableFeatures用来发现高可变基因,似乎只有scaled data不能进行高可变基因的发现,且这一步的高可变基因用于后续PCA分析,也不能省略,因此我看了下FindVariableFeatures的源码(Seurat V3版本):

          可以看到,高可变基因的获取是利用原始counts矩阵或者lognormalized data的j计算的,也就是说seurat作者认为scaled data来计算高可变基因可能是不准确的,因此文章只提供了scaled data是不能进行高可变基因的计算的。

          当然,会有好(tai)奇(gang)的人问了,我就是要用scaled data来运行FindVariableFeatures,会得到比较可靠的高可变基因吗?因此,我测试了下运用counts, lognormalized data, scaled data来进行高可变基因获取:

        可以看到,利用scaled data计算出来的高可变基因与counts,data计算出来的差别是很大的。

        那么没有高可变基因是不是就不能进行PCA等降维分析了呢?理论上当然不是,RunPCA可以自己指定基因来运行。

PCA:I2C转路PWM,助力你的的a代系统

       PCA是一种主要用作I2C转路PWM的集成电路,适用于舵机控制、源码LED颜色控制等。的a代其控制精度在Hz的源码linux i/o源码控制频率下,脉宽为0.5ms~2.5ms,的a代具备位分辨率(级),源码具体精度计算需参考相关资料。的a代

       PCA有两种封装形式:TSSOP与HVQFN,源码各有相应的的a代引脚排列。每个引脚的源码功能描述如下图所示。引脚A0-A5共同决定器件地址,的a代由于有6个引脚参与,源码因此可有个不同的的a代器件地址。除了LED All Call address (E0h)和Software Reset address (h)外,实际可用地址为个,理论上,1个I2C接口可控制多达路PWM。java源码 收银系统器件地址的设置示意图如下图所示。默认情况下,若A0-A5全部接地,则器件地址为0x。

       默认状态下,上电复位后,寄存器地址默认值为0,具体寄存器地址及其用途见下图。重点关注以下寄存器:模式设置寄存器、PWM通道寄存器与占空比设置、PWM周期(频率)寄存器与周期(频率)设置。

       在使用模式设置寄存器时,需注意以下事项:首先介绍MODE1寄存器,其功能如下图所示。在配置模式时,特别关注MODE2寄存器的各位功能,如图所示。

       PWM通道寄存器的ios完整源码下载设置如下图所示,每个通道有4个寄存器,每个寄存器图解如图所示。在设置PWM占空比时,首先配置舵机,例如ON < OFF情况。特殊情况下,PWM周期大于定时器一次计数时,配置ON>OFF情况。

       配置PWM频率时,一般采用内置晶振,频率为MHz。通过配置PRE_SCALE寄存器来调整频率,其与PWM频率的关系见下图。若使用内置晶振,取osc_clock=,update_rate=(舵机控制频率Hz)。

       推荐硬件设计时,确保OE引脚接低电平以确保IC使能。易语言源码资源若连接LED灯,则推荐连接方式如下图所示。

       软件设计部分,Micro:bit平台采用TypeScript(JavaScript的超类)进行底层开发,提供基本操作方法及其思路。日后再更新C、C++及其它平台(STM、Linux树莓派、Arduino等)的操作方法。Micro:bit驱动PCA的源代码提供,注意源代码中的时间为us,与教程中的ms不同。

       树莓派平台采用Python驱动PCA,首先安装Python和smbus库。Python代码如下所示,保存文件名为pca.py,命令行进入该文件所在的路径,运行该Python脚本。php crm系统源码执行命令后,即可控制舵机从0度转到度,再从度转到0度。

--

        主成分分析(PCA)是一种数据降维和去除相关性的方法,它通过线性变换将向量投影到低维空间。对向量进行投影就是对向量左乘一个矩阵,得到结果向量:

        在这里,结果向量的维数小于原始向量的维数。降维要确保的是在低维空间中的投影能很好地近似表达原始向量,即重构误差最小化。

        核心的问题的如何得到投影矩阵,和其他的机器学习算法一样,它通过优化目标函数得到。首先考虑最简单的情况,将向量投影到一维空间,然后推广到一般情况。

        假设有 n 个 d 维向量 X i ,如果要用一个向量 X 0 来近似代替它们,这个向量取什么值的时候近似代替的误差最小?如果用均方误差作为标准,就是要最小化如下函数:

        显然问题的最优解是这些向量的均值:

        证明很简单。为了求上面这个目标函数的极小值,对它的求梯度(求导)并令梯度等于0,可以得到

        解这个方程即可得到上面的结论。只用均值代表整个样本集过于简单,误差太大。作为改进,可以将每个向量表示成均值向量和另外一个向量的和:

        其中,e为单位向量,ai 是标量。上面这种表示相当于把向量投影到一维空间,坐标就是ai 。当e和ai取什么值的时候,这种近似表达的误差最小?

        这相当于最小化如下误差函数:

        将上面求得的ai带入目标函数中,得到只有变量e的函数:

        上式的后半部分和e无关,由于e是单位向量,因此有 ||e||=1 的约束,这个约束条件可以写成e T e=1。我们要求解的是一个带等式约束的极值问题,可以使用拉格朗日乘数法。构造拉格朗日函数:

        因此,这个矩阵半正定。这里需要最大化 e T Se 的值,由于

        因此, 为散度矩阵最大的特征值时, e T Se 有极大值,目标函数取得极小值。将上述结论从一维推广到 d' 维。每个向量可以表达成

        在这里 e i 是单位向量。误差函数变成

        可以证明,使得该函数取最小值的 e j 为散度矩阵最大的d'个特征值对应的单位长度特征向量,即求解下面的优化问题:

        其中, tr 为矩阵的迹。矩阵W的列 e j 是要求解的迹的基向量。散度矩阵是实对称矩阵,属于不同特征值的特征向量相互正交。前面已经证明这个矩阵半正定,特征值非负。这些特征向量构成一组基向量,可以用它们的线性组合来表达向量 x 。从另外一个角度来看,这种变换将协方差矩阵对角化,相当于去除了各分量之间的相关性。

        从上面的推导过程可以得到计算投影矩阵的流程如下:

        (1)计算样本集的均值向量,将所有向量减去均值,这成为白化;

        (2)计算样本集的协方差矩阵;

        (3)对协方差矩阵进行特征值分解,得到所有特征值与特征向量;

        (4)将特征值从大到小排序,保留最大的一部分特征值对应的特征向量,以它们为行,形成投影矩阵。

        具体保留多少个特征值由投影后的向量维数决定。使用协方差矩阵和使用散度矩阵是等价的,因为后者是前者的 n 倍,而矩阵 A 和 nA 有相同的特征向量。

        得到投影矩阵之后可以进行向量降维,将其投影到低维空间。向量投影的流程如下。

        (1)将样本减掉均值向量。

        (2)左乘投影矩阵,得到降维后的向量。

        向量重构指根据投影后的向量重构原始向量,与向量投影的作用和过程相反。向量重构的流程如下。

        (1)输入向量左乘投影矩阵的转置矩阵。

        (2)加上均值向量,得到重构后的结果。

        从上面的推导过程可以看到,在计算过程中没有使用样本标签值,因此,主成分分析是一种无监督学习算法。除了标准算法之外它还有多个变种,如稀疏主成分分析、核主成分分析、概率主分量分析等。

        源码讲解视频链接

FreeBSD下修改安装源的方法

       说明:

       FreeBSD中安装软件一般有两种方式:

       (一)、使用pk_add -r Package 来安装软件,Package安装的是已经编译好的二进制软件包,Package默认下载软件包的路径是在/var/db/pkg中

       (二)、使用Ports方式编译安装,Ports是下载源码到本地,再执行编译安装,ports软件包的路径是在/usr/ports中

以上两种安装方式都需要从网络下载软件包,默认是从官方的源下载软件包的,速度比较慢,可以修改配置文件指定国内的镜像源来快速安装软件

       

1、修改Pcakage源为的镜像源

       

       setenv PACKAGESITE .freebsd.org #安装ports

       ee /etc/portsnap.conf #编辑文件

       SERVERNAME=portsnap.cn.FreeBSD.org #更改服务器为国内镜像

       按esc 回车,再按a保存

       portsnap fetch extract #下载ports快照

       portsnap update #更新

       ee /etc/make.conf #编辑文件,添加下面代码

       MASTER_SITE_BACKUP?=/FreeBSD/distfiles/${ DIST_SUBDIR}/

       MASTER_SITE_OVERRIDE?=${ MASTER_SITE_BACKUP}

       cd /usr/ports

       make search name=nginx #查找ports中是否有nginx这个软件

       cd /usr/ports/www/nginx #进入软件包目录

       make install clean #安装

       make deinstall clean #卸载

       make deinstall reinstall clean #升级来源 系统运维 osyunwei.com

综合评价与决策——主成分分析(PCA)法(附Python源码)

       本文探讨了综合评价与决策过程中的主成分分析(PCA)法,其核心在于量化评价对象的相对优劣。具体做法如下:

       首先,考虑有n个评价对象,每个对象被分配到m个评价属性上,形成决策矩阵。矩阵中的每个行向量代表一个评价对象。

       主成分分析(PCA)的核心思想是通过线性组合,最大化各分量的方差之和。其具体步骤包括数据预处理、计算相关系数矩阵的特征值与特征向量,以及计算评分模型。

       在数据预处理阶段,将所有属性标准化,形成标准决策阵。

       接着,计算相关系数矩阵的特征值与特征向量,特征向量构成旋转坐标系,使各分量方差之和最大化。

       通过计算主成分贡献率与累积贡献率,确定前k个主成分,其中k通常设为使累积贡献率达到0.9的值。这k个主成分的线性组合得到最终评分模型。

       应用实例中,以我国-年宏观投资效益数据为例,通过PCA法,得到评分向量,从而对这些年的投资效益进行排序。

       附Python源码,用于实现上述PCA过程的完整步骤。

       参考文献提供了理论基础,包括数学建模算法与应用、机器学习等领域的相关内容。

C#中如何编写PCA算法代码?

               PCA的处理步骤:

               1,均值化

               2,求协方差矩阵(我知道的有两种方法,这是第一种,按部就班的求,第二种是:(A*A‘/(N-1)))

               3,求协方差的特征值和特征向量

               4,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵

               5,将样本点投影到选取的特征向量上

       matlab实现源代码

%PCA算法,matlab实现

       function F=pcad(A,n)%A是M*N

       %测试实例A=[2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1;2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9]

       %结果F=[0.,-1.,0.,0.,1.,0.,-0.,-1.,-0.,-1.]

       %PCA第一步:均值化

       X=A-repmat(mean(A,2),1,size(A,2))%去均值

       %PCA第二步:求特征协方差矩阵

       B=COV(X')%求协方差

       %PCA第三步:求特征协方差矩阵的特征值和特征向量

       [v,d]=eig(B)%求特征值和特征向量

       %PCA第四步:将特征值按照从大到小的顺序排序

       d1=diag(d);%取出对角矩阵,也就是把特征值提出来组成一个新的M*1的d1矩阵

       [d2 index]=sort(d1); %特征值以升序排序 d2是排序后的结果 index是数排序以前的排名位置

       cols=size(v,2);% 特征向量矩阵的列数

       for i=1:cols   %对特征向量做相反位置的调整 是个降序排列。这个过程把特征值和特征向量同时做相应的降序排列

           vsort(:,i) = v(:,index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量

           %vsort保存的是协方差矩阵降序后的特征向量,为M*M阶

           dsort(i) = d1(index(cols-i+1));  % dsort 保存的是按降序排列的特征值,是一维行向量,1*M

       end  %完成降序排列

       M=vsort(:,1:n)%提取主成分量

       %PCA第五步:将样本点投影到选取的特征向量上

       F=(X'*M)'%最终的投影

PCA降维(python)

       PCA(主成分分析),作为常见的数据分析工具,通过线性变换实现高维数据的有效降维。其核心原理是将冗余的高维数据转化为一组不相关的低维表示,保留数据的主要特征信息。以iris数据集为例,PCA可将个相关变量压缩成5个主要成分,显著简化数据结构,提高分析效率。

       进行PCA降维通常包括以下步骤:首先,确保数据预处理无缺失值,因为PCA基于变量间的相关性;其次,根据研究目标选择PCA(降维)或EFA(探索潜在结构);接着,确定主成分或因子数量;然后,进行主成分或因子选择并可能进行旋转以增强解释性;最后,解释降维结果并计算主成分得分。

       在实践中,未调用特定包时,我们可以直观地观察特征值,如选取前两个主成分就能达到%的累积贡献率。比较降维前后数据的可视化效果,降维后的数据分布更清晰。至于包调用,如使用sklearn库,提供了更便捷的接口实现PCA降维,如通过PCA类进行操作。

       深入了解PCA的数学原理和Python实现,可以参考以下资源:

       郑申海:PCA的数学原理

       PCA(主成分分析)的python源码实现

       Python实现PCA降维教程

       机器学习中的PCA主成分分析指南

       Python与数据分析:炼数成金-Dataguru专业数据分析社区中的PCA详解

       这些资源将帮助你深入理解PCA并应用于实际的数据处理工作中。