為UCI機器學習庫引入簡單直觀的Python API(附程式碼)

AMiner學術頭條發表於2019-03-27

介紹

UCI機器學習資料集庫是機器學習教學法領域的一個傳奇。對於初學者和高階學習者來說,這是一個“go-to-shop”。它是機器學習社群用於機器學習演算法的實證分析的資料庫,領域理論和資料生成器的集合。

該檔案由David Aha和加州大學歐文分校的研究生於1987年建立為ftp檔案。從那時起,它已被全世界的學生、教育工作者和研究人員廣泛用作機器學習資料集的主要來源。作為檔案影響的一個標誌,它已被引用超過1000次,使其成為所有電腦科學中被引用率最高的100篇“論文”之一。

為UCI機器學習庫引入簡單直觀的Python API(附程式碼)

也就是說,導航入口網站可能有點令人沮喪和耗時,因為您感興趣的資料集沒有簡單直觀的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

將開啟一個選單,允許您執行各種任務。這是選單的螢幕截圖,

為UCI機器學習庫引入簡單直觀的Python API(附程式碼)

目前支援的功能

  • 通過爬網整個門戶來構建資料集的名稱,描述和URL的本地資料庫

  • 通過爬網整個門戶,構建資料集的名稱、大小和機器學習任務的本地資料庫

  • 搜尋並下載特定資料集

  • 下載前幾個資料集

  • 列印所有資料集的名稱

  • 列印所有資料集的簡短描述

  • 搜尋資料集的單行描述和網頁連結

  • 根據資料集的大小下載資料集

  • 根據與其關聯的機器學習任務下載資料集

示例(搜尋並下載特定資料集)

例如,如果要下載資料集Iris,只需從選單中選擇選項3,輸入儲存的本地資料庫的名稱(以使搜尋更快)!您將下載Iris資料集並將其儲存在目錄中名為“Iris”的資料夾中!

為UCI機器學習庫引入簡單直觀的Python API(附程式碼)

示例(搜尋具有特定關鍵字的資料集)

如果您通過選擇選項7使用關鍵字進行搜尋,那麼您將獲得關於名稱與搜尋字串匹配的所有資料集的簡短單行摘要(甚至部分)。您還將獲得每個結果的相關網頁連結,以便您可以根據需要更多地瀏覽它們。螢幕截圖下方顯示了使用該術語進行搜尋的示例Cancer。

為UCI機器學習庫引入簡單直觀的Python API(附程式碼)

如果想繞過簡單的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,則僅建立目錄但不啟動下載(用於測試目的)。

譯者:學術君

相關文章