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

机器学习数据集加载全攻略:从本地到网络

目录

一、加载内置数据集

1.1 Iris鸢尾花数据集

1.2 其他常用内置数据集

二、加载网络数据集

2.1 20 Newsgroups数据集

三、加载本地数据集

3.1 使用pandas加载CSV文件

3.2 处理常见问题

四、数据加载最佳实践

五、总结


在机器学习项目中,数据的加载是第一步也是至关重要的一步。本文将全面介绍如何使用Python中的scikit-learn和pandas库加载各种类型的数据集,包括内置数据集、网络数据集和本地数据集。

一、加载内置数据集

1.1 Iris鸢尾花数据集

Iris数据集是机器学习中最经典的数据集之一,包含150个样本,每个样本有4个特征:

from sklearn.datasets import load_iris
iris = load_iris()#鸢尾花数据 
# 数据集中的特征数据(x,data,样本集)
print(iris.data,type(iris.data),iris.data.shape,iris.data.dtype)
# data特征数据中的每一条数据的每一个特征值的名字
print(iris.feature_names)
# 标签,target,结果,有,目标值
# data特征数据中的每一条数据对应的标签
print(iris.target,iris.target.shape)
# target_names标签的名称
print(iris.target_names) # Setosa山鸢尾 versicolor变色鸢尾 virginica维吉尼亚鸢尾
print(iris.filename) # iris.csv 保存后的文件名
print(iris.DESCR) # 数据集的描述

关键属性和方法

  • iris.data: 特征数据矩阵,形状为(150, 4)

  • iris.target: 标签数组,形状为(150,)

  • iris.feature_names: 特征名称列表

  • iris.target_names: 类别名称列表

  • iris.DESCR: 数据集的详细描述

使用场景

  • 分类算法测试

  • 数据可视化练习

  • 特征工程演示

1.2 其他常用内置数据集

scikit-learn还提供了许多其他内置数据集:

  • load_boston(): 波士顿房价数据集(回归问题)

  • load_digits(): 手写数字数据集(分类问题)

  • load_wine(): 葡萄酒数据集(分类问题)

二、加载网络数据集

2.1 20 Newsgroups数据集

20 Newsgroups是一个文本分类数据集,包含约20,000篇新闻组文档:

# 加载互联网数据集
import sklearn.datasets as datasets
from sklearn.datasets import fetch_20newsgroups
path=datasets.get_data_home() # 获取数据集的路径
print(path)news=fetch_20newsgroups(data_home="./src",subset='all') # 下载所有数据集
print(len(news.data),type(news.data),news.data[:5]) # 文本数据
print(news.target[:5])
print(news.target_names)

关键参数

  • subset: 可选'train'、'test'或'all'

  • categories: 指定要加载的类别列表

  • data_home: 指定数据集下载和缓存目录

重要属性

  • news.data: 原始文本数据列表

  • news.target: 类别标签数组

  • news.target_names: 类别名称列表

使用技巧

  • 对于文本分类任务,通常需要进一步进行文本向量化

  • 可以使用TfidfVectorizerCountVectorizer进行特征提取

三、加载本地数据集

3.1 使用pandas加载CSV文件

pandas是Python中最强大的数据处理库之一,可以轻松加载本地CSV文件:

# 加载本地数据集
import pandas as pd
df = pd.read_csv("./src/ss.csv") # 加载本地csv文件
print(df)

常用参数

  • header: 指定作为列名的行号

  • sep: 分隔符,默认为','

  • index_col: 用作行索引的列编号或列名

  • encoding: 文件编码格式

3.2 处理常见问题

  1. 编码问题:尝试不同的编码格式如'utf-8'、'gbk'、'latin1'

  2. 缺失值处理:使用na_values参数指定缺失值标记

  3. 大数据集:使用chunksize参数分块读取

四、数据加载最佳实践

  1. 数据缓存:对于网络数据集,设置data_home参数避免重复下载

  2. 内存管理:对于大型数据集,考虑使用生成器或分块加载

  3. 数据验证:加载后立即检查数据形状和基本信息

  4. 版本控制:将原始数据与处理后的数据分开存储

五、总结

掌握各种数据加载方法是机器学习工程师的基本功。无论是使用内置数据集快速验证算法,还是处理自定义的本地数据,Python生态都提供了强大的工具支持。在实际项目中,建议:

  1. 从小数据集开始快速迭代

  2. 建立规范的数据加载和处理流程

  3. 记录数据来源和处理步骤

  4. 考虑数据的版本管理

http://www.dtcms.com/a/274304.html

相关文章:

  • Git Submodule 介绍和使用指南
  • FS820R08A6P2LB——英飞凌高性能IGBT模块,驱动高效能源未来!
  • Vscode 下载远程服务器失败解决方法
  • Jenkins 版本升级与插件问题深度复盘:从 2.443 到 2.504.3 及功能恢复全解析
  • 和鲸社区深度学习基础训练营2025年关卡2(3)pytorch
  • 限流算法
  • GT IP核仿真测试
  • 关于大模型引用特定网页或文章的思考
  • 稳石氢能受邀参加亚洲氢能与燃料电池技术应用论坛,荣获2025中国制氢装备技术创新企业。
  • P1484 种树,特殊情形下的 WQS 二分转化。
  • 【leetcode】1486. 数组异或操作
  • 国际学术期刊IJCAST发布最新一期论文
  • 声明式 vs 编程式:Spring事务管理全对比
  • windows exe爬虫:exe抓包
  • Redis的高级特性与应用实战指南
  • Kubernetes高级调度1
  • 用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0
  • Typecho图片自动Webp转换插件开发指南
  • Pycharm测试连接neoj4
  • LeetCode 148 排序链表解析:高效归并排序实现
  • 【AI大模型】BERT微调文本分类任务实战
  • Python PDFplumber详解:从入门到精通的PDF处理指南
  • 扫描文件 PDF / 图片 纠斜 | 图片去黑边 / 裁剪 / 压缩
  • 力扣-142.环形链表 II
  • 力扣热门算法题 204.计数质数,207.课程表,213.打家劫舍II
  • 运行ssh -T git@github.com报错
  • 云防火墙有什么用?
  • PCB 层压板各向异性:对高级过孔建模的影响
  • 添加旋转中心标识(使用OpenGL+QT开发三维CAD)
  • 嵌入式学习C语言(十五)指针函数 动态内存分配 函数指针 指针数组 指针指针