当前位置: 首页 > news >正文

sklearn库中有关于数据集的介绍

        scikit-learn(sklearn)库提供了多个内置数据集,涵盖分类、回归、聚类等任务。这些数据集常用于教学、算法测试和模型验证。以下是常用数据集及其简要介绍:

一.常见的数据集分类

1. 分类数据集

(1) 鸢尾花数据集(Iris)

  • 加载函数load_iris()

  • 样本数:150(3类 × 50个)

  • 特征数:4(萼片长宽、花瓣长宽)

  • 目标变量:3种鸢尾花类型(setosaversicolorvirginica

  • 用途:多分类任务入门。

from sklearn.datasets import load_iris
data = load_iris()
X, y = data.data, data.target
(2) 手写数字数据集(Digits)
  • 加载函数load_digits()

  • 样本数:1797

  • 特征数:64(8×8像素图像,每像素0~16的灰度值)

  • 目标变量:数字0~9

  • 用途:图像分类入门。

from sklearn.datasets import load_digits
data = load_digits()
(3) 乳腺癌数据集(Breast Cancer)
  • 加载函数load_breast_cancer()

  • 样本数:569(良性357,恶性212)

  • 特征数:30(半径、纹理等医学特征)

  • 目标变量0(恶性)或 1(良性)

  • 用途:二分类任务。

from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()

2. 回归数据集

(1) 波士顿房价数据集(Boston Housing)

⚠️ 注意:由于伦理问题,该数据集在scikit-learn 1.2版本后被移除。替代方案:fetch_california_housing()

  • 加载函数fetch_california_housing()(加利福尼亚房价)

  • 样本数:20640

  • 特征数:8(收入中位数、房龄等)

  • 目标变量:房屋价格中位数

from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()
(2) 糖尿病数据集(Diabetes)
  • 加载函数load_diabetes()

  • 样本数:442

  • 特征数:10(年龄、性别、BMI等)

  • 目标变量:疾病进展指标(连续值)

from sklearn.datasets import load_diabetes
data = load_diabetes()

3. 聚类数据集

(1) 合成斑点数据集(Blobs)
  • 生成函数make_blobs()

  • 用途:自定义聚类数据(可控簇数量、标准差)。

from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=100, centers=3, random_state=42)
(2) 鸢尾花数据集
  • 同样适用于聚类任务(如K-Means)。

4. 其他数据集

(1) 葡萄酒数据集(Wine)
  • 加载函数load_wine()

  • 样本数:178(3类)

  • 特征数:13(酒精含量、颜色强度等)

  • 目标变量:葡萄酒品类(3类)

from sklearn.datasets import load_wine
data = load_wine()
(2) 新闻分类数据集(20 Newsgroups)
  • 加载函数fetch_20newsgroups()

  • 样本数:约18,000篇新闻

  • 特征:文本数据

  • 目标变量:20个主题类别

from sklearn.datasets import fetch_20newsgroups
data = fetch_20newsgroups(subset='train')  # subset='test'

二.常见的数据集的操作

查看数据集描述

print(data.DESCR)  # 打印详细描述(特征含义、来源等)

数据集结构       

print("特征形状:", data.data.shape)
print("标签形状:", data.target.shape)
print("特征名:", data.feature_names)
print("标签名:", data.target_names)

 完整示例(加载并探索Iris数据集)

from sklearn.datasets import load_iris# 加载数据
iris = load_iris()# 查看关键信息
print("特征矩阵形状:", iris.data.shape)  # (150, 4)
print("标签形状:", iris.target.shape)   # (150,)
print("特征名:", iris.feature_names)    # ['sepal length (cm)', ...]
print("类别名:", iris.target_names)     # ['setosa', 'versicolor', 'virginica']# 打印详细描述
print(iris.DESCR)  # 包含数据来源、统计信息等

        通过sklearn.datasets模块,你可以快速获取高质量数据集,无需额外下载,非常适合算法原型开发和实验。

