这种方法是由Karl Pearson 介绍的。它的工作条件是,当高维空间中的数据映射到低维空间中的数据时,低维空间中数据的方差应最大。
主成分分析 (PCA) 是一种用于降低大型数据集维数的统计技术。它是机器学习、数据科学和其他处理大型数据集的领域中常用的方法。
- PCA 的工作原理是识别数据中的模式,然后创建新变量以捕获尽可能多的数据变化。这些新变量称为主成分,是数据集中原始变量的线性组合。
- 第一个主成分捕获数据中最多的变化,第二个主成分捕获第二多,依此类推。创建的主成分数量等于数据集中原始变量的数量。
- PCA 可用于多种目的,包括数据可视化、特征选择和数据压缩。在数据可视化中,PCA 可用于将高维数据绘制成二维或三维的图形,使其更易于解释。在特征选择中,PCA 可用于识别数据集中最重要的变量。在数据压缩中,PCA 可用于在不丢失重要信息的情况下减小数据集的大小。
总的来说,PCA 是一种强大的数据分析工具,可以帮助简化复杂的数据集,使其更易于理解和使用。
主成分分析(Principal Component Analysis, PCA)是通过寻找一组新的变量来降低数据集的维度,该变量集小于原始变量集,保留了样本的大部分信息,对数据的压缩和分类很有用。
在PCA中,假设信息是在特征的方差中携带的,即一个特征的方差越大,该特征携带的信息越多。
因此,PCA 采用基于使用最少维数保留数据中最大方差的线性变换。它涉及以下步骤:
1. 构造数据的协方差矩阵。
2. 计算该矩阵的特征向量。
3.对应于最大特征值的特征向量用于重构原始数据的大部分方差。
数据实例被投影到低维空间,其中新特征在最小二乘意义上最能代表整个数据。
可以证明,在最小二乘误差意义上,通过独立向量的线性组合对 d 维随机向量 x 2 < d 的最优近似是通过将向量 x 投影到对应于最大的特征向量 e 1上获得的从中得出 x 的数据的协方差矩阵(或散点矩阵)的特征值 l 1 。
数据协方差矩阵的特征向量称为数据的主轴,数据实例在这些主轴上的投影称为主成分。然后通过仅保留那些占大部分方差的轴(维度)并丢弃所有其他轴(维度)来获得降维。
主成分分析 (PCA)是一种统计过程,它使用正交变换将一组相关变量转换为一组不相关变量。PCA 是探索性数据分析和预测模型机器学习中使用最广泛的工具。此外,PCA 是一种无监督统计技术,用于检查一组变量之间的相互关系。它也被称为一般因素分析,其中回归确定最佳拟合线。需要的模块:
- Python3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# Here we are using inbuilt dataset of scikit learn
from sklearn.datasets import load_breast_cancer
# instantiating
cancer = load_breast_cancer()
# creating dataframe
df = pd.DataFrame(cancer['data'], columns = cancer['feature_names'])
# checking head of dataframe
df.head()
输出:
代码#2:
- Python3
# Importing standardscalar module
from sklearn.preprocessing import StandardScaler
scalar = StandardScaler()
# fitting
scalar.fit(df)
scaled_data = scalar.transform(df)
# Importing PCA
from sklearn.decomposition import PCA
# Let's say, components = 2
pca = PCA(n_components = 2)
pca.fit(scaled_data)
x_pca = pca.transform(scaled_data)
x_pca.shape
输出:
569、2
- Python3
# giving a larger plot
plt.figure(figsize =(8, 6))
plt.scatter(x_pca[:, 0], x_pca[:, 1], c = cancer['target'], cmap ='plasma')
# labeling x and y axes
plt.xlabel('First Principal Component')
plt.ylabel('Second Principal Component')
输出:
- Python3
# components
pca.components_
|
输出:
- Python3
df_comp = pd.DataFrame(pca.components_, columns = cancer['feature_names'])
plt.figure(figsize =(14, 6))
# plotting heatmap
sns.heatmap(df_comp)
输出:
PCA的优点:
- 降维:PCA 是一种流行的降维技术,它是减少数据集中变量数量的过程。通过减少变量的数量,PCA 简化了数据分析,提高了性能,并使数据更容易可视化。
- 特征选择:PCA 可用于特征选择,这是选择数据集中最重要变量的过程。这在机器学习中很有用,其中变量的数量可能非常大,并且很难识别最重要的变量。
- 数据可视化:PCA可用于数据可视化。通过减少变量的数量,PCA 可以在两个或三个维度上绘制高维数据,使其更易于解释。
PCA的缺点:
- 主成分的解释:PCA创建的主成分是原始变量的线性组合,通常很难用原始变量来解释它们。这会使向其他人解释 PCA 的结果变得困难。
- 数据缩放:PCA 对数据的缩放很敏感。如果数据未正确缩放,则 PCA 可能无法正常工作。因此,在应用 PCA 之前缩放数据非常重要。
- 信息丢失:PCA 会导致信息丢失。虽然 PCA 减少了变量的数量,但它也可能导致信息丢失。信息丢失的程度取决于所选主成分的数量。因此,仔细选择要保留的主成分数量非常重要。