作者:Tirthajyoti Sarkar

翻译:王雨桐

校对:丁楠雅

本文约2600字,建议阅读9分钟

本文将带你了解UCI数据库的Python API,通过实际案例拆解并讲解代码。

本文将介绍如何为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,而使用基础函数,也是可行的。大致流程如下,首先导入必要的包。

from UCI_ML_Functions import *import pandas as pd

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,则仅创建目录而不下载(用于测试目的)

原文标题:

Introducing a simple and intuitive Python API for UCI machine learning repository

原文链接:

https://www.codementor.io/tirthajyotisarkar/introducing-a-simple-and-intuitive-python-api-for-uci-machine-learning-repository-p8dfargnt

译者简介

王雨桐,UIUC统计学在读硕士,本科统计专业,目前专注于Coding技能的提升。理论到应用的转换中,敬畏数据,持续进化。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

点击“阅读原文”拥抱组织

独家 | UCI机器学习数据库的Python API介绍相关推荐

  1. UCI机器学习数据库的Python API介绍

    作者:Tirthajyoti Sarkar:翻译:王雨桐:校对:丁楠雅 本文约2600字,建议阅读9分钟. 本文将带你了解UCI数据库的Python API,通过实际案例拆解并讲解代码. 本文将介绍如 ...

  2. UCI机器学习数据库使用说明

    UCI机器学习数据库的网址:      http://archive.ics.uci.edu/ml/ 数据库不断更新至2010年,是所有学习人工智能都需要用到的数据库,是看文章.写论文.测试算法的必备 ...

  3. 最佳实践 | 如何基于GitHub Actions创建 DolphinScheduler Python API的CI/CD?

    点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 01. DolphinScheduler 和 Python API 介绍 ...

  4. python人工智能——机器学习——数据的划分和介绍

    sklearn数据集 1.数据集划分 2.sklearn数据集接口介绍 3. sklearn分类数据集 4. sklearn回归数据集 数据集划分 机器学习一般的数据集会划分为两个部分: 训练数据:用 ...

  5. python 嵌入式数据库_Pysqlite下载 Pysqlite for Windows v2.6.3(嵌入式数据库python api 接口) 下载-脚本之家...

    Pysqlite是针对Windows用户设计的一款Python API接口,安装之后就可以进行数据库的连接.创建和管理,可以将sqlit的操作变得简单起来,详细的操作方法参见下文,需要的朋友赶快下载吧 ...

  6. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...

  7. Python+Selenium 自动化测试 2. Webdriver API介绍

    目录 一 Webdriver介绍 二 webdriver实现的原理 三  API介绍 Webdriver 元素的查找的八种方式 find_element_by_id()  源码 find_elemen ...

  8. 掘金量化—Python SDK文档—5.API 介绍(2)

    Python SDK文档 5.API介绍 5.6通用数据函数(免费) python 通用数据 API 包含在 gm3.0.148 版本及以上版本,不需要引入新库 get_symbol_infos - ...

  9. 机器学习算法——线性回归的详细介绍 及 利用sklearn包实现线性回归模型

    目录 1.线性回归简介 1.1 线性回归应用场景 1.2 什么是线性回归 1.2.1 定义与公式 1.2.2 线性回归的特征与目标的关系分析 2.线性回归api初步使用 2.1 线性回归API 2.2 ...

最新文章

  1. J2EE常用资源管理方式总结
  2. 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(2)(转)
  3. 获取Java对象中所有的属性名称和属性值
  4. 如何搭建企业数据平台
  5. springboot12 MVC自动配置原理
  6. 进阶项目(4)蜂鸣器程序设计讲解
  7. 为什么领导不喜欢能干的员工?有这4个表现,你再有本事也被抛弃
  8. python与java前景分析-Java和Python哪个未来前景好?
  9. Android Studio 生成二维码、生成带logo的二维码
  10. java多线程------锁
  11. c++中如何把任意类型的指针转化为void*
  12. 【Linux认证考试分数线多少】
  13. Java池化技术你了解多少?
  14. 工作中我目前想做的事的清单
  15. 赛门铁克杀html病毒,HTML 感染 DropFileName = “svchost.exe” Ramnit 蠕虫病毒 查杀解决办法...
  16. 不是所有云服务提供商都叫QAD
  17. c语言中的位移位操作
  18. Python利用selenium爬取行政区域存到MySQL里
  19. 随机数独的生成的实验思路概述
  20. 第八届工程训练大赛凸轮设计 matlab

热门文章

  1. (19)Reactor Processors——响应式Spring的道法术器
  2. Rabbitmq 相关介绍之双机镜像模式集群配置
  3. 修改Ubuntu的aptget源为阿里源的方法
  4. 软件安装——internal error2503/2502
  5. 强类型DataSet中的DBNull的处理
  6. mysql col与row_使用mysql实现row_number() over(partition by col1 order by col2)函数
  7. gitlab run成功 但无法访问_gitlab 部署 管理
  8. java 魔法王国,游历魔法王国
  9. 2021年3月19日 百度开发实习面试(质量效能研发部)(一面)
  10. keras扁平化 激活函数 避免过拟合技巧