三.sklearn数据集返回值介绍

        在 scikit-learn(sklearn)中,加载内置数据集(如 load_iris, load_digits, fetch_california_housing 等)通常返回一个 Bunch 对象。这不是标准的 Python 字典,而是一个类似字典的对象,允许通过点号.或键[]访问其属性。

核心返回值(Bunch对象的属性):

1.data (最重要的特征数据):

类型: 通常是 numpy.ndarray(二维数组)。

内容: 包含数据集的所有样本的特征向量(自变量)。

形状: (n_samples, n_features)。

示例: X = iris.data 获取鸢尾花的特征(萼片长宽、花瓣长宽)。

2.target (目标变量/标签):

类型: 通常是 numpy.ndarray(一维或二维数组)

内容:

  • 分类任务: 样本对应的类别标签(整数或字符串编码)。

  • 回归任务: 样本对应的连续目标值。

形状: (n_samples,) 或 (n_samples, n_targets)(多输出问题)。

示例: y = iris.target 获取鸢尾花的品种标签(0, 1, 2)。

3.feature_names (特征名称):

类型: list of str。

内容: data 数组中每一列(特征)的名称。对于图像数据集(如 load_digits),此属性通常为 None。

示例: iris.feature_names 返回 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']。

4.target_names (目标名称 - 主要分类):

类型: list of str 或 numpy.ndarray of str。
内容: target 数组中每个唯一标签对应的实际类别名称。对于纯回归数据集(如 fetch_california_housing),此属性通常为 None。
示例: iris.target_names 返回 ['setosa', 'versicolor', 'virginica']。

 5.DESCR (数据集描述):

类型: str。

内容: 关于数据集的完整描述文本。通常包含来源、属性解释、统计信息、引用信息等。非常有用!

示例: print(iris.DESCR) 会打印出鸢尾花数据集的详细文档。

6. filename (文件路径 - 某些数据集):

类型: str。

内容: 本地缓存数据文件的完整路径。对于像 load_iris 这种极小的内置在库中的数据,此属性可能不存在或为 None。对于 fetch_* 类需要下载的数据集(如fetch_california_housing),此属性指向下载后存储的数据文件。

示例: cal_housing.filename 可能返回类似 '/Users/.../scikit_learn_data/.../cal_housing.tgz' 的路径。

http://www.xdnf.cn/news/1194553.html

相关文章:

  • 命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
  • 【计算机组成原理】第一章:计算机系统概述
  • Django+celery异步:拿来即用,可移植性高
  • 【408二轮强化】数据结构——线性表
  • C++ TAP(基于任务的异步编程模式)
  • 在VS Code中运行Python:基于Anaconda环境或Python官方环境
  • 如何在 Ubuntu 24.04 或 22.04 中创建自定义 Bash 命令
  • 机器学习——随机森林算法分类问题案例解析(sklearn)
  • Nacos-服务注册,服务发现(二)
  • 智慧城市多目标追踪精度↑32%:陌讯动态融合算法实战解析
  • bmp280的压力数据采集(i2c设备驱动+设备树编写)
  • 数据结构 二叉树(3)---层序遍历二叉树
  • 知识图谱的初步探索
  • 智慧农业病虫害识别准确率↑32%:陌讯多模态融合算法实战解析
  • 特产|基于SSM+vue的南阳特产销售平台(源码+数据库+文档)
  • LLM中 词嵌入向量中的正负值表示什么含义
  • GO 从入门到精通
  • python---元组解包(Tuple Unpacking)
  • VisionPro系列讲解 - 03 Simulator 模拟器使用
  • 【RHCSA 问答题】第 13 章 访问 Linux 文件系统
  • Windows Server存储池,虚拟磁盘在系统启动后不自动连接需要手动连接
  • 【js】Function.prototype.apply与Function.prototype.apply.call
  • 学习日志19 python
  • 电子电气架构 --- 高阶智能驾驶对E/E架构的新要求
  • 1.安装anaconda详细步骤(含安装截图)
  • Rust赋能土木工程数字化
  • Go的管道——channel
  • 大话数据结构之 < 栈>(C语言)
  • InfluxDB Flux 查询协议实战应用(二)
  • Voxtral Mini:语音转文本工具,支持超长音频,多国语音