Tirthajyoti作者

为UCI机器学习库引入简单直观的Python API(附代码)

此文将教大家为UCI机器学习门户引入简单直观的API,用户可以轻松查找数据集描述,搜索他们感兴趣的特定数据集,甚至可以下载按大小或机器学习任务分类的数据集。

介绍

UCI机器学习数据集库是机器学习教学法领域的一个传奇。对于初学者和高级学习者来说,这是一个“go-to-shop”。它是机器学习社区用于机器学习算法的实证分析的数据库,领域理论和数据生成器的集合。

该档案由David Aha和加州大学欧文分校的研究生于1987年创建为ftp档案。从那时起,它已被全世界的学生、教育工作者和研究人员广泛用作机器学习数据集的主要来源。作为档案影响的一个标志,它已被引用超过1000次,使其成为所有计算机科学中被引用率最高的100篇“论文”之一。

也就是说,导航门户网站可能有点令人沮丧和耗时,因为您感兴趣的数据集没有简单直观的API或下载链接。您必须跳转多个页面才能转到您所在的原始数据集页面寻找。此外,如果您对特定类型的ML任务(例如回归或分类)感兴趣并且想要下载与该任务相对应的所有数据集,则没有简单的命令来完成此任务。

下载

这是一个获得MIT许可的开源Python 3.6代码库,它提供了允许用户以交互方式使用UCI ML数据集的功能和方法。

GitHub地址:https://github.com/tirthajyoti/UCI-ML-API

必需的包

运行此代码只需要三个广泛使用的Python包:

  • Pandas

  • Beautifulsoup 4

  • Requests

如何运行

确保你已连接到Internet,然后,只需下载/克隆Gitgub仓库,确保安装了支持包。

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

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

python Main.py

将打开一个菜单,允许您执行各种任务。这是菜单的屏幕截图,

目前支持的功能

  • 通过爬网整个门户来构建数据集的名称,描述和URL的本地数据库

  • 通过爬网整个门户,构建数据集的名称、大小和机器学习任务的本地数据库

  • 搜索并下载特定数据集

  • 下载前几个数据集

  • 打印所有数据集的名称

  • 打印所有数据集的简短描述

  • 搜索数据集的单行描述和网页链接

  • 根据数据集的大小下载数据集

  • 根据与其关联的机器学习任务下载数据集

示例(搜索并下载特定数据集)

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

示例(搜索具有特定关键字的数据集)

如果您通过选择选项7使用关键字进行搜索,那么您将获得关于名称与搜索字符串匹配的所有数据集的简短单行摘要(甚至部分)。您还将获得每个结果的相关网页链接,以便您可以根据需要更多地浏览它们。屏幕截图下方显示了使用该术语进行搜索的示例Cancer。

如果想绕过简单的API并使用函数

如果您想绕过简单的用户API并使用低级功能,首先,导入必要的包。

from UCI_ML_Functions import * import pandas as pd

read_dataset_table():从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: 控制冗长。

build_dataset_list():通过UCI ML数据集页面进行刮擦并构建所有数据集的列表。

build_dataset_dictionary(): 通过UCI ML数据集页面进行刮擦,并构建包含名称和描述的所有数据集的字典。还存储对应于数据集的唯一标识符,下载器功能需要此标识符字符串来下载数据文件,通用名称不起作用。

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

build_local_database(filename=None,msg_flag=True): 读取UCI ML门户并使用以下信息构建本地数据库:名称、摘要和数据页URL。

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

  • msg_flag: 控制冗长。

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

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

  • msg_flag: 控制冗长。

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): 从给定网址中的链接下载所有文件。

  • msg_flag: 控制冗长。

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

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

  • msg_flag: 控制冗长。

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

download_dataset_name(name,local_database=None,msg_flag=True,download_flag=True): 通过搜索给定名称下载特定数据集。

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

  • msg_flag: 控制冗长。

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

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

  • size: 用户要下载的数据集的大小。可以是以下任何一种:小、中、大和超大。

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

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

  • msg_flag: 控制冗长。

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

download_datasets_task(task='Classification',local_database=None,local_table=None,msg_flag=False,download_flag=True): 下载与用户执行的ML任务条件匹配的所有数据集。

  • task:用户想要下载数据集的机器学习任务。可以是以下任何一种:分类、推荐系统、回归、其他/未知、聚类、因果发现。

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

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

  • msg_flag: 控制冗长。

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

译者:学术君

AMiner学术头条
AMiner学术头条

AMiner平台由清华大学计算机系研发,拥有我国完全自主知识产权。系统2006年上线,吸引了全球220个国家/地区800多万独立IP访问,数据下载量230万次,年度访问量1000万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。

https://www.aminer.cn/
专栏二维码
工程数据库APIPython机器学习
1
相关数据
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

推荐系统技术

推荐系统(RS)主要是指应用协同智能(collaborative intelligence)做推荐的技术。推荐系统的两大主流类型是基于内容的推荐系统和协同过滤(Collaborative Filtering)。另外还有基于知识的推荐系统(包括基于本体和基于案例的推荐系统)是一类特殊的推荐系统,这类系统更加注重知识表征和推理。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~