鸢尾花数据集及PCA降维_利用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()

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45899520/article/details/114804019

智能推荐

tsne python_sklearn中tsne可视化-程序员宅基地

文章浏览阅读2.1k次。声明:manifold:可以称之为流形数据。像绳结一样的数据,虽然在高维空间中可分,但是在人眼所看到的低维空间中,绳结中的绳子是互相重叠的不可分的。对数据降维比较熟悉的朋友可以看这篇博客t-SNE实践——sklearn教程数据降维与可视化——t-SNEt-SNE是目前来说效果最好的数据降维与可视化方法,但是它的缺点也很明显,比如:占内存大,运行时间长。但是,当我们想要对高维数据进行分类,又不清楚这..._python sklearn t-sne visualizations

第109章 SQL函数 POSITION_sql position-程序员宅基地

文章浏览阅读3.4k次,点赞4次,收藏15次。文章目录第109章 SQL函数 POSITION大纲参数描述POSITION, INSTR, CHARINDEX和$FIND示例第109章 SQL函数 POSITION返回子字符串在字符串中的位置的字符串函数。大纲POSITION(substring IN string)参数substring - 要搜索的子字符串。它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHAR或VARCHAR2)。IN string - 要在其中搜索子字符串的字_sql position

【ArcGIS平台系列】ArcGIS平台,打造可落地的新一代Web GIS_针对浏览器端的webapp开发,arcgis提供了-程序员宅基地

文章浏览阅读3.1k次。新一代Web GIS的内涵 "新一代Web GIS",是Esri在新的GIS技术和时代背景下,所提出的一种以Web为中心的、全新的GIS应用模式,在这种模式中,资源和功能都进一步整合,GIS服务的提供者以Web的方式提供资源和功能,而用户则采用多种终端随时随地访问这些资源和功能。在这种模式下,GIS平台变得更加简单易用、开放和整合,使得GIS为组织机构所有人使用成为现实,为"Web_针对浏览器端的webapp开发,arcgis提供了

嵌入式经典面试题之选择题_如果boot loader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分别-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏32次。一、单项选择题1、如下哪一个命令可以帮助你知道shell命令的用法( A )A. man B.pwd C. help D. more2、Linux分区类型默认的是:( B )A. vfat B. ext2/ext3 C. swap D. dos3、在大多数_如果boot loader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分别

python2 安装faiss-gpu 报错 faiss/faiss/python/swigfaiss.i:241: Error: Unable to find ‘faiss/impl/platfo_warning: generating metadata for package faiss-gpu-程序员宅基地

文章浏览阅读1.7k次。1. 安装报错$ sudo pip install faiss-gpu --default-timeout=1000 -i https://pypi.douban.com/simpleDEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop su_warning: generating metadata for package faiss-gpu produced metadata for pro

【yolov8系列】将yolov8-seg 模型部署到瑞芯微RK3566上_yolov8 rknn-程序员宅基地

文章浏览阅读3.7k次,点赞7次,收藏43次。前言之前记录过,整体比较流畅,记录了onnx转rknn的相关环境配置,使用的rk版本为rknn-toolkit2-v1.4.0。当前库已经更新为1.5,这里还是沿用1.4的版本进行记录。本篇博客是在上篇博客(yolov5的rk3566的部署)的基础上,记录下yolov8n-seg的模型在3566上的部署过程。若精度异常可查看官方提供文档,写的比较详细。这里说明下自己遇到的问题:yolov8模型模型进行全量化结果异常yolov8模型在PC端模拟器的运行结果时,板端运行结果异常。_yolov8 rknn

随便推点

1077: 三位数求解_oj1077三位数求解-程序员宅基地

文章浏览阅读403次。时间限制: 1 Sec内存限制: 128 MB题目描述已知xyz+yzz=n,其中n是一个正整数,x、y、z都是数字(0-9),编写一个程序求出x、y、z分别代表什么数字。如果无解,则输出“No Answer”注意:xyz和yzz表示一个三位数,而不是表示x*y*z和y*z*z。输入输入一个正整数n。输出输出一行,包含x、y、z的值,每个数值占4列。样例输入 Copy532样例输出 Copy 3 2 1提示注意一个三位数的百位数字不..._oj1077三位数求解

React antd表单控件+栅格系统控制label长度_react 表单 fields 长度-程序员宅基地

文章浏览阅读2.4k次。import React from 'react'import moment from 'moment';//cnpm i moment --saveimport { Card, Form, Input, Button, Checkbox, Radio, Select, Switch, DatePicker, TimePicker, Upload, Icon, message, InputNumber } from 'antd'const { Option } = Select;const { T._react 表单 fields 长度

elementUI分页中改变current-page绑定的值无效问题的解决_分页组件js直接修改页码绑定值不触发事件-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏16次。问题今天在使用elementUI分页组件el-pagination时,在方法中修改current-page绑定的值,正常来说页面上显示的当前所在的页码会随着改变,但是并没有。分页代码:<!-- 分页 --><el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-_分页组件js直接修改页码绑定值不触发事件

在 KVM 虚拟机中运行 macOS 系统_-device isa-applesmc,osk=-程序员宅基地

文章浏览阅读1.5w次,点赞2次,收藏8次。之前介绍过如何在 Ubuntu 系统和 KVM 中安装 Windows 系统,当时就说了,希望有机会能把 macOS 也给虚拟化了,这样就完美了。今天这篇文章就是解决这个问题的。准备工作开始之前,你需要做好以下的准备工作:一台可以正常工作的 Mac 电脑 一台装好了 KVM 的 Linux 主机 下载好了的 macOS 安装包 一颗不怕折腾的心首先参考 Dhiru Khol..._-device isa-applesmc,osk=

【普中开发板】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)_单片机密码锁程序讲解-程序员宅基地

文章浏览阅读1.4k次,点赞19次,收藏17次。【普中】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)仿真图proteus8.16(有低版本)程序编译器:keil 4/keil 5编程语言:C语言设计编号:P10。_单片机密码锁程序讲解

C语言复习-程序员宅基地

文章浏览阅读172次。宏定义就是给表达式起一个别名,以后想使用这个表达式的时候,使用别名即可,当表达式需要改变的时候,只需要修改定义处即可,就无须修改整个代码了。格式:#define 宏名 宏值注意:宏定义的名字是一个标识符,要符合标识符命名规范,且一般情况下,宏名都大写。注意事项:1.宏定义是在预处理阶段完成替换的;2.宏定义只是一个简单的替换,无脑替换;存储类型 数据类型 变量名;

推荐文章

热门文章

相关标签