相比之下,用戶要操縱門戶網(wǎng)站費(fèi)時(shí)費(fèi)力,因?yàn)楦信d趣的數(shù)據(jù)集沒有簡(jiǎn)單直觀的API或下載鏈接,必須跳轉(zhuǎn)多個(gè)頁(yè)面才能轉(zhuǎn)到目標(biāo)數(shù)據(jù)所在的原始頁(yè)面。此外,如果你對(duì)特定類型的機(jī)器學(xué)習(xí)任務(wù)(例如回歸或分類)感興趣并且想要下載與該任務(wù)相對(duì)應(yīng)的所有數(shù)據(jù)集,很難通過簡(jiǎn)單的命令實(shí)現(xiàn)。

我很高興能為UCI ML網(wǎng)站引入一個(gè)簡(jiǎn)單直觀的API,用戶可以輕松查找數(shù)據(jù)集描述,搜索他們感興趣的特定數(shù)據(jù)集,甚至可以按大小或機(jī)器學(xué)習(xí)任務(wù)分類下載數(shù)據(jù)集。

從此處下載

這是一個(gè)由MIT授權(quán)的Python 3.6開源代碼庫(kù),它提供了函數(shù)和方法,以便用戶通過交互方式使用UCI ML數(shù)據(jù)集。以下Github頁(yè)面可以下載/復(fù)制/分離代碼庫(kù)。

附Github:

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

所需要的包

運(yùn)行此代碼只需要以下三個(gè)廣泛使用的Python包。為了便于安裝這些支持包,setup.bash和setup.bat文件包含在我的repo中。只需在Linux / Windows shell中運(yùn)行即可!

如何運(yùn)行?

首先,確保你已連接到網(wǎng)絡(luò)!然后,只需下載/克隆Github中的repo,確保安裝了以上包。

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

{your_local_directory}

然后轉(zhuǎn)到已克隆Git的your_local_directory并在終端上運(yùn)行以下命令。

python Main.py

隨后將打開一個(gè)菜單,允許你執(zhí)行各種任務(wù)。菜單的屏幕截圖如下:

目前支持的特征和函數(shù)

以下是目前應(yīng)用的特征(即上圖中1-9)

1. 抓取整個(gè)網(wǎng)站以構(gòu)建本地?cái)?shù)據(jù)庫(kù),其中包括數(shù)據(jù)集名稱,描述和URL

2. 抓取整個(gè)網(wǎng)站以構(gòu)建本地?cái)?shù)據(jù)庫(kù),其中包括數(shù)據(jù)集名稱,大小和機(jī)器學(xué)習(xí)任務(wù)。

3. 搜索并下載特定數(shù)據(jù)集。

4. 下載前幾個(gè)數(shù)據(jù)集。

5. 顯示所有數(shù)據(jù)集的名稱。

6. 顯示所有數(shù)據(jù)集的簡(jiǎn)要描述。

7. 搜索數(shù)據(jù)集的單行描述和網(wǎng)頁(yè)鏈接(了解更多信息)。

8. 根據(jù)數(shù)據(jù)集大小下載數(shù)據(jù)集。

9. 根據(jù)與之關(guān)聯(lián)的機(jī)器學(xué)習(xí)任務(wù)下載數(shù)據(jù)集。

案例(搜索并下載某個(gè)數(shù)據(jù)集)

例如,如果要下載著名的Iris數(shù)據(jù)集,只需從菜單中選擇選項(xiàng)3,輸入存儲(chǔ)的本地?cái)?shù)據(jù)庫(kù)的名稱(以便搜索更迅速)。 就可以下載Iris數(shù)據(jù)集并將其存儲(chǔ)在名為“Iris”的文件夾中!

案例(搜索包含關(guān)鍵詞的數(shù)據(jù)集)

如果選擇選項(xiàng)7,將使用關(guān)鍵字進(jìn)行搜索,得到名稱與搜索字符串匹配的所有數(shù)據(jù)集(甚至部分)的簡(jiǎn)短摘要。你還可以獲得每個(gè)結(jié)果的網(wǎng)頁(yè)鏈接,以便根據(jù)需要進(jìn)一步探索數(shù)據(jù)。 下面的屏幕截圖是使用關(guān)鍵詞Cancer進(jìn)行搜索的結(jié)果。

