【scikit-learn基础】--『数据加载』之外部数据集

这是scikit-learn数据加载系列的最后一篇,本篇介绍如何加载外部的数据集

外部数据集 不像之前介绍的几种类型的数据集那样,针对每种数据提供对应的接口,每个接口加载的数据都是固定的。

而外部数据集加载之后,数据的字段和类型是不确定的。

简单来说,我们在实际的数据分析工作 中,用到的是外部数据集加载,

学习 数据分析时,更多用到的是前面介绍的数据加载

  1. 玩具数据集【scikit-learn基础】--『数据加载』之玩具数据集
  2. 真实数据集【scikit-learn基础】--『数据加载』之真实数据集
  3. 样本生成器【scikit-learn基础】--『数据加载』之样本生成器

1. openml.org 数据集

openml.org网站上提供了丰富的用于机器学习的数据集,目前已经有5300多个各类数据集。

通过scikit-learn加载openml.org的数据集非常简单,

先在网站上找到自己感兴趣的数据集,然后根据其名称 即可加载。

比如,下面的示例代码加载了一个关于糖尿病的数据集(diabetes)。

python 复制代码
from sklearn.datasets import fetch_openml

data = fetch_openml(name='diabetes', version=1, parser="auto")
data

有的数据集有多个版本,通过 version 参数指定需要加载哪个版本。

2. svmlight / libsvm 格式数据

svmlight/libsvm格式是一种用于存储训练好的支持向量机(SVM)模型和数据集。

这种格式的特点是每一行都采用表格形式,以空格或者制表符分隔,适用于稀疏数据集。

scikit-learn中,加载svmlight/libsvm格式的数据使用load_svmlight_file函数。

python 复制代码
import requests
import io
from sklearn.datasets import load_svmlight_file

# 一个在线的 svm 数据
url = "https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/a1a"
res = requests.get(url)

# 加载svmlight/libsvm格式的数据文件
X, y = load_svmlight_file(io.BytesIO(res.content))

# 打印特征数和样本数
print("特征数:", X.shape[1])
print("样本数:", X.shape[0])

# 运行结果:
特征数: 119
样本数: 1605

由于load_svmlight_file不支持直接加载网络文件,所以先通过 requests 库获取数据,

然后将数据转换为IO数据流 ,再传入函数load_svmlight_file中。

3. 对接其他库

Python中用于数据分析的库最常用的当属pandasnumpyscipy
scikit-learn可以直接使用这些库所加载的数据,这就让scikit-learn加载数据的能力直接站在了巨人的肩膀上。

比如,scikit-learn可以直接使用通过 pandas.io模块来加载的数据,

也就是支持CSVJSONHTMLXMLEXCELHDF5SQL等等各种格式。

还有通过numpy/routines.io加载的列式数据,

以及通过 scipy.io 模块加载的科学计算环境中经常使用的二进制格式,如.mat.arff

4. 总结

scikit-learn库的数据加载系列至此告一段落。

我们在掌握机器学习算法的过程中,自然而然的会将注意点放在算法的原理和各种参数上,

但是,一份好的数据能够帮助我们更加直观的了解到机器学习算法的运行过程。

scikit-learn提供的各类丰富的数据集绝对是学习算法的一大助力。

我觉得库本身所提供的丰富的数据集也是scikit-learn库相较于其他机器学习库的一大特色和优势。

相关推荐
百锦再8 分钟前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame
张子夜 iiii17 分钟前
4步OpenCV-----扫秒身份证号
人工智能·python·opencv·计算机视觉
潮汐退涨月冷风霜1 小时前
数字图像处理(1)OpenCV C++ & Opencv Python显示图像和视频
c++·python·opencv
酷飞飞8 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
数字化顾问9 小时前
Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
python
学生信的大叔10 小时前
【Python自动化】Ubuntu24.04配置Selenium并测试
python·selenium·自动化
诗句藏于尽头11 小时前
Django模型与数据库表映射的两种方式
数据库·python·django
智数研析社11 小时前
9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用
大数据·人工智能·python·深度学习·数据分析·数据集·数据清洗
扯淡的闲人11 小时前
多语言编码Agent解决方案(5)-IntelliJ插件实现
开发语言·python
moxiaoran575311 小时前
Flask学习笔记(一)
后端·python·flask