首页 > 分享 > 基于PCA的数据降维(鸢尾花(iris)数据集)

基于PCA的数据降维(鸢尾花(iris)数据集)

目录

一、数据集

二、PCA降维

1)加载数据集

2)PCA降维过程

3)可视化降维效果

三、运行效果图

一、数据集

        鸢尾花数据集是 Python 中 sklearn 库自带的数据集。数据本身是四维数据集,这里采用数据降维技术将数据降至二维,以便更好地可视化数据特征。

二、PCA降维

1)加载数据集

        首先加载高维数据集(维度为4),并确定降维后空间维度n_components(维度为2)。

from sklearn.datasets import load_iris

data = load_iris()

y = data.target

x = data.data

n_components = 2

2)PCA降维过程

        执行PCA算法进行降维操作,得到降维后的向量reduce_x。

from sklearn.decomposition import PCA

pca = PCA(n_components = n_components)

reduced_x = pca.fit_transform(x)

3)可视化降维效果

        由于数据集已经进行了预定义为三类,为了有效区分不同类型之间特征以及同类别间的联系,将在二维空间进行可视化操作。

import matplotlib.pyplot as plt

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',label='Class1')

plt.scatter(blue_x,blue_y,c='b',marker='D',label='Class2')

plt.scatter(green_x,green_y,c='g',marker='.',label='Class3')

三、运行效果图

        可以清晰地看到三类数据被分割,且 Class1 与 Class2 和 Class3 差别明显。这证明了PCA降维的确提取出了重要特征,并且这种特征可以更好地区分数据,从而避免了数据集的“高维灾难”。

相关知识

机器学习(三)降维之PCA及鸢尾花降维
机器学习之路:经典的鸢尾花数据集
鸢尾花数据集下载
卷积神经网络实现鸢尾花数据分类python代码实现
分析鸢尾花数据集
python鸢尾花数据集的分类问题 -- 逻辑回归问题研究
R语言数据分析案例:鸢尾花(IRIS)
机器学习数据集之鸢尾花
iris鸢尾花数据集最全数据分析写在前面本文介绍数据预处理
python实践gcForest模型对鸢尾花数据集iris进行分类

网址: 基于PCA的数据降维(鸢尾花(iris)数据集) https://m.huajiangbk.com/newsview545966.html

所属分类:花卉
上一篇: iris数据
下一篇: 人工智能