数据挖掘之认识数据

在数据挖掘过程中,数据的认识是非常重要的一步,它为后续的数据分析、建模、特征选择等工作奠定基础。以鸢尾花数据集(Iris Dataset)数据集之鸢尾花数据集(Iris Dataset)-CSDN博客为例,下面将介绍如何从数据下载到可视化展示进行深入认识。

1. 数据下载

鸢尾花数据集是一个经典的机器学习数据集,通常用于分类任务。这个数据集可以从多个来源获得,包括通过sklearn库直接加载。

from sklearn.datasets import load_iris# 加载鸢尾花数据集
iris = load_iris()# 查看数据集的基本信息
print(iris.keys())
数据集包含以下几个重要部分:
  • data: 特征数据,包含150个样本,每个样本有4个特征(如花萼长度、花萼宽度、花瓣长度、花瓣宽度)。
  • target: 目标标签,包含样本所属的类别(共三类:Setosa, Versicolor, Virginica)。
  • feature_names: 特征的名称(例如 'sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)')。
  • target_names: 类别的名称(例如 'setosa', 'versicolor', 'virginica')。
  • DESCR: 数据集的描述信息。

2. 数据加载与基本信息

使用sklearn加载数据后,可以通过pandas将其转换为DataFrame,更便于查看和操作。

import pandas as pd# 将数据转换为pandas DataFrame
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)# 将目标标签添加到DataFrame中
iris_df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)# 查看数据集基本信息
print(iris_df.info())# 查看数据集的前几行
print(iris_df.head())

3. 数据统计描述

我们可以查看数据集的统计描述信息,了解每个特征的分布情况。

# 获取数据的统计描述
print(iris_df.describe())

4. 数据可视化

数据可视化可以帮助我们理解特征之间的关系,识别数据的模式,并且能够分辨不同类别样本在特征空间中的分布情况。

4.1 成对关系图(Pairplot)

成对关系图能够展示所有特征之间的两两关系,并且可以通过颜色区分不同类别。

import seaborn as sns# 绘制成对关系图
sns.pairplot(iris_df, hue='species', palette='Set2')
4.2 箱线图(Boxplot)

箱线图能帮助我们观察每个特征的分布情况,并检测是否存在异常值。

# 绘制箱线图
plt.figure(figsize=(10, 6))
sns.boxplot(x='species', y='sepal length (cm)', data=iris_df)
plt.title('Boxplot of Sepal Length by Species')
plt.show()
4.3 热力图(Heatmap)

热力图可以帮助我们了解特征之间的相关性,并观察是否存在多重共线性。

import matplotlib.pyplot as plt
import seaborn as sns# 计算特征之间的相关性
correlation = iris_df.iloc[:, :-1].corr()# 绘制热力图
plt.figure(figsize=(8, 6))
sns.heatmap(correlation, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Correlation Heatmap of Iris Dataset')
plt.show()

5. 处理缺失值(如果有)

虽然鸢尾花数据集本身没有缺失值,但在实际数据中,缺失值的处理是很常见的。我们可以使用pandas来检查并处理缺失值:

# 检查缺失值
print(iris_df.isnull().sum())# 假设有缺失值的列,使用均值填充
iris_df.fillna(iris_df.mean(), inplace=True)

7. 2D和3D可视化

2D可视化

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_iris# Load the Iris dataset
iris = load_iris()
X = iris.data[:, :2]  # Use the first two features (Sepal Length and Sepal Width)
y = iris.target# Create a 2D scatter plot
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111)# Map species to colors
colors = ['r', 'g', 'b']
species_names = iris.target_names# Plot each species
for i in range(3):ax.scatter(X[y == i, 0], X[y == i, 1], label=species_names[i], color=colors[i], alpha=0.6)ax.set_xlabel('Sepal Length (cm)')
ax.set_ylabel('Sepal Width (cm)')
ax.set_title('2D Scatter Plot of Iris Dataset')
ax.legend()
plt.show()

