机器学习学习笔记--主成分分析(PCA降维)

主成分分析是多元线性统计里面的概念,它的英文是 Principal Components Analysis,简称

PCA。主成分分析旨在降低数据的维数,通过保留数据集中的主要成分来简化数据集。简化数据集在很多时候是非常必要的,因为复杂往往就意味着计算资源的大量消耗。通过对数据进行降维,我们就能在不较大影响结果的同时,减少模型学习时间。

主成分分析的数学基原理非常简单,通过对协方差矩阵进行特征分解,从而得出主成分(特征向量)与对应的权值(特征值)。然后剔除那些较小特征值(较小权值)对应的特征,从而达到降低数据维数的目的。

导入 PCA 方法可以通过from sklearn.decomposition import PCA完成。PCA 函数及其默认参数如下所示。

sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False, svd_solver='auto')

其中:

n_components=表示需要保留主成分(特征)的数量。

copy=表示针对原始数据降维还是针对原始数据副本降维。当参数为 False 时,降维后的原始数据会发生改变,这里默认为 True。

whiten=白化表示将特征之间的相关性降低,并使得每个特征具有相同的方差。

svd_solver=表示奇异值分解 SVD 的方法。有 4 参数,分别是:auto,full,arpack,randomized。

在使用 PCA 降维时,我们也会使用到PCA.fit()方法。.fit()是 scikit-learn 训练模型的通用方法,但是该方法本身返回的是模型的参数。所以,通常我们会使用PCA.fit_transform()方法直接返回降维后的数据结果。

import numpy as np# 导入数值计算模块

from sklearn.decomposition import PCA# 导入 PCA 模块

data = np.array([[1,2], [3,4], [5,6], [7,8]])# 新建一个 2 维数组

new_data = PCA(n_components=1).fit_transform(data)# 降维成 1 维并返回值

print(data)# 输出原数据

print(new_data)# 输出降维后的数据


data:[[1 2]

[3 4]

[5 6]

[7 8]]

new data:[[ 4.24264069]

[ 1.41421356]

[-1.41421356]

[-4.24264069]]

二维的数据被降成了一维的

你可能感兴趣的:(机器学习学习笔记--主成分分析(PCA降维))