首页 > 其他分享 >【scikit-learn基础】--『数据加载』之外部数据集

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

时间:2023-12-09 10:34:48浏览次数:28  
标签:svmlight -- scikit learn 数据 加载

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

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

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

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

1. openml.org 数据集

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

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

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函数。

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

标签:svmlight,--,scikit,learn,数据,加载
From: https://www.cnblogs.com/wang_yb/p/17889597.html

相关文章

  • Linux分区方案、分区建议及手动分区操作步骤
    一.Linux分区方案介绍:1.标准分区:标准分区可以包含文件系统或交换空间,也能提供一个容器,用于软件RAID和LVM物理卷。2.BTRFS:Btrfs是一个具有几个设备相同的特征的文件系统。它能够处理和管理多个文件,大文件和大体积比的ext2,ext3和ext4文件系统。3.LVM(逻辑卷):创建一个LVM分区自动生成一......
  • JDBC针对SQLServer的sendStringParametersAsUnicode=false的验证
    JDBC针对SQLServer的sendStringParametersAsUnicode=false的验证背景部分客户的SQLServer数据库出现了大量死锁的情况.虽然部分客户并没有反馈死锁影响了产品的正常使用但是在大量业务时还是会出现卡顿等的现象基于此,经过微软case的研究,发现是JDBC4.0之后默认为ture的......
  • opencv cpp的安装
    搞了半天,可算弄好了. vsopencvcpp: https://blog.csdn.net/weixin_50918736/article/details/130176469?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-130176469-blog-127627204.235%5Ev39%5Epc_relevant_a......
  • 26-进阶SQL-存储引擎
    注意:数据库中经常会用到的索引就在引擎层  案例:创建账户表(熟悉存储引擎)CREATETABLEaccount(idintauto_incrementprimarykeycomment"主键ID",namevarchar(10)comment"姓名",moneyintcomment"余额")comment"账户表";INSERTINTOac......
  • 堆叠集群 MAD多主检测
    1:iStack,堆叠,盒式设备CSS,集群,高端框式设备堆叠可以多台设备进行堆叠集群只能是将两台支持集群特性设备组合一起所以要是说都可以组合多台设备上错误的咯堆叠和集群技术特点:简单,配置简单,网络架构,拓扑变得简单,无环路风险,不用跑STP等协议报文了可靠,主主模式,不存在闲置链路;收敛物理......
  • 平安银行财务管理问题研究——论文文档
    利率市场化的深入推进过程中,银行所承受的财务管理压力也在不断加大,尽管我国经济保持着正常、稳定的发展,但是银行业的整体经营状况仍然令人担忧,其经营净利润的增长率明显放缓,而且所面临的风险和挑战也越来越多。平安银行一直致力于推动农业和农村经济的发展,但随着市场竞争的加剧和盈......
  • PACS医学影像报告管理系统源码带CT三维后处理技术
    从各种医学影像检查设备中获取、存储、处理影像数据,传输到体检信息系统中,生成图文并茂的体检报告,满足体检中心高水准、高效率影像处理的需要。自主知识产权:拥有完整知识产权,能够同其他模块无缝对接国际标准:按照国际规范DICON3.0标准处理医学影像数据无缝对接:无缝对接各种体检影......
  • uml知识点
    UML的静态模型图包含:用例图、类图、对象图、包图、组件图和部署图等UML的动态模型图包含:活动图、时序图(顺序图、序列图)、状态图和协作图组成UML的最终产物是软件系统和相关软件文档资料。UML建立在元模型理论基础上,包括4层元模型结构,层层抽象,下一层是上一层的实例。UML的模型可......
  • 通信工程项目中网络优化研究——LW
    选题背景通讯系统工程是一个具有高科技含量的专业知识密集型系统工程,其特点在于信息的快速发展,使得它具有较强的时效性。然而,与其他类型的系统工程不同,通信工程受到许多因素的制约,因此,在进一步优化通信工程时,不宜仅仅依靠成本和进度等策略。一般通信工程中大多数设备都具有不可移......
  • 12.9 蓝桥杯 huffuman树c语言
    今天学习了蓝桥杯的huffuman树,总结如下:问题描述Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数{pi}={p0,p1,…,pn-1},用这列数构造Huffman树的过程如下:1.找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加......