0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何为UCI机器学习库引入一个简单直观的API

电子工程师 来源:lq 2019-02-04 14:15 次阅读

本文将介绍如何为UCI机器学习库引入一个简单直观的API。用户可以借此查看数据集描述,搜索感兴趣的数据集,甚至可以根据数据集大小或机器学习任务分类下载

介绍

UCI机器学习库是机器学习领域的一个神器。对于初学者和进阶学习者来说,它就像一家商店。它将数据库、业务知识以及用于机器学习算法实证分析的数据生成器集中在一起。1987年,加州大学欧文分校的David Aha和他的学生以ftp档案的形式创建了该网站。从那时开始,全世界的学生、教育工作者和研究人员将其作为机器学习数据集的主要来源。作为文档影响的一个标志,它已被引用超过1000次,使其成为计算机科学中引用率最高的100篇“论文”之一。

附UCI链接:

http://archive.ics.uci.edu/ml/index.php

相比之下,用户要操纵门户网站费时费力,因为感兴趣的数据集没有简单直观的API或下载链接,必须跳转多个页面才能转到目标数据所在的原始页面。此外,如果你对特定类型的机器学习任务(例如回归或分类)感兴趣并且想要下载与该任务相对应的所有数据集,很难通过简单的命令实现。

我很高兴能为UCI ML网站引入一个简单直观的API,用户可以轻松查找数据集描述,搜索他们感兴趣的特定数据集,甚至可以按大小或机器学习任务分类下载数据集。

从此处下载

这是一个由MIT授权的Python 3.6开源代码库,它提供了函数和方法,以便用户通过交互方式使用UCI ML数据集。以下Github页面可以下载/复制/分离代码库。

附Github:

https://github.com/tirthajyoti/UCI-ML-API

所需要的包

运行此代码只需要以下三个广泛使用的Python包。为了便于安装这些支持包,setup.bash和setup.bat文件包含在我的repo中。只需在Linux / Windows shell中运行即可!

Pandas

Beautifulsoup 4

Requests

如何运行?

首先,确保你已连接到网络!然后,只需下载/克隆Github中的repo,确保安装了以上包。

git clone https://github.com/tirthajyoti/UCI-ML-API.git

{your_local_directory}

然后转到已克隆Git的your_local_directory并在终端上运行以下命令。

python Main.py

随后将打开一个菜单,允许你执行各种任务。菜单的屏幕截图如下:

目前支持的特征和函数

以下是目前应用的特征(即上图中1-9)

1.抓取整个网站以构建本地数据库,其中包括数据集名称,描述和URL。

2.抓取整个网站以构建本地数据库,其中包括数据集名称,大小和机器学习任务。

3.搜索并下载特定数据集。

4.下载前几个数据集。

5.显示所有数据集的名称。

6.显示所有数据集的简要描述。

7.搜索数据集的单行描述和网页链接(了解更多信息)。

8.根据数据集大小下载数据集。

9.根据与之关联的机器学习任务下载数据集。

案例(搜索并下载某个数据集)

例如,如果要下载著名的Iris数据集,只需从菜单中选择选项3,输入存储的本地数据库的名称(以便搜索更迅速)。 就可以下载Iris数据集并将其存储在名为“Iris”的文件夹中!

案例(搜索包含关键词的数据集)

如果选择选项7,将使用关键字进行搜索,得到名称与搜索字符串匹配的所有数据集(甚至部分)的简短摘要。你还可以获得每个结果的网页链接,以便根据需要进一步探索数据。 下面的屏幕截图是使用关键词Cancer进行搜索的结果。

如果你想另辟蹊径

如果你想避开这个简单的用户API,而使用基础函数,也是可行的。大致流程如下,首先导入必要的包。

fromUCI_ML_Functions import*importpandas aspd

read_dataset_table():从url读取数据集并进一步处理以便后续的数据清洗和分类。

url:

https://archive.ics.uci.edu/ml/datasets.html

clean_dataset_table():清洗原始数据集(数据框对象(DataFrame))并返回数据。处理后的数据删除了包含空缺值的观测。并且删除了“默认任务”列,该列用来显示与数据集关联的主机学习任务。

build_local_table(filename=None, msg_flag=True):读取UCI ML网站并使用名称,大小,ML任务,数据类型等信息构建本地表。