3D可视化

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np# Extract features and target
X = iris.data[:, :3]  # Use the first three features for 3D visualization
y = iris.target# Create a 3D scatter plot
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')# Map species to colors
colors = ['r', 'g', 'b']
species_names = iris.target_namesfor i in range(3):ax.scatter(X[y == i, 0], X[y == i, 1], X[y == i, 2], label=species_names[i], color=colors[i], alpha=0.6)ax.set_xlabel('Sepal Length (cm)')
ax.set_ylabel('Sepal Width (cm)')
ax.set_zlabel('Petal Length (cm)')
ax.set_title('3D Scatter Plot of Iris Dataset')
ax.legend()
plt.show()

7. 小结

通过加载、查看和可视化鸢尾花数据集,我们可以更好地理解数据的结构、特征分布以及不同类别样本的区分度。这为后续的数据分析、特征选择以及机器学习建模提供了重要的基础。数据挖掘的第一步是对数据的深刻理解,只有了解了数据,才能采取合适的预处理步骤,最终构建有效的模型。

8. 总结

  • 数据下载与加载: 使用sklearn.datasets.load_iris()加载数据,并通过pandas查看数据。
  • 统计描述: 使用describe()查看数据的基本统计信息。
  • 可视化: 使用seaborn绘制成对关系图、箱线图和热力图,了解数据的分布和特征之间的关系。
  • 缺失值处理: 使用pandas处理缺失值(在实际情况中常见)。

通过这些方法,可以掌握如何处理数据、理解数据以及如何为后续分析做好准备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio

-XX:NewRatio 是 Java Virtual Machine (JVM) 的一个选项,用于调整 年轻代(Young Generation)和 老年代(Old Generation)之间的内存比例。 1. 含义 XX:NewRatioN 用于指定 老年代 与 年轻代 的内存比例。 N 的含义&…

统信UOS 1071 AI客户端接入本地大模型配置手册

文章来源:统信UOS 1071本地大模型配置手册 | 统信软件-知识分享平台 1. OS版本确认 1.1. 版本查看 要求:计算机,属性,查看版本(1070,构建号> 101.100) 2. UOS AI版本确认 UOS AI,设置&am…

定时任务——定时任务技术选型

摘要 本文深入探讨了定时任务调度系统的核心问题、技术选型,并对Quartz、Elastic-Job、XXL-Job、Spring Task/ScheduledExecutor、Apache Airflow和Kubernetes CronJob等开源定时任务框架进行了比较分析,包括它们的特点、适用场景和技术栈。文章还讨论了…

【ArcGIS Pro微课1000例】0064:栅格目录、栅格数据集、镶嵌数据集

一、栅格目录与栅格数据集 1. 定义 栅格目录:是一个用于管理和组织栅格数据集的结构,通常包含多个栅格数据集的元数据和索引信息。它相当于一个文件夹,里面可以存放多个栅格文件。可以将工作空间转栅格目录。 栅格数据集:是指单个的栅格数据文件,包含了具体的空间数据,…

Java基础 | 数据库的命名规范

数据库的命名规范 1. 基本原则2. 命名规范详解2.1 命名禁止项2.2 命名规范3. 通用字段规范4. 特殊表命名建议 1. 基本原则 统一性:全库采用一致的命名规范简洁性:在表达清晰的前提下尽量简短规范性:遵循数据库标准规范可读性:命名…

麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 上篇文章我们说到rsync虽好,但是缺乏实时性,在实际应用中,咱们可以将rsync写进脚本,然后写进定时任务去备份,如果每天凌晨1:00…

青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程

