鸢尾花数据集及PCA降维

鸢尾花数据集输出每个样本的特征属性值
PCA处理输出降维之后的特征属性值

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import decomposition
from sklearn import datasets
np.random.seed(5)
centers = [[1, 1], [-1, -1], [1, -1]]
iris = datasets.load_iris()  #鸢尾花数据对象
X = iris.data  #数据
y = iris.target  #特征
###展示属性值
data=iris
tt = pd.DataFrame(data=data.data, columns=data.feature_names) #将数据集数据转换成panda
tt['species'] = data.target  #把鸢尾花类型加入到数据集中
data = tt
data.rename(columns={'sepal length (cm)':"萼片长",
                     "sepal width (cm)":"萼片宽",
                     "petal length (cm)":"花瓣长",
                     "petal width (cm)":"花瓣宽",
                     "species":"种类"},inplace=True)
kind_dict = {
    0:"Setosa",
    1:"Versicolour",
    2:"Virginica"
}
data["种类"] = data["种类"].map(kind_dict)
data.head() #数据集的内容如下
print(data.head(150))
#######画出三维图
fig = plt.figure(1, figsize=(4, 3))
plt.clf()  #只会清除数字 仍然可以在其上绘制另一个绘图
ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
plt.cla()  #当前活动轴在当前图中。 它保持其他轴不变
pca = decomposition.PCA(n_components=3)   #这里为维数
pca.fit(X)
X = pca.transform(X)
####显示方差
# print(pca.explained_variance_ratio_)  #投影后的三个维度的方差分布 [0.92461872 0.05306648 0.01710261]
# print(pca.explained_variance_) #方差 [4.22824171 0.24267075 0.0782095 ]

for name, label in [('Setosa', 0), ('Versicolour', 1), ('Virginica', 2)]:
    ax.text3D(X[y == label, 0].mean(),
              X[y == label, 1].mean() + 1.5,
              X[y == label, 2].mean(), name,
              horizontalalignment='center',
              bbox=dict(alpha=.5, edgecolor='w', facecolor='w'))
# Reorder the labels to have colors matching the cluster results
y = np.choose(y, [1, 2, 0]).astype(np.float)
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=y, cmap=plt.cm.nipy_spectral,edgecolor='k')
#ax.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.nipy_spectral,edgecolor='k')
for i in range(len(X[:,0])):
    print(X[i])
ax.w_xaxis.set_ticklabels([])
ax.w_yaxis.set_ticklabels([])
ax.w_zaxis.set_ticklabels([])
plt.show()

特征属性值
特征属性值展示
降维后 三维数据
降维后 三维数据展示
三维数据立体图
三维样本点立体图

鸢尾花数据集是一个常用的分类实验数据集,也称为Iris数据集。它包含了150个数据样本,分为3类,每类50个数据。每个数据样本有4个属性,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。通过这4个特征,我们可以预测鸢尾花属于三个种类中的哪一类(Setosa、Versicolour、Virginica)\[2\]。 如果我们想要对鸢尾花数据集进行降维,可以使用主成分分析PCA方法PCA是一种常用的降维技术,可以将高维数据映射到低维空间。在这个过程中,我们首先加载高维数据集(维度为4),然后确定降维后的空间维度(通常选择2维)。接着,我们可以使用PCA算法对数据进行降维\[3\]。 所以,鸢尾花数据集PCA降维过程可以通过以下步骤实现: 1. 加载鸢尾花数据集。 2. 确定降维后的空间维度,比如选择2维。 3. 使用PCA算法对数据进行降维。 这样,我们就可以得到降维后的鸢尾花数据集,其中每个样本只有两个特征。这样的降维可以帮助我们更好地理解和可视化数据集中的模式和结构。 #### 引用[.reference_title] - *1* [【使用 PCA 实现对鸢尾花四维数据(Iris)进行降维处理】](https://blog.csdn.net/m0_51534537/article/details/123548248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [PCA线性降维——应用于IRIS鸢尾花数据集](https://blog.csdn.net/weixin_41819299/article/details/80938005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于PCA的数据降维(鸢尾花(iris)数据集)](https://blog.csdn.net/weixin_51756038/article/details/130058265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值