主成分分析及PCA函数使用说明

主成分分析及PCA函数使用说明

主成分分析的基本思想

主成分分析就是把原有的多个指标转化成少数几个代表性较好的综合指标,这少数几个指标能够反映原来指标大部分的信息(85%以上),并且各个指标之间保持独立,避免出现重叠信息。主成分分析主要起着降维和简化数据结构的作用。
主成分分析是把各变量之间互相关联的复杂关系进行简化分析的方法。
主成分分析试图在力保数据信息丢失最少的原则下,对这种多变量的截面数据表进行最佳综合简化,也就是说,对高纬度空间进行降维处理。
这些综合指标就称为主成分。

原理

将一组 N 维向量降为 K 维,其目标是选择 K 个单位正交基,使得原始数据变换到这组基上后,各变量两两间协方差为 0,而变量方差则尽可能大(在正交的约束下,取最大的 K 个方差)。降维问题的优化目标:将一组 N 维向量降为 K 维,其目标是选择 K 个单位正交基,使得原始数据变换到这组基上后,各变量两两间协方差为 0,而变量方差则尽可能大(在正交的约束下,取最大的 K 个方差)。

PCA介绍,函数的参数说明

PCA是一种较为粗糙的降维方法,对于小样本量的数据来说,它不如因子分析方法实用。但是当数据量较大时,主成分分析方法就有了用武之地了。PCA方法常用于人脸识别。

算法步骤

主成分分析及PCA函数使用说明_第1张图片

好处

主成分分析及PCA函数使用说明_第2张图片

函数的参数说明

主成分分析及PCA函数使用说明_第3张图片

PCA实践

我们以sklearn中自带的数据包为例子:

from sklearn.decomposition import PCA
import numpy as np
from sklearn import datasets
from sklearn.preprocessing import MinMaxScaler
X=datasets.load_iris()['data']  # 数据集
# 对数据进行0均值化
mm = MinMaxScaler()
X = mm.fit_transform(X)
model=PCA(n_components='mle')
model.fit(X)
X_new=model.fit_transform(X)
Maxcomponent=model.components_
ratio=model.explained_variance_ratio_
score=model.score(X)
print('返回具有最大方差的成分:',Maxcomponent)
print('保留主成分的方差贡献率:',ratio)
print('所有样本的log似然平均值:',score)
print('奇异值:',model.singular_values_)
print('噪声协方差:',model.noise_variance_)
"""
返回具有最大方差的成分: [[ 0.42494212 -0.15074824  0.61626702  0.64568888]
 [ 0.42320271  0.90396711 -0.06038308 -0.00983925]
 [-0.71357236  0.33631602 -0.0659003   0.61103451]]
保留主成分的方差贡献率: [0.84136038 0.11751808 0.03473561]
所有样本的log似然平均值: 2.2740148272981515
奇异值: [5.88519621 2.19949138 1.19579686]
噪声协方差: 0.0017643192410086415
"""

你可能感兴趣的:(机器学习,PCA,机器学习,sklearn,python)