【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库相较于其他机器学习库的一大特色和优势。

相关推荐
笨鸟先飞,勤能补拙4 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
长和信泰光伏储能5 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂5 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study6 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境6 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境6 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1236 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102167 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb007 小时前
一个项目带你入门AI应用开发01
python
0566468 小时前
Python康复训练——常用标准库
开发语言·python·学习