filename:用户可以选择的文件名。如果未选择,则选择默认名称('UCI table.csv')

msg_flag:控制信息复杂度(verbosity)

build_dataset_list():抓取UCI ML数据集页面的信息,并构建包含所有数据集信息的列表。

build_dataset_dictionary():抓取UCI ML数据集页面的信息,并构建包含所有数据集名称和描述的字典(dictionary)。此外,还对应数据集生成了唯一标识符,下载器需要这个标识符字符串来下载数据文件。这种情况下,通用名称不起作用。

build_full_dataframe():构建一个包含所有信息的数据框(DataFrame),包括用于下载数据的URL链接。

build_local_database(filename=None, msg_flag=True):读取UCI ML网站并使用以下信息构建本地数据库:name,abstract,data page URL。

filename:可由用户选择的文件名。如果未选择,程序将选择默认名称('UCI database.csv')

msg_flag:控制信息复杂度(verbosity)

return_abstract(name,local_database=None,msg_flag=False):通过搜索给定的名称,返回特定数据集的单行描述(以及更多信息的网页链接)。

local_database:本地存储的数据库名称(CSV文件),即在同一目录中,其中包含有关UCI ML repo上所有数据集的信息

msg_flag:控制信息复杂度(verbosity)

describe_all_dataset(msg_flag=False):调用build_dataset_dictionary函数并显示所有数据集的描述。

print_all_datasets_names(msg_flag=False):调用build_dataset_dictionary函数并显示所有数据集的名称。

extract_url_dataset(dataset,msg_flag=False):给定数据集标识符,此函数提取实际原始数据所在页面的URL。

download_dataset_url(url,directory,msg_flag=False,download_flag=True):从给定url中的链接下载所有文件。

msg_flag:控制信息复杂度(verbosity)

download_flag:默认为True。如果设置为False,则仅创建目录但不下载(用于测试目的)

download_datasets(num=10,local_database=None,msg_flag=True,download_flag=True):下载数据集并将它们放在以数据集命名的本地目录中。默认情况下,仅下载前10个数据集。用户可以选择要下载的数据集数量。

msg_flag:控制信息复杂度(verbosity)

download_flag:默认为True。如果设置为False,则仅创建目录但不启动下载(用于测试目的)

download_dataset_name(name,local_database=None,msg_flag=True,download_flag=True):根据下载指定名称的数据集。

local_database:本地存储的数据库名称(CSV文件),即在同一目录中包含有关UCI ML存储库中所有数据集的名称和URL信息

msg_flag:控制信息复杂度(verbosity)

download_flag:默认为True。如果设置为False,则仅创建目录但不启动下载(用于测试目的)

download_datasets_size(size='Small',local_database=None,local_table=None,msg_flag=False,download_flag=True):下载满足'size'标准的所有数据集。

size:用户想要下载的数据集的大小。取值可以是以下任何一种:‘Small’, ‘Medium’, ‘Large’, ’Extra Large’。

local_database:本地存储的数据库名称(CSV文件),即在同一目录中包含有关UCI ML存储库中所有数据集的名称和URL信息。

local_table:本地存储的数据库名称(CSV文件),即在同一目录中包含关于UCI ML repo上所有数据集的特征信息,即样本数量以及数据集执行的机器学习任务类型。

msg_flag:控制信息复杂度(verbosity)。

download_flag:默认值为True。如果设置为False,则仅创建目录而不下载(用于测试目的)。

download_datasets_task(task='Classification',local_database=None,local_table=None,msg_flag=False,download_flag=True):下载用户想要的所有符合ML任务标准的数据集。

task:用户想要下载数据集的机器学习任务。task取值可以是以下任何一种:'Classification', 'Recommender Systems', 'Regression', 'Other/Unknown', 'Clustering', 'Causal Discovery'

local_database:本地存储的数据库名称(CSV文件),即在同一目录中包含有关UCI ML存储库中所有数据集的名称和URL信息

local_table:本地存储的数据库名称(CSV文件),即在同一目录中包含关于UCI ML repo上所有数据集的特征信息,即样本数量以及数据集执行的机器学习任务类型

msg_flag:控制信息复杂度(verbosity)

