数据挖掘笔记(二)——特征提取之主成分分析PCA

这篇是写给我自己看的,一边记录一边在查阅想明白,感觉是很简单的事情,代码实现只有两行,但是存在两个疑惑:

  • 为什么我步骤5得到的结果和直接使用PCA函数得到的结果不一样呢?
  • 如果使用PCA函数,怎么知道舍弃了哪些特征,又保留了哪些特征?

希望知道答案的小伙伴可以在评论区回复。

特征的提取往往也是特征的筛选过程之一,遇到高维数据,可以通过PCA主成分分析方法和LDA线性判别分析两种方法来降低数据处理的维度,方便计算,这个过程也被叫做降维。
区别

  1. PCA:非监督降维(即没有标签),降维时选择方差尽可能大的数据作为特征(方差大,含有的信息量就大)
  2. LDA:有监督降维(即打好标签),降维后,组内(同一类别)方差小,组间(不同类别之间)方差大——》主要用于分类问题

PCA主成分分析

主成分分析法(PCA)的作用是:告诉我们在多维数据中,哪些变量对数据聚类最有价值,也就是以哪些变量为衡量标准可以更好地将数据点们区别开来。
如果对详细的工作原理和计算流程感兴趣,建议观看这个视频
下面介绍一下计算步骤
PCA适用对象的数据集维度一般都是2维以上(1维也用不上哈)
步骤1. 对每个维度进行中心化:同一属性求平均值mean,并用xi-mean,得到一个每个属性的均值都是0的新数据集。

样本1样本2样本3样本4样本5样本6
语文(x1)908070856590
数学(x2)464543415055
英语(x3)708085757871

x1(mean)=(90+80+70+85+65+90)/6=80
x2(mean)=(46+45+43+41+50+55)/6=45
x3(mean)=(70+80+85+75+78+71)/6=76.5
将各行的每一项减去对应行的均值得到中心化后的数据:

新表格样本1样本2样本3样本4样本5样本6
语文(x1)100-105-1510
数学(x2)10-2-4510
英语(x3)-6.53.59.5-1.51.5-5.5

接下来就只需要使用新表格里的数

步骤2.求解新表格的协方差
可以使用python计算:
在这里插入图片描述
矩阵各值分别为:
在这里插入图片描述
根据矩阵性质cov(x,y)=cov(y,x);可知x1,x2,x3三个变量间俩俩的协方差以推导出相关性:

  • 当cov(X,Y)>0时,表示X与Y正相关;
  • 当cov(X,Y)<0时,代表X与Y负相关;
  • 当cov(X,Y)=0时,代表X与Y不相关。

步骤3.计算协方差矩阵的特征值和特征向量
可以使用python计算:
在这里插入图片描述
步骤4.特征值从大到小排序,并选择2个最大的特征值与对应的特征向量(前两行)
步骤5.将原矩阵乘上有2个特征向量的矩阵,得到降维的矩阵
在这里插入图片描述
根据特征值,我们应该选择语文和数学成绩作为特征。

现在python里有封装好的代码,参数说明可看这篇

#coding=utf-8
import numpy as np
from sklearn.decomposition import PCA
X = np.array([[10,0,-10,5,-15,10], [1,0,-2,-4,5,10], [-6.5,3.5,9.5,-1.5,1.5,-5.5]])
X=X.T #导入数据,维度为3
pca = PCA(n_components=2)   #降到2维
pca.fit(X)                  #训练
newX=pca.fit_transform(X)   #降维后的数据
print(pca.explained_variance_ratio_)  #输出贡献率
print(newX)                  #输出降维后的数据

[[-11.78380736 -1.13301391]
[ 1.68763097 -2.68458245]
[ 13.47184688 -3.66284429]
[ -4.54118608 -5.88108655]
[ 13.51316036 6.91397373]
[-12.34764476 6.44755347]]

推荐:
机器学习系列:(七)用PCA降维
PCA(主成分分析法)原理以及应用+代码实现

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主成分分析(Principal Component Analysis,PCA)是一种常用的特征提取方法。它通过线性变换将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差。这些新的坐标轴被称为主成分,它们是原始数据中最能区分样本之间差异的方向。 PCA的基本思想是找到一个最佳的投影方向,使得数据在该方向上的投影具有最大的方差,然后找到一个与第一个方向正交的第个方向,使得数据在该方向上的投影具有次大的方差,依此类推。通过选择前k个主成分,就可以将原始数据降维到k维空间中。 PCA具有以下几个应用和优点: 1. 数据降维:通过PCA可以将高维数据降低到低维空间,减少特征数量,同时保留了原始数据中最重要的信息。 2. 去除冗余信息:PCA可以去除原始数据中的冗余信息,提取出最相关的特征。 3. 数据可视化:PCA可以将高维数据映射到维或三维空间中,便于可视化观察和分析。 4. 数据预处理:PCA可以在机器学习任务前对数据进行预处理,减少噪声和冗余信息对模型的影响。 5. 特征选择:基于PCA的方差解释率,可以选择保留多少个主成分,从而选择最具代表性的特征。 需要注意的是,PCA是一种线性降维方法,对于非线性的数据分布效果可能不好。在这种情况下,可以考虑使用非线性降维方法,如核主成分分析(Kernel PCA)等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值