如果你想另辟蹊徑

如果你想避開這個(gè)簡(jiǎn)單的用戶API,而使用基礎(chǔ)函數(shù),也是可行的。

大致流程如下,首先導(dǎo)入必要的包。

from UCI_ML_Functions import *import pandas as pd

read_dataset_table():從url讀取數(shù)據(jù)集并進(jìn)一步處理以便后續(xù)的數(shù)據(jù)清洗和分類。

url:

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

clean_dataset_table():清洗原始數(shù)據(jù)集(數(shù)據(jù)框?qū)ο螅―ataFrame))并返回?cái)?shù)據(jù)。處理后的數(shù)據(jù)刪除了包含空缺值的觀測(cè)。并且刪除了“默認(rèn)任務(wù)”列,該列用來(lái)顯示與數(shù)據(jù)集關(guān)聯(lián)的主機(jī)學(xué)習(xí)任務(wù)。

build_local_table(filename=None, msg_flag=True):讀取UCI ML網(wǎng)站并使用名稱,大小,ML任務(wù),數(shù)據(jù)類型等信息構(gòu)建本地表。

build_dataset_list():抓取UCI ML數(shù)據(jù)集頁(yè)面的信息,并構(gòu)建包含所有數(shù)據(jù)集信息的列表。

build_dataset_dictionary():抓取UCI ML數(shù)據(jù)集頁(yè)面的信息,并構(gòu)建包含所有數(shù)據(jù)集名稱和描述的字典(dictionary)。此外,還對(duì)應(yīng)數(shù)據(jù)集生成了唯一標(biāo)識(shí)符,下載器需要這個(gè)標(biāo)識(shí)符字符串來(lái)下載數(shù)據(jù)文件。這種情況下,通用名稱不起作用。

build_full_dataframe():構(gòu)建一個(gè)包含所有信息的數(shù)據(jù)框(DataFrame),包括用于下載數(shù)據(jù)的URL鏈接。

build_local_database(filename=None, msg_flag=True):讀取UCI ML網(wǎng)站并使用以下信息構(gòu)建本地?cái)?shù)據(jù)庫(kù):name,abstract,data page URL。

return_abstract(name,local_database=None,msg_flag=False):通過搜索給定的名稱,返回特定數(shù)據(jù)集的單行描述(以及更多信息的網(wǎng)頁(yè)鏈接)。

describe_all_dataset(msg_flag=False):調(diào)用build_dataset_dictionary函數(shù)并顯示所有數(shù)據(jù)集的描述。

print_all_datasets_names(msg_flag=False):調(diào)用build_dataset_dictionary函數(shù)并顯示所有數(shù)據(jù)集的名稱。

extract_url_dataset(dataset,msg_flag=False):給定數(shù)據(jù)集標(biāo)識(shí)符,此函數(shù)提取實(shí)際原始數(shù)據(jù)所在頁(yè)面的URL。

download_dataset_url(url,directory,msg_flag=False,download_flag=True):從給定url中的鏈接下載所有文件。

download_datasets(num=10,local_database=None,msg_flag=True,download_flag=True):下載數(shù)據(jù)集并將它們放在以數(shù)據(jù)集命名的本地目錄中。默認(rèn)情況下,僅下載前10個(gè)數(shù)據(jù)集。用戶可以選擇要下載的數(shù)據(jù)集數(shù)量。

download_dataset_name(name,local_database=None,msg_flag=True,download_flag=True):根據(jù)下載指定名稱的數(shù)據(jù)集。

download_datasets_size(size=’Small’,local_database=None,local_table=None,msg_flag=False,download_flag=True):下載滿足’size’標(biāo)準(zhǔn)的所有數(shù)據(jù)集。

download_datasets_task(task=’Classification’,local_database=None,local_table=None,msg_flag=False,download_flag=True):下載用戶想要的所有符合ML任務(wù)標(biāo)準(zhǔn)的數(shù)據(jù)集。

原文標(biāo)題:

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

本文章轉(zhuǎn)載微信公眾號(hào)@數(shù)據(jù)派THU

上一篇:

借助 NVIDIA Metropolis 微服務(wù)和API構(gòu)建邊緣視覺AI應(yīng)用

下一篇:

深入解密Elasticsearch查詢優(yōu)化:巧用Profile工具/API提升性能
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)