Python实例PCA算法实现
Posted ZHW_AI课题组
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实例PCA算法实现相关的知识,希望对你有一定的参考价值。
作者介绍
王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。
研究方向:机器视觉与人工智能。
电子邮件:shauwang@foxmail.com
PCA算法介绍
PCA(Principal Component Analysis,主成分分析)是一种多变量统计方法,它是最常用的降维方法之一,通过正交变换将一组可能存在相关性的变量数据转换为一组线性不相关的变量,转换后的变量被称为主成分。
原理可参考PCA原理详解。
数据集介绍
Iris鸢尾花数据集是一个经典的多重变量分析的数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数据,每条记录都有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。
在程序中我们直接从sklearn库中调取数据集,所以不需要提前进行下载。
代码实现
先在之前创建的虚拟环境中安装sklearn和matplotlib库,之后调用Python解释器就可以在Pycharm中实现PCA了。
注意:代码是需要在安装好的Pycharm中运行,或者任一IDE均可,不是在终端(命令行窗口)。
# -*- coding:utf-8 -*-
# 导入鸢尾花数据集,调用matplotlib包用于数据的可视化,并加载PCA算法包。
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
# 然后以字典的形式加载鸢尾花数据集,使用y表示数据集中的标签,使用x表示数据集中的属性数据。
data=load_iris()
y=data.target
x=data.data
# 调用PCA算法进行降维主成分分析
# 指定主成分个数,即降维后数据维度,降维后的数据保存在reduced_x中。
pca=PCA(n_components=2)
reduced_x=pca.fit_transform(x)
# 将降维后的数据保存在不同的列表中
red_x,red_y=[],[]
blue_x,blue_y=[],[]
green_x,green_y=[],[]
for i in range(len(reduced_x)):
if y[i] ==0:
red_x.append(reduced_x[i][0])
red_y.append(reduced_x[i][1])
elif y[i]==1:
blue_x.append(reduced_x[i][0])
blue_y.append(reduced_x[i][1])
else:
green_x.append(reduced_x[i][0])
green_y.append(reduced_x[i][1])
# 可视化
plt.scatter(red_x,red_y,c='r',marker='x')
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()
降维结果
Reference
主成分分析(PCA)原理详解
https://blog.csdn.net/program_developer/article/details/80632779
PCA的数学原理
http://blog.codinglabs.org/articles/pca-tutorial.html
鸢尾花(iris)数据集分析
https://www.jianshu.com/p/52b86c774b0b
以上是关于Python实例PCA算法实现的主要内容,如果未能解决你的问题,请参考以下文章