download_flag:默认值为True。如果设置为False,则仅创建目录而不下载(用于测试目的)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8453

    浏览量

    133167
  • 数据集
    +关注

    关注

    4

    文章

    1210

    浏览量

    24865

原文标题:UCI 机器学习数据库的 Python API 介绍

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python机器学习常用

    是同类API中最好的选择之。以上是Python开发工程师必知十大机器学习,除此之外,还有OverFeat、Nolearn以及Decaf等
    发表于 03-26 16:29

    50多种适合机器学习和预测应用的API,你的选择是?(2018年版本)

    据分析服务。用户可以建立数据源,并通过标准的HTTP创建模型来处理标准的有监督和无监督学习机器学习任务。3.Google Cloud
    发表于 05-03 16:41

    使用 Python 开始机器学习

    StackOverFlow上找到关于很多问题详细解答(学习基石)。再次,强大的社区带来的副产品就是大量有用程序(Python内部自带的和第三方软件),基本上可以解决你所有的问题(
    发表于 12-11 18:37

    50机器学习实用API干货

    还在为找不到机器学习API而烦恼吗?本篇文章将介绍包含50+关于人脸和图像识别,文本分析,NLP,情感分析,语言翻译,
    发表于 10-06 08:00

    了解基于FastCV视觉的SVM机器学习算法

    SVM是种常用的机器学习算法,在人工智能、模式识别、图像识别等领域有着非常广泛的应用,本节将结合FastCV提供的fcvSVMPredict2Classf32
    发表于 02-08 10:52 3406次阅读
    了解基于FastCV视觉<b class='flag-5'>库</b>的SVM<b class='flag-5'>机器</b><b class='flag-5'>学习</b>算法

    Spark机器学习的各种机器学习算法

    本文将简要介绍Spark机器学习(Spark MLlibs APIs)的各种机器学习算法,主要包括:统计算法、分类算法、聚类算法和协同过滤
    发表于 09-28 16:44 1次下载

    Python机器学习

    份囊括些很好的Python机器学习的清单,并将其张贴在下面。 在我看来,Python是学习(和实现)
    发表于 10-13 16:21 0次下载

    最全面的52机器学习API盘点,文让你全get

    随着基于人工智能与机器学习的应用如雨后春笋般不断涌现,我们也看到有很多提供类似功能的API悄悄登上了舞台。 API是用于构建软件应用的程序、协议以及工具的组合。所有的
    发表于 12-07 11:10 0次下载

    50机器学习实用API

    还在为找不到机器学习API而烦恼吗?本篇文章将介绍包含50+关于人脸和图像识别,文本分析,NLP,情感分析,语言翻译,
    的头像 发表于 06-13 18:20 4353次阅读

    机器学习训练秘籍》中的六概念

    吴恩达在该书中从头到尾直强调:由于机器学习迭代的过程,快速迭代至关重要。比起去思考如何为
    的头像 发表于 03-05 13:44 2868次阅读

    DeepMind又放福利:开源了内部的分布式机器学习TF-Replicator

    TensorFlow 针对 TPU 的原生 API 与针对 GPU 的方式不同,这造成了使用 TPU 的障碍。TF-Replicator 提供了简单、更用户友好的
    的头像 发表于 03-10 09:41 3446次阅读

    Danfo.js提供高性能、直观易用的数据结构,支持结构化数据的操作和处理

    /API。因此熟悉 Pandas API 且了解 JavaScript 的用户可以轻松上手。 Danfo.js 的大目标是为 JavaScript 开发者提供数据处理、机器
    的头像 发表于 09-23 18:21 5376次阅读

    谈谈如何将机器学习引入自动化

    今天,笔者尝试通过般性方法的介绍来谈谈如何将机器学习引入自动化,同时对
    的头像 发表于 10-09 15:55 2403次阅读

    MindSpore量子机器学习MindQuantum

    MindSpore在3.28日正式开源了量子机器学习MindQuantum,本文介绍MindQuantum的关键技术。介绍MindQuantum前,先简单阐述下量子计算的...
    发表于 01-25 17:58 0次下载
    MindSpore量子<b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>库</b>MindQuantum

    python中如何引入math

    等。在本文中,将详细介绍如何引入math,并且讨论各种数学函数的应用。 为了引入math,我们可以使用以下代码: import math 这个语句会将整个math
    的头像 发表于 11-22 11:03 4480次阅读