0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何為UCI機(jī)器學(xué)習(xí)庫(kù)引入一個(gè)簡(jiǎn)單直觀的API

電子工程師 ? 來(lái)源:lq ? 2019-02-04 14:15 ? 次閱讀

本文將介紹如何為UCI機(jī)器學(xué)習(xí)庫(kù)引入一個(gè)簡(jiǎn)單直觀的API。用戶可以借此查看數(shù)據(jù)集描述,搜索感興趣的數(shù)據(jù)集,甚至可以根據(jù)數(shù)據(jù)集大小或機(jī)器學(xué)習(xí)任務(wù)分類下載。

介紹

UCI機(jī)器學(xué)習(xí)庫(kù)是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)神器。對(duì)于初學(xué)者和進(jìn)階學(xué)習(xí)者來(lái)說(shuō),它就像一家商店。它將數(shù)據(jù)庫(kù)、業(yè)務(wù)知識(shí)以及用于機(jī)器學(xué)習(xí)算法實(shí)證分析的數(shù)據(jù)生成器集中在一起。1987年,加州大學(xué)歐文分校的David Aha和他的學(xué)生以ftp檔案的形式創(chuàng)建了該網(wǎng)站。從那時(shí)開始,全世界的學(xué)生、教育工作者和研究人員將其作為機(jī)器學(xué)習(xí)數(shù)據(jù)集的主要來(lái)源。作為文檔影響的一個(gè)標(biāo)志,它已被引用超過1000次,使其成為計(jì)算機(jī)科學(xué)中引用率最高的100篇“論文”之一。

附UCI鏈接:

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

相比之下,用戶要操縱門戶網(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)行即可!

Pandas

Beautifulsoup 4

Requests

如何運(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)入必要的包。

fromUCI_ML_Functions import*importpandas aspd

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)建本地表。

filename:用戶可以選擇的文件名。如果未選擇,則選擇默認(rèn)名稱('UCI table.csv')

msg_flag:控制信息復(fù)雜度(verbosity)

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。

filename:可由用戶選擇的文件名。如果未選擇,程序?qū)⑦x擇默認(rèn)名稱('UCI database.csv')

msg_flag:控制信息復(fù)雜度(verbosity)

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

local_database:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中,其中包含有關(guān)UCI ML repo上所有數(shù)據(jù)集的信息

msg_flag:控制信息復(fù)雜度(verbosity)

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中的鏈接下載所有文件。

msg_flag:控制信息復(fù)雜度(verbosity)

download_flag:默認(rèn)為True。如果設(shè)置為False,則僅創(chuàng)建目錄但不下載(用于測(cè)試目的)

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ù)量。

msg_flag:控制信息復(fù)雜度(verbosity)

download_flag:默認(rèn)為True。如果設(shè)置為False,則僅創(chuàng)建目錄但不啟動(dòng)下載(用于測(cè)試目的)

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

local_database:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中包含有關(guān)UCI ML存儲(chǔ)庫(kù)中所有數(shù)據(jù)集的名稱和URL信息

msg_flag:控制信息復(fù)雜度(verbosity)

download_flag:默認(rèn)為True。如果設(shè)置為False,則僅創(chuàng)建目錄但不啟動(dòng)下載(用于測(cè)試目的)

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

size:用戶想要下載的數(shù)據(jù)集的大小。取值可以是以下任何一種:‘Small’, ‘Medium’, ‘Large’, ’Extra Large’。

local_database:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中包含有關(guān)UCI ML存儲(chǔ)庫(kù)中所有數(shù)據(jù)集的名稱和URL信息。

local_table:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中包含關(guān)于UCI ML repo上所有數(shù)據(jù)集的特征信息,即樣本數(shù)量以及數(shù)據(jù)集執(zhí)行的機(jī)器學(xué)習(xí)任務(wù)類型。

msg_flag:控制信息復(fù)雜度(verbosity)。

