机器学习sklearn(14)PCA降维

本文介绍了PCA(主成分分析)作为数据降维方法的基本原理和作用,包括降低时间复杂度、空间复杂度,增强模型鲁棒性以及数据可视化。通过Python的sklearn库展示了PCA的实现过程,包括数据预处理、计算协方差矩阵、特征值分解,并用实例演示了PCA在分类任务中的应用。
摘要由CSDN通过智能技术生成

降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。在原始的高维空间中,包含冗余信息以及噪声信息,在实际应用中例如图像识别中会造成误差,降低准确率;而通过降维,可以减少信息的冗余、提高识别等的精度,还可以寻求数据内部的本质结构特征。

降维的目的 

  1. 特征选择:选择重要的特征子集,删除其余特征; 
  2. 特征提取:由原始特征形成的较少的新特征。

降维的作用:

  1. 降低时间的复杂度和空间复杂度 
  2. 节省了提取不必要特征的开销 
  3. 去掉数据集中夹杂的噪音 
  4. 较简单的模型在小数据集上有更强的鲁棒性 
  5. 当数据能有较少的特征进行解释,我们可以更好地解释数据
  6. 实现数据的可视化 

降维的本质:
学习一个映射函数f:X到Y。(X是原始数据点的表达,目前最多的是用向量来表示,Y是数据点映射后的低维向量表达。)f可能是:显示的、隐式的、线性的、非线性的。

主成分分析(PCA)是另一种常用的数据降维方法,它属于无监督学习算法,即在算法训练时,我们不需要知道样本对应的类别。
在映射函数f:X到Y中,我们希望样本点在每一维上的投影点尽可能分散。这种分散程度可以用方差来度量。我们希望降维后的各字段都不存在相关性,而协方差正是用来度量两个随机变量相关性的参数,协方差为0的两个随机变量称为不相关。至此我们得到了PCA的目标:将一组n维向量降为k维(0<k<n),其目标是选择k个单位正交基,使得原始数据在变换到这组基上后,各字段两两协方差为0,而各字段的方差尽可能大。

PCA算法步骤总结如下:

将原始样本数据按列排成矩阵X
X的每一行(代表一个属性字段)进行0均值化处理。
求出协方差矩阵C=\frac{1}{m}XX^{T}的特征值及对应的特征向量。
将特征向量对应特征值从大到小按列排列,取前k列组成矩阵W
Y=W^{T}X即为降维后的数据。

import pandas as pd
f = r'C:\Users\Machine Learning\wine.txt'
df_wine = pd.read_csv(f, encoding='ANSI', header=None)
print(df_wine.head())

 0      1     2     3     4    5     6
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值