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

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

简单来说,我们在实际的数据分析工作中,用到的是外部数据集加载,
学习数据分析时,更多用到的是前面介绍的数据加载

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

1. openml.org 数据集

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

通过scikit-learn加载openml.org的数据集非常简单,
先在网站上找到自己感兴趣的数据集,然后根据其名称即可加载。
比如,下面的示例代码加载了一个关于糖尿病的数据集(diabetes)。

  1. from sklearn.datasets import fetch_openml
  2. data = fetch_openml(name='diabetes', version=1, parser="auto")
  3. data

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

2. svmlight / libsvm 格式数据

svmlight/libsvm格式是一种用于存储训练好的支持向量机(SVM)模型和数据集。
这种格式的特点是每一行都采用表格形式,以空格或者制表符分隔,适用于稀疏数据集。

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

  1. import requests
  2. import io
  3. from sklearn.datasets import load_svmlight_file
  4. # 一个在线的 svm 数据
  5. url = "https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/a1a"
  6. res = requests.get(url)
  7. # 加载svmlight/libsvm格式的数据文件
  8. X, y = load_svmlight_file(io.BytesIO(res.content))
  9. # 打印特征数和样本数
  10. print("特征数:", X.shape[1])
  11. print("样本数:", X.shape[0])
  12. # 运行结果:
  13. 特征数: 119
  14. 样本数: 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库相较于其他机器学习库的一大特色和优势。

【scikit-learn基础】--『数据加载』之外部数据集的更多相关文章

  1. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  2. odoo基础数据加载

    odoo 基础数据加载 这里介绍的odoo基础数据加载分两种方式,一种是演示数据加载,一种是默认数据加载,下面就是详细介绍 首先,当然是创建一个date文件夹 项目目录,右键自定义一个文件夹 XML数 ...

  3. transformers 之Trainer对应的数据加载

    基础信息说明 本文以Seq2SeqTrainer作为实例,来讨论其模型训练时的数据加载方式 预训练模型:opus-mt-en-zh 数据集:本地数据集 任务:en-zh 机器翻译 数据加载 Train ...

  4. ScrollView嵌套ListView,GridView数据加载不全问题的解决

    我们大家都知道ListView,GridView加载数据项,如果数据项过多时,就会显示滚动条.ScrollView组件里面只能包含一个组件,当ScrollView里面嵌套listView,GridVi ...

  5. python多种格式数据加载、处理与存储

    多种格式数据加载.处理与存储 实际的场景中,我们会在不同的地方遇到各种不同的数据格式(比如大家熟悉的csv与txt,比如网页HTML格式,比如XML格式),我们来一起看看python如何和这些格式的数 ...

  6. flask+sqlite3+echarts3+ajax 异步数据加载

    结构: /www | |-- /static |....|-- jquery-3.1.1.js |....|-- echarts.js(echarts3是单文件!!) | |-- /templates ...

  7. Entity Framework关联查询以及数据加载(延迟加载,预加载)

    数据加载分为延迟加载和预加载 EF的关联实体加载有三种方式:Lazy Loading,Eager Loading,Explicit Loading,其中Lazy Loading和Explicit Lo ...

  8. JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)

    在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插 ...

  9. 如何评估ETL的数据加载时间

    简述如何评估大型ETL数据加载时间. 答:评估一个大型的ETL的数据加载时间是一件很复杂的事情.数据加载分为两类,一类是初次加载,另一类是增量加载. 在数据仓库正式投入使用时,需要进行一次初次加载,而 ...

  10. 浅谈Entity Framework中的数据加载方式

    如果你还没有接触过或者根本不了解什么是Entity Framework,那么请看这里http://www.entityframeworktutorial.net/EntityFramework-Arc ...

随机推荐

  1. 【路由器】OpenWrt 手动编译 ipk

    目录 .ipk 文件 编译准备 编译 .ipk 文件 更新 feeds 配置平台 获取交叉编译链 添加需要编译的第三方软件包 参考资料 .ipk 文件 .ipk 文件是可以通过 OpenWrt 的包管 ...

  2. 《Web安全基础》03. SQL 注入

    @ 目录 1:简要 SQL 注入 2:MySQL 注入 2.1:信息获取 2.2:跨库攻击 2.3:文件读写 2.4:常见防护 3:注入方法 3.1:类型方法明确 3.2:盲注 3.3:编码 3.4: ...

  3. QA|20221001|SecureCRT自动断开怎么办?

    Q:SecureCRT自动断开怎么办? A:如下设置

  4. Linux下MySQL备份指定数据库命令

    比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [root@linuxsir01 root]# mysqldump -u root -p li ...

  5. 在阿里云上部署Solid服务器

    1.Solid是什么? Solid(中文文档)是一个令人兴奋的新项目,由万维网发明者 Tim Berners-Lee 爵士在麻省理工学院启动. 该项目旨在从根本上改变 Web 应用程序的中心化趋势, ...

  6. Oracle查询--增加--删除--修改主键

    对Oracle表主键的操作,有四类:查询,增加,修改,删除 1.查询主键 /*查询某个表中存在的约束*/ select * from user_constraints where table_name ...

  7. C++ 转换构造函数

    在 C++ 中如果一个构造函数只有一个参数,那么这个构造函数就是转换构造函数(Converting Constructor),这个构造函数可以将参数类型转换成构造函数所在的类对应的类型. 举个例子,假 ...

  8. LeetCode 周赛上分之旅 #49 再探内向基环树

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...

  9. Django框架项目之上线——docker、部署上线

    文章目录 Docker CentOS安装Docker 设置管理Docker的仓库 安装Docker Engine-Community Docker基础命令 开启关闭 镜像操作 容器操作 Docker安 ...

  10. 前端三件套系例之JQuery——JQuery基础、JQuery选择器、JQuery文本属性样式操作、JQuery操作DOM

    文章目录 1 JQuery基础 1. 了解jQuery 1.1 什么是jQuery 1.2 什么事JS类库 1.3 常见JS类库 1.4 jQuery的优势 1.5 jQuery的版本 1.6 jQu ...