download_flag:默認(rèn)值為True。如果設(shè)置為False,則僅創(chuàng)建目錄而不下載(用于測(cè)試目的)。

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ù)集。

task:用戶想要下載數(shù)據(jù)集的機(jī)器學(xué)習(xí)任務(wù)。task取值可以是以下任何一種:'Classification', 'Recommender Systems', 'Regression', 'Other/Unknown', 'Clustering', 'Causal Discovery'

local_database:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中包含有關(guān)UCI ML存儲(chǔ)庫(kù)中所有數(shù)據(jù)集的名稱和URL信息

local_table:本地存儲(chǔ)的數(shù)據(jù)庫(kù)名稱(CSV文件),即在同一目錄中包含關(guān)于UCI ML repo上所有數(shù)據(jù)集的特征信息,即樣本數(shù)量以及數(shù)據(jù)集執(zhí)行的機(jī)器學(xué)習(xí)任務(wù)類型

msg_flag:控制信息復(fù)雜度(verbosity)

download_flag:默認(rèn)值為True。如果設(shè)置為False,則僅創(chuàng)建目錄而不下載(用于測(cè)試目的)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:UCI 機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)的 Python API 介紹

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python機(jī)器學(xué)習(xí)常用庫(kù)

    是同類API中最好的選擇之。以上是Python開發(fā)工程師必知十大機(jī)器學(xué)習(xí)庫(kù),除此之外,還有OverFeat、Nolearn以及Decaf等
    發(fā)表于 03-26 16:29

    50多種適合機(jī)器學(xué)習(xí)和預(yù)測(cè)應(yīng)用的API,你的選擇是?(2018年版本)

    據(jù)分析服務(wù)。用戶可以建立個(gè)數(shù)據(jù)源,并通過標(biāo)準(zhǔn)的HTTP創(chuàng)建模型來(lái)處理標(biāo)準(zhǔn)的有監(jiān)督和無(wú)監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)任務(wù)。3.Google Cloud
    發(fā)表于 05-03 16:41

    使用 Python 開始機(jī)器學(xué)習(xí)

    StackOverFlow上找到關(guān)于很多問題詳細(xì)解答(學(xué)習(xí)基石)。再次,個(gè)強(qiáng)大的社區(qū)帶來(lái)的副產(chǎn)品就是大量有用程序庫(kù)(Python內(nèi)部自帶的和第三方軟件),基本上可以解決你所有的問題(
    發(fā)表于 12-11 18:37

    50個(gè)機(jī)器學(xué)習(xí)實(shí)用API干貨

    還在為找不到機(jī)器學(xué)習(xí)API而煩惱嗎?本篇文章將介紹個(gè)包含50+關(guān)于人臉和圖像識(shí)別,文本分析,NLP,情感分析,語(yǔ)言翻譯,
    發(fā)表于 10-06 08:00

    了解基于FastCV視覺庫(kù)的SVM機(jī)器學(xué)習(xí)算法

    SVM是種常用的機(jī)器學(xué)習(xí)算法,在人工智能、模式識(shí)別、圖像識(shí)別等領(lǐng)域有著非常廣泛的應(yīng)用,本節(jié)將結(jié)合FastCV庫(kù)提供的fcvSVMPredict2Classf32
    發(fā)表于 02-08 10:52 ?3379次閱讀
    了解基于FastCV視覺<b class='flag-5'>庫(kù)</b>的SVM<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>算法

    Spark機(jī)器學(xué)習(xí)庫(kù)的各種機(jī)器學(xué)習(xí)算法

    本文將簡(jiǎn)要介紹Spark機(jī)器學(xué)習(xí)庫(kù)(Spark MLlibs APIs)的各種機(jī)器學(xué)習(xí)算法,主要包括:統(tǒng)計(jì)算法、分類算法、聚類算法和協(xié)同過濾
    發(fā)表于 09-28 16:44 ?1次下載

    Python機(jī)器學(xué)習(xí)庫(kù)

    份囊括些很好的Python機(jī)器學(xué)習(xí)庫(kù)的清單,并將其張貼在下面。 在我看來(lái),Python是學(xué)習(xí)(和實(shí)現(xiàn))
    發(fā)表于 10-13 16:21 ?0次下載

    最全面的52個(gè)機(jī)器學(xué)習(xí)API盤點(diǎn),文讓你全get

    隨著基于人工智能與機(jī)器學(xué)習(xí)的應(yīng)用如雨后春筍般不斷涌現(xiàn),我們也看到有很多提供類似功能的API悄悄登上了舞臺(tái)。 API是用于構(gòu)建軟件應(yīng)用的程序、協(xié)議以及工具的組合。所有的
    發(fā)表于 12-07 11:10 ?0次下載

    50個(gè)機(jī)器學(xué)習(xí)實(shí)用API

    還在為找不到機(jī)器學(xué)習(xí)API而煩惱嗎?本篇文章將介紹個(gè)包含50+關(guān)于人臉和圖像識(shí)別,文本分析,NLP,情感分析,語(yǔ)言翻譯,
    的頭像 發(fā)表于 06-13 18:20 ?4302次閱讀

    機(jī)器學(xué)習(xí)訓(xùn)練秘籍》中的六個(gè)概念

    吳恩達(dá)在該書中從頭到尾直強(qiáng)調(diào):由于機(jī)器學(xué)習(xí)個(gè)迭代的過程,快速迭代至關(guān)重要。比起去思考如何為
    的頭像 發(fā)表于 03-05 13:44 ?2835次閱讀

    DeepMind又放福利:開源了個(gè)內(nèi)部的分布式機(jī)器學(xué)習(xí)庫(kù)TF-Replicator

    TensorFlow 針對(duì) TPU 的原生 API 與針對(duì) GPU 的方式不同,這造成了使用 TPU 的障礙。TF-Replicator 提供了個(gè)簡(jiǎn)單、更用戶友好的
    的頭像 發(fā)表于 03-10 09:41 ?3419次閱讀

    Danfo.js提供高性能、直觀易用的數(shù)據(jù)結(jié)構(gòu),支持結(jié)構(gòu)化數(shù)據(jù)的操作和處理

    /API。因此熟悉 Pandas API 且了解 JavaScript 的用戶可以輕松上手。 Danfo.js 的大目標(biāo)是為 JavaScript 開發(fā)者提供數(shù)據(jù)處理、機(jī)器
    的頭像 發(fā)表于 09-23 18:21 ?5304次閱讀

    談?wù)勅绾螌?b class='flag-5'>機(jī)器學(xué)習(xí)引入自動(dòng)化

    今天,筆者嘗試通過個(gè)般性方法的介紹來(lái)談?wù)勅绾螌?b class='flag-5'>機(jī)器學(xué)習(xí)引入自動(dòng)化,同時(shí)對(duì)
    的頭像 發(fā)表于 10-09 15:55 ?2348次閱讀

    MindSpore量子機(jī)器學(xué)習(xí)庫(kù)MindQuantum

    MindSpore在3.28日正式開源了量子機(jī)器學(xué)習(xí)庫(kù)MindQuantum,本文介紹MindQuantum的關(guān)鍵技術(shù)。介紹MindQuantum前,先簡(jiǎn)單闡述下量子計(jì)算的...
    發(fā)表于 01-25 17:58 ?0次下載
    MindSpore量子<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>庫(kù)</b>MindQuantum

    python中如何引入math庫(kù)

    等。在本文中,將詳細(xì)介紹如何引入math庫(kù),并且討論各種數(shù)學(xué)函數(shù)的應(yīng)用。 為了引入math庫(kù),我們可以使用以下代碼: import math 這個(gè)語(yǔ)句會(huì)將整個(gè)math
    的頭像 發(fā)表于 11-22 11:03 ?4334次閱讀