【机器学习】特征降维 - 主成分分析PCA

news/2024/11/29 18:34:08/

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

相关系数

  • 一、主成分分析
  • 二、指定维度
  • 三、保留比例
  • 四、获取协方差
  • 五、返回原始数据

提取的特征当中,有一些相关(相似)的「冗余特征」,这种特征是没有必要统计的,我们需要「减少」相关的特征,留下不相关的特征。也就是「特征降维」

特征降维的方式有很多,这里使用其中的一种:主成分分析

一、主成分分析

主成分分析(Principal Component Analysis,PCA), 是一种「统计」方法。通过正交变换将一组可能存在「相关性」的变量转换为一组「线性不相关」的变量,转换后的这组变量叫「主成分」

统计变量时,变量个数太多并且有很强的相关性,也就是有很多「相似」的变量,这些变量会增加分析的工作量和「复杂性」

而主成分分析可以根据变量之间的相关性,建立新的变量来替代哪些重复且不重要的变量;也就是用较少的变量来代替原来较多的变量,并可以反映原来多个变量的大部分信息,从而提升处理数据的「速度」

比如评选三好学生,每个学生有身高、体重、家境、成绩等多个特征,但身高、体重这些特征对于评选来说是无用的,那我们就去掉这种无用特征,用成绩来代替他们。

sklearn.decomposition.PCA( n_components=None )

  • PCA.fit_transform( data ) :接收数据并进行降维
  • PCA.inverse_transform( data ):将降维后的数据转回原始数据
  • PCA.get_covariance():获取协方差数据
  • PCA.get_params():获取模型数据
  • n_components:指定维度(小数:最终保留百分之多少的信息,整数:减少到多少特征)

二、指定维度

n_components 参数为「整数」,意思是降低到「指定维度」

from sklearn import decomposition# 测试数据
data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]# 初始化
pca = decomposition.PCA(n_components=2)# 降维
result = pca.fit_transform(data)
print(result)

输出:

[[ 1.28620952e-15  3.82970843e+00][ 5.74456265e+00 -1.91485422e+00][-5.74456265e+00 -1.91485422e+00]]

从结果可以看到,特征从原本的3维降低到现在的2维。

PS:本来有3列,称为3维度;降维后变成2列,称为2维。


三、保留比例

n_components参数为「小数」,意思是降维后保留百分之多少的信息。

from sklearn import decomposition# 测试数据
data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]# 初始化
pca = decomposition.PCA(n_components=0.30)# 降维
result = pca.fit_transform(data)
print(result)

输出:

[[ 1.28620952e-15][ 5.74456265e+00][-5.74456265e+00]]

从结果可以看到,特征有原来的4维降低到1维,只保留了30%的信息。


四、获取协方差

from sklearn import decomposition# 测试数据
data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]# 初始化
pca = decomposition.PCA(n_components=2)# 降维
result = pca.fit_transform(data)
print(pca.get_covariance())

输出:

[[  4.33333333  -5.5         -1.66666667   1.16666667][ -5.5          7.           1.5         -1.        ][ -1.66666667   1.5         20.33333333 -15.83333333][  1.16666667  -1.         -15.83333333  12.33333333]]

五、返回原始数据

将降维后的数据转换成原始数据

from sklearn import decomposition# 测试数据
data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]# 初始化
pca = decomposition.PCA(n_components=2)# 降维
result = pca.fit_transform(data)
print(pca.inverse_transform(result))

输出:


[[2. 8. 4. 5.][6. 3. 0. 8.][5. 4. 9. 1.]]

http://www.ppmy.cn/news/901338.html

相关文章

gvcf文件与vcf文件

gvcf文件与vcf文件都是vcf文件,不同之处在于gvcf文件会记录更多的信息,这里更多的信息指的是未突变的位点的覆盖情况,从下面的图我们可以直观的看出两者的区别 可以看到,gvcf文件也分两种,一种是-erc gvcf &#xff0c…

vob文件转mkv

下载了一部片子,是所谓的dvd原盘,就是用软件将dvd碟片rip下来,视频文件是一堆vob文件。觉得这片子没必要看原盘,想压缩成mkv以减小体积,同时保持合适的清晰度。 首先想到用handbrake这个免费软件,马上发现不…

文件夹加密后得到扩展名为edc的文件

疫情期间,孩子要用笔记本电脑上网课,我怕孩子乱动电脑里的文件,就把所有文件都放在一个文件夹中,随便找了个文件夹加密软件把这个文件夹加密了,后来孩子说电脑慢,我想都有没想就重做了系统。事后发现加密的…

bolb:http 加密视频路径

后台代码,仅需读取文件并变成二进制流: /** * bolb 测试 */ public void getFile(HttpServletResponse response, HttpServletRequest request){File f new File("service-web/src/main/resources/static/images/video1.mp4");String fileNa…

java连接fdb文件_FDB文件扩展名 - 什么是.fdb以及如何打开? - ReviverSoft

你在这里因为你有,有一个文件扩展名结尾的​​文件 .fdb. 文件与文件扩展名 .fdb 只能通过特定的应用程序推出。这有可能是 .fdb 文件是数据文件,而不是文件或媒体,这意味着他们并不是在所有观看。 什么是一&nbsp.fdb&nbsp文件? 该是.fdb文件扩展名被用作编录文件。…

DBF文件的初步了解(一)

DBF文件格式是一种比较“古老”的数据库文件格式了。要不是最近项目中需要,笔者恐怕到今天也不曾听说过DBF文件格式。 作用:DBF数据库格式是DOS系统中的dBase数据库和FoxPro数据库所使用的数据库格式。如今,如果电脑上没有安装这两款软件&…

Dbc文件格式

主要熟悉各类关键字触类旁通 关键字: 网络节点: 格式:BU_ NODE1 NODE2 .... 例: BU_: CEM HUT GW T_Box Tester 表示dbc中包含CEM HUT GW T_Box Tester五个网络节点 报文: 格式:BO_ id name:d…

BDF文件格式小结

参考资料:5005.BDF_Spec.pdf 常用全局字段如下: STARTFONT 1.0 COMMENT FONTBOUNDINGBOX 12 16 0 0 CHARS 280 它们的意义如下: 1。STARTFONT:后加字体版本号 2。COMMENT:后加注释内容 3。FONTBOUNDINGBOX&am…