怎么注册网自己的网站吗,上海礼品定制网站,网络游戏中心,铜仁建设局网站首页主成分分析
一种常用的数据分析技术#xff0c;主要用于数据降维#xff0c;在众多领域如统计学、机器学习、信号处理等都有广泛应用。
主成分分析是一种通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量#xff08;即主成分#xff09;的方法。这些主… 主成分分析
一种常用的数据分析技术主要用于数据降维在众多领域如统计学、机器学习、信号处理等都有广泛应用。
主成分分析是一种通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量即主成分的方法。这些主成分按照方差从大到小排列方差越大包含的原始数据信息越多。通常会选取前几个方差较大的主成分以达到在尽量保留原始数据信息的前提下降低数据维度的目的。
它通过将多个指标转换为少数几个主成分,来实现少数几个变量可以反映出原始的大部分数据的能力(这里的多个指标一般都具有不低的相关性
这里的主成分是原本的变量的线性组合 比如一个衣服的尺码的设计的时候会有衣长,袖长腰围等等一系列的变量,但是我们经过主成分分析,就可以将其转化为身高,体重两个变量就可以在很大程度上去帮助我们去反应衣服的大部分信息 大概的步骤和对应代码:
1,得到样本的R矩阵
R corrcoef(x);
2,计算R矩阵的相关系数矩阵的特征值和特征向量
[V,D] eig(R); % V 特征向量矩阵 D 特征值构成的对角矩阵(从小到大)
3,根据特征值计算器的贡献率,然后计算累计贡献率,当累计贡献率达到一定的值的时候我们就得到了一个能够记录一定比列的一些主成分
这里要先把特征值取出来并且倒置: lambda diag(D); % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)
lambda lambda(end:-1:1); % 因为lambda向量是从小大到排序的我们将其调个头
然后开始计算贡献度
contribution_rate lambda / sum(lambda); % 计算贡献率
cum_contribution_rate cumsum(lambda)/ sum(lambda); % 计算累计贡献率 cumsum是求累加值的函数
Vrot90(V);% rot90函数可以使一个矩阵逆时针旋转90度然后再转置就可以实现将矩阵的列颠倒的效果
根据主成分的个数求出主成分的线性表达式
%% 计算我们所需要的主成分的值
m input(请输入需要保存的主成分的个数: );
F zeros(n,m); %初始化保存主成分的矩阵每一列是一个主成分
for i 1:m
ai V(:,i); % 将第i个特征向量取出并转置为行向量
Ai repmat(ai,n,1); % 将这个行向量重复n次构成一个n*p的矩阵
F(:, i) sum(Ai .* X, 2); % 注意对标准化的数据求了权重后要计算每一行的和
end
4,要根据主成分的一些线性组合做出一个合适的解释
优缺点
优点
数据降维效果显著能有效将高维数据转换为低维表示同时保留大部分关键信息。在处理高维数据集如具有大量特征的基因数据、高分辨率图像数据时可大幅减少数据维度降低后续分析和计算的复杂度。例如基因数据可能包含成千上万个基因表达量作为特征PCA 可将其压缩到少数几个主成分在不损失太多信息的前提下使数据更易于处理和分析。
消除特征相关性原始数据的特征之间往往存在相关性这可能对某些分析和模型造成干扰。PCA 通过将数据转换到新的正交坐标系使主成分之间相互独立从而消除特征间的冗余信息。例如在分析经济指标时一些经济变量之间可能存在较强的相关性PCA 可将这些相关变量转化为相互独立的主成分有助于更清晰地理解数据结构和进行后续建模。
易于计算和实现PCA 的计算过程相对明确基于矩阵运算主要步骤包括计算协方差矩阵、特征值分解等在许多编程语言如 Python 的 NumPy、SciPy 库中都有现成的函数实现便于研究者和工程师应用。
数据可视化助力对于高维数据直接可视化非常困难。PCA 将高维数据降维到二维或三维后可在平面或三维空间中直观展示数据点分布帮助发现数据中的潜在模式、聚类结构或异常点。例如在客户细分研究中将多个客户属性通过 PCA 降维后在二维图上展示能直观地看到不同客户群体的分布情况。
缺点
主成分缺乏可解释性虽然主成分能够有效保留数据的大部分方差但它们通常是原始特征的复杂线性组合难以直接赋予实际的物理或业务含义。比如在分析用户行为数据时得到的主成分可能无法直接对应到具体的用户行为指标不利于领域专家基于业务知识进行解读和应用。
可能丢失重要信息尽管 PCA 旨在保留最大方差信息但在降维过程中不可避免地会舍弃部分信息。当舍弃的信息对于特定的分析任务如某些对细节敏感的分类问题至关重要时可能会影响分析结果的准确性。例如在医学图像诊断中如果舍弃的信息恰好与某些疾病的细微特征相关可能导致诊断失误。
对数据分布有要求PCA 假设数据具有高斯分布在这种分布下能较好地发挥作用。然而实际数据往往并不完全符合高斯分布对于非高斯分布的数据PCA 可能无法充分捕捉数据的内在结构降维效果可能不理想。
依赖数据整体特征PCA 基于数据的整体协方差结构来确定主成分对于数据中的局部结构或离群点较为敏感。离群点可能会对协方差矩阵的计算产生较大影响进而改变主成分的方向和解释导致降维结果不能准确反映数据的真实特征。
应用场景 数据可视化高维数据难以直接可视化通过 PCA 将数据降到二维或三维可在平面或三维空间中绘制数据点帮助观察数据的分布模式和潜在结构。例如在基因表达数据分析中基因数量可能成千上万利用 PCA 降维后可在二维图上展示不同样本间的关系。
机器学习预处理在训练机器学习模型时高维数据可能导致计算量增大、过拟合等问题。PCA 用于降低数据维度去除噪声和冗余信息同时保留数据的主要特征提高模型训练效率和泛化能力。如在图像识别中将高分辨率图像的像素特征通过 PCA 降维后输入分类模型。
信号处理在处理如音频、视频信号时信号可能包含大量冗余信息。PCA 可去除冗余提取主要成分实现信号的压缩和去噪。例如在语音识别中对语音信号进行 PCA 处理可减少数据量提高识别效率。