独家 | UCI机器学习数据库的Python API介绍
作者: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介绍相关推荐
- UCI机器学习数据库的Python API介绍
作者:Tirthajyoti Sarkar:翻译:王雨桐:校对:丁楠雅 本文约2600字,建议阅读9分钟. 本文将带你了解UCI数据库的Python API,通过实际案例拆解并讲解代码. 本文将介绍如 ...
- UCI机器学习数据库使用说明
UCI机器学习数据库的网址: http://archive.ics.uci.edu/ml/ 数据库不断更新至2010年,是所有学习人工智能都需要用到的数据库,是看文章.写论文.测试算法的必备 ...
- 最佳实践 | 如何基于GitHub Actions创建 DolphinScheduler Python API的CI/CD?
点亮 ⭐️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 01. DolphinScheduler 和 Python API 介绍 ...
- python人工智能——机器学习——数据的划分和介绍
sklearn数据集 1.数据集划分 2.sklearn数据集接口介绍 3. sklearn分类数据集 4. sklearn回归数据集 数据集划分 机器学习一般的数据集会划分为两个部分: 训练数据:用 ...
- python 嵌入式数据库_Pysqlite下载 Pysqlite for Windows v2.6.3(嵌入式数据库python api 接口) 下载-脚本之家...
Pysqlite是针对Windows用户设计的一款Python API接口,安装之后就可以进行数据库的连接.创建和管理,可以将sqlit的操作变得简单起来,详细的操作方法参见下文,需要的朋友赶快下载吧 ...
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装 安装及简单使用:https://github.com/andymccurdy/ ...
- Python+Selenium 自动化测试 2. Webdriver API介绍
目录 一 Webdriver介绍 二 webdriver实现的原理 三 API介绍 Webdriver 元素的查找的八种方式 find_element_by_id() 源码 find_elemen ...
- 掘金量化—Python SDK文档—5.API 介绍(2)
Python SDK文档 5.API介绍 5.6通用数据函数(免费) python 通用数据 API 包含在 gm3.0.148 版本及以上版本,不需要引入新库 get_symbol_infos - ...
- 机器学习算法——线性回归的详细介绍 及 利用sklearn包实现线性回归模型
目录 1.线性回归简介 1.1 线性回归应用场景 1.2 什么是线性回归 1.2.1 定义与公式 1.2.2 线性回归的特征与目标的关系分析 2.线性回归api初步使用 2.1 线性回归API 2.2 ...
最新文章
- J2EE常用资源管理方式总结
- 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(2)(转)
- 获取Java对象中所有的属性名称和属性值
- 如何搭建企业数据平台
- springboot12 MVC自动配置原理
- 进阶项目(4)蜂鸣器程序设计讲解
- 为什么领导不喜欢能干的员工?有这4个表现,你再有本事也被抛弃
- python与java前景分析-Java和Python哪个未来前景好?
- Android Studio 生成二维码、生成带logo的二维码
- java多线程------锁
- c++中如何把任意类型的指针转化为void*
- 【Linux认证考试分数线多少】
- Java池化技术你了解多少?
- 工作中我目前想做的事的清单
- 赛门铁克杀html病毒,HTML 感染 DropFileName = “svchost.exe” Ramnit 蠕虫病毒 查杀解决办法...
- 不是所有云服务提供商都叫QAD
- c语言中的位移位操作
- Python利用selenium爬取行政区域存到MySQL里
- 随机数独的生成的实验思路概述
- 第八届工程训练大赛凸轮设计 matlab
热门文章
- (19)Reactor Processors——响应式Spring的道法术器
- Rabbitmq 相关介绍之双机镜像模式集群配置
- 修改Ubuntu的aptget源为阿里源的方法
- 软件安装——internal error2503/2502
- 强类型DataSet中的DBNull的处理
- mysql col与row_使用mysql实现row_number() over(partition by col1 order by col2)函数
- gitlab run成功 但无法访问_gitlab 部署 管理
- java 魔法王国,游历魔法王国
- 2021年3月19日 百度开发实习面试(质量效能研发部)(一面)
- keras扁平化 激活函数 避免过拟合技巧