青少年编程与数学 02-004 Go语言Web编程 16课题、并发编程 一、并发编程并发编程的关键概念包括: 二、并发与并行并发编程(Concurrency)并行计算(Parallelism)区别 三、Go语言并发编程1. 协程(Goroutine&am…

均值聚类算法

K-均值聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个簇或聚类。它的基本思想是通过迭代将数据点分配到簇中,使得每个数据点都属于最近的簇中心,并且使得簇内的数据点之间的距离最小化。 算法步骤如下: 1. 初始化K个…

wtforms+flask_sqlalchemy在flask-admin视图下实现日期的修改与更新

背景: 在flask-admin 的modelview视图下实现自定义视图的表单修改/编辑是件不太那么容易的事情,特别是想不自定义前端view的情况下。 材料: wtformsflask_sqlalchemy 制作: 上代码 1、模型代码 from .exts import db from …

【AIGC-ChatGPT进阶副业提示词】末日生存指南 2.0:疯狂科学家的荒诞智慧

引言 在这个不断变化的世界中,末日似乎总是lurking在角落。但是,亲爱的幸存者们,不要害怕!因为我,疯狂科学家2099,正在这里为你们带来最新版本的末日生存指南。这不是你祖母的应急手册,而是一本…

BiLSTM:深度学习中的双向长短期记忆网络

目录 ​编辑 1. BiLSTM原理 2. BiLSTM的应用案例 3. BiLSTM研究进展 4. BiLSTM技术挑战 5. BiLSTM未来趋势 6. BiLSTM的实际应用示例 6.1 数据准备 6.2 构建BiLSTM模型 6.3 训练模型 6.4 评估模型 6.5 可视化训练过程 7. 结论 在深度学习的浪潮中,BiLS…

Socket 收发内部拆包封包函数

在socket通信的时候,有时候数据比较大,内部缓存会溢出,导致发送或接收数据不正确。 针对这个情况,封装了一个接收和发送的底层函数,根据缓存大小批次发送和接收,内部有自己的缓冲区,测试情况良…

RK3588 , mpp硬编码yuv, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ Ubuntu x64 架构, 交叉编译aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBRK3588 , mpp硬编码yuv, 保存MP4视频文件.

powershell美化

powershell美化 写在前面 除了安装命令,其他都是测试命令,后续再写进配置文件 安装主题控件 安装主题oh-my-posh,powershell中执行 winget install JanDeDobbeleer.OhMyPosh -s winget oh-my-posh init pwsh | Invoke-Expression # 查看…

2024/12/22周报

文章目录 摘要Abstract深度学习文献阅读1. 背景与问题2. 发明目的3. 方法与实现3.1 数据采集与变量选取3.2 BP神经网络建立稳态预测模型3.3 构建多目标优化函数3.4 多目标差分进化算法求解优化3.5 最优决策变量筛选3.6 实时控制 4. 系统实现5. 实际效果与验证5.1 仿真验证5.2 神…

前端编程训练 异步编程篇 请求接口 vue与react中的异步

文章目录 前言代码执行顺序的几个关键点接口请求vue与react中的异步 vue中的异步react的state修改异步 前言 本文是B站三十的前端课的笔记前端编程训练,异步编程篇 代码执行顺序的几个关键点 我们可以理解为代码就是一行一行,一句一句是执行(定义变…

Excel生成DBC脚本源文件

Excel制作 新建一个Excel,后缀为“.xls” 工作本名称改为“CAN_Matrix” 在首行按照列来起名字,在里面只需要填写必须的内容即可。 列数名称第0列Message Name第1列Message Format第2列Message ID第3列Message Length (byte)第4列Message Transmitte…

16.2、网络安全风险评估技术与攻击

目录 网络安全风险评估技术方法与工具 网络安全风险评估技术方法与工具 资产信息收集,可以通过调查表的形式把我们各类的资产信息进行一个统计和收集,掌握被评估对象的重要资产分布,进而分析这些资产关联的业务面临的安全威胁以及存在的安全…

C++-----函数与库

数学中的函数与编程中的函数对比 数学中的函数 - 数学函数是一种映射关系,例如,函数\(y f(x)x^{2}\),对于每一个输入值\(x\),都有唯一确定的输出值\(y\)。它侧重于描述变量之间的数量关系,通常通过公式来表示这种关系…

Loki 微服务模式组件介绍

目录 一、简介 二、架构图 三、组件介绍 Distributor(分发器) Ingester(存储器) Querier(查询器) Query Frontend(查询前端) Index Gateway(索引网关&#xff09…