開源 23 個優秀的機器學習數據集

作者 | Nikola M. Zivkovic 譯者 | 王強 策劃 | 凌敏

Iris 數據集的那些示例你是不是已經用膩了呢?不要誤會我的意思,Iris 數據集作爲入門用途來說是很不錯的,但其實網絡上還有很多有趣的公共數據集可以用來練習機器學習和深度學習。在這篇文章中,我會分享 23 個優秀的公共數據集,除了介紹數據集和數據示例外,我還會介紹這些數據集各自可以解決哪些問題。

以下是這 23 個公共數據集:

  1. 帕爾默企鵝數據集

  2. 共享單車需求數據集

  3. 葡萄酒分類數據集

  4. 波士頓住房數據集

  5. 電離層數據集

  6. Fashion MNIST 數據集

  7. 貓與狗數據集

  8. 威斯康星州乳腺癌(診斷)數據集

  9. Twitter 情緒分析和 Sentiment140 數據集

  10. BBC 新聞數據集

  11. 垃圾短信分類器數據集

  12. CelebA 數據集

  13. YouTube-8M 數據集

  14. 亞馬遜評論數據集

  15. 紙幣驗證數據集

  16. LabelMe 數據集

  17. 聲納數據集

  18. 皮馬印第安人糖尿病數據集

  19. 小麥種子數據集

  20. Jeopardy! 數據集

  21. 鮑魚數據集

  22. 假新聞檢測數據集

  23. ImageNet 數據集

  24. 帕爾默企鵝數據集

這是迄今爲止我最喜歡的數據集。我在最近寫的書裏的大多數示例都來自於它。簡單來說,如果你在 Iris 數據集上做實驗做膩了就可以嘗試一下這一個。它由 Kristen Gorman 博士和南極洲 LTER 的帕爾默科考站共同創建。該數據集本質上是由兩個數據集組成的,每個數據集包含 344 只企鵝的數據。

就像 Iris 一樣,這個數據集裏有來自帕爾默羣島 3 個島嶼的 3 種不同種類的企鵝,分別是 Adelie、Chinstrap 和 Gentoo。或許 “Gentoo” 聽起來很耳熟,那是因爲 Gentoo Linux 就是以它命名的!此外,這些數據集包含每個物種的 culmen 維度。這裏 culmen 是鳥喙的上脊。在簡化的企鵝數據中,culmen 長度和深度被重命名爲變量 culmen_length_mm 和 culmen_depth_mm。

1.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\penguins_size.csv")
data.head()

我們使用 Pandas 庫來做數據可視化,並且加載的是一個更簡單的數據集。

1.2 這個公共數據集適合解決什麼問題?

它是練習解決分類和聚類問題的好幫手。在這裏,你可以嘗試各種分類算法,如決策樹、隨機森林、SVM,或把它用於聚類問題並練習使用無監督學習。

1.3 有用的鏈接

在以下鏈接中可以獲得有關 PalmerPenguins 數據集的更多信息:

  1. 共享單車需求數據集

這個數據集非常有趣。它對於初學者來說有點複雜,但也正因如此,它很適合拿來做練習。它包含了華盛頓特區 “首都自行車共享計劃” 中自行車租賃需求的數據,自行車共享和租賃系統通常是很好的信息來源。這個數據集包含了有關騎行持續時間、出發地點、到達地點和經過時間的信息,還包含了每一天每小時的天氣信息。

2.1 數據集樣本

我們加載數據,看看它是什麼樣的。首先,我們使用數據集的每小時數據來執行操作:

data = pd.read_csv(f".\\Datasets\\hour.csv")
data.head()

每日數據是下面的樣子:

data = pd.read_csv(f".\\Datasets\\day.csv")
data.head()

2.2 這個公共數據集適合解決什麼問題?

由於該數據集包含的信息種類繁多,因此非常適合練習解決迴歸問題。你可以嘗試對其使用多元線性迴歸,或使用神經網絡。

2.3 有用的鏈接

在以下鏈接中可以獲得關於該數據集的更多信息:

  1. 葡萄酒分類數據集

這是一個經典之作。如果你喜歡葡萄樹或計劃成爲索馬里人,肯定會更中意它的。該數據集由兩個數據集組成。兩者都包含來自葡萄牙 Vinho Verde 地區的葡萄酒的化學指標,一種用於紅葡萄酒,另一種用於白葡萄酒。由於隱私限制,數據集裏沒有關於葡萄種類、葡萄酒品牌、葡萄酒售價的數據,但有關於葡萄酒質量的信息。

3.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\winequality-white.csv")
data.head()

3.2 這個公共數據集適合解決什麼問題?

這是一個多類分類問題,但也可以被定義爲迴歸問題。它的分類數據是不均衡的(例如,正常葡萄酒的數量比優質或差的葡萄酒多得多),很適合針對不均衡數據集的分類練習。除此之外,數據集中所有特徵並不都是相關的,因此也可以拿來練習特徵工程和特徵選擇。

3.3 有用的鏈接

以下鏈接中可以找到關於這個數據集的更多信息:

  1. 波士頓住房數據集

雖然我說過會盡量不推薦其他人都推薦的那種數據集,但這個數據集實在太經典了。許多教程、示例和書籍都使用過它。這個數據集由 14 個特徵組成,包含美國人口普查局收集的關於馬薩諸塞州波士頓地區住房的信息。這是一個只有 506 個樣本的小數據集。

4.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\boston_housing.csv")
data.head()

4.2 這個公共數據集適合解決什麼問題?

該數據集非常適合練習迴歸任務。請注意,因爲這是一個小數據集,你可能會得到樂觀的結果。

4.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 電離層數據集

這也是一個經典數據集。它實際上起源於 1989 年,但它確實很有趣。該數據集包含由拉布拉多鵝灣的雷達系統收集的數據。該系統由 16 個高頻天線的相控陣列組成,旨在檢測電離層中的自由電子。一般來說,電離層有兩種類型的結構:“好” 和 “壞”。這些雷達會檢測這些結構並傳遞信號。數據集中有 34 個自變量和 1 個因變量,總共有 351 個觀測值。

5.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\ionsphere.csv")
data.head()

5.2 這個公共數據集適合解決什麼問題?

這顯然是一個二元(2 類)分類問題。有趣的是,這是一個不均衡的數據集,所以你也可以用它做這種練習。在這個數據集上實現高精度也非易事,基線性能在 64% 左右,而最高精度在 94% 左右。

5.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

6.Fashion MNIST 數據集

MNIST 數據集是用於練習圖像分類和圖像識別的著名數據集,然而它有點被濫用了。如果你想要一個簡單的數據集來練習圖像分類,你可以試試 Fashion MNIST。它曾被《機器學習終極指南》拿來做圖像分類示例。

本質上,這個數據集是 MNIST 數據集的變體,它與 MNIST 數據集具有相同的結構,也就是說它有一個 60,000 個樣本的訓練集和一個 10,000 個服裝圖像的測試集。所有圖像都經過尺寸歸一化和居中。圖像的大小也固定爲 28×28,這樣預處理的圖像數據被減到了最小水平。它也可作爲某些框架(如 TensorFlow 或 PyTorch)的一部分使用。

6.1 數據集樣本

我們加載數據,看看它是什麼樣的:

6.2 這個公共數據集適合解決什麼問題?

它最適合圖像分類和圖像生成任務。你可以使用簡單的卷積神經網絡(CNN)來做嘗試,或者使用生成對抗網絡(GAN)使用它來生成圖像。

6.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 貓與狗數據集

這是一個包含貓狗圖像的數據集。這個數據集包含 23,262 張貓和狗的圖像,用於二值圖像分類。在主文件夾中,你會找到兩個文件夾 train1 和 test。

train1 文件夾包含訓練圖像,而 test 文件夾包含測試圖像。請注意,圖像名稱以 cat 或 dog 開頭。這些名稱本質上是我們的標籤,這意味着我們將使用這些名稱定義目標。

7.1 數據集樣本

我們加載數據,看看它是什麼樣的:

7.2 這個公共數據集適合解決什麼問題?

這個數據集有兩重目標。首先,它可用於練習圖像分類以及對象檢測。其次,你可以在這裏面找到無窮無盡的可愛圖片。

7.3 有用的鏈接

以下鏈接中可以找到關於這個數據集的更多信息:

  1. 威斯康星州乳腺癌(診斷)數據集

機器學習和深度學習技術在醫療保健領域中的應用正在穩步增長。如果你想練習並瞭解使用此類數據的效果,這個數據集是一個不錯的選擇。在該數據集中,數據是通過處理乳房腫塊的細針穿刺(FNA)的數字化圖像提取出來的。該數據集中的每個特徵都描述了上述數字化圖像中發現的細胞核的特徵。

該數據集由 569 個樣本組成,其中包括 357 個良性樣本和 212 個惡性樣本。這個數據集中有三類特徵,其中實值特徵最有趣。它們是從數字化圖像中計算出來的,包含有關區域、細胞半徑、紋理等信息。

8.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\breast-cancer-wisconsin.csv")
data.head()

8.2 這個公共數據集適合解決什麼問題?

這個醫療保健數據集適合練習分類和隨機森林、SVM 等算法。

8.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

9.Twitter 情緒分析和

Sentiment140 數據集

在過去幾年中,情緒分析成爲了一種監控和了解客戶反饋的重要工具。這種對消息和響應所攜帶的潛在情緒基調的檢測過程是完全自動化的,這意味着企業可以更好更快地瞭解客戶的需求並提供更好的產品和服務。

這一過程是通過應用各種 NLP(自然語言處理)技術來完成的。這些數據集可以幫助你練習此類技術,實際上非常適合該領域的初學者。Sentiment140 包含了使用 Twitter API 提取的 1,600,000 條推文。它們的結構略有不同。

9.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\training.1600000.processed.noemoticon.csv")
data.head()

9.2 這個公共數據集適合解決什麼問題?

如前所述,這是一個用於情緒分析的數據集。情緒分析是最常見的文本分類工具。該過程會分析文本片段以確定其中包含的情緒是積極的、消極的還是中性的。瞭解品牌和產品引發的社會情緒是現代企業必不可少的工具之一。

9.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

10.BBC 新聞數據集

我們再來看這個類別中另一個有趣的文本數據集。該數據集來自 BBC 新聞。它由 2225 篇文章組成,每篇文章都有標籤。所有文章分成 5 個類別:科技、商業、政治、娛樂和體育。這個數據集沒有失衡,每個類別中的文章數量都是差不多的。

10.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\BBC News Train.csv")
data.head()

10.2 這個公共數據集適合解決什麼問題?

自然,這個數據集最適合用於文本分類練習。你也可以更進一步,練習分析每篇文章的情緒。總的來說,它適用於各種 NLP 任務和實踐。

10.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 垃圾短信分類器數據集

垃圾消息檢測是互聯網中最早投入實踐的機器學習任務之一。這種任務也屬於 NLP 和文本分類工作。所以,如果你想練習解決這類問題,Spam SMS 數據集是一個不錯的選擇。它在實踐中用得非常多,非常適合初學者。

這個數據集最棒的一點是,它是從互聯網的多個來源構建的。例如,它從 Grumbletext 網站上提取了 425 條垃圾短信,從新加坡國立大學的 NUS SMS Corpus(NSC)隨機選擇了 3,375 條短信,還有 450 條短信來自 Caroline Tag 的博士論文等。數據集本身由兩列組成:標籤(ham 或 spam)和原始文本。

11.1 數據集樣本

我們加載數據,看看它是什麼樣的:

ham What you doing?how are you?
ham Ok lar... Joking wif u oni...
ham dun say so early hor... U c already then say...
ham MY NO. IN LUTON 0125698789 RING ME IF UR AROUND! H*
ham Siva is in hostel aha:-.
ham Cos i was out shopping wif darren jus now n i called him 2 ask wat present he wan lor. Then he started guessing who i was wif n he finally guessed darren lor.
spam FreeMsg: Txt: CALL to No: 86888 & claim your reward of 3 hours talk time to use from your phone now! ubscribe6GBP/ mnth inc 3hrs 16 stop?txtStop
spam Sunshine Quiz! Win a super Sony DVD recorder if you canname the capital of Australia? Text MQUIZ to 82277. B
spam URGENT! Your Mobile No 07808726822 was awarded a L2,000 Bonus Caller Prize on 02/09/03! This is our 2nd attempt to contact YOU! Call 0871-872-9758 BOX95QU

11.2 這個公共數據集適合解決什麼問題?

顧名思義,該數據集最適合用於垃圾郵件檢測和文本分類。它也經常用在工作面試中,所以大家最好練習一下。

11.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

12.CelebA 數據集

如果你想研究人臉檢測解決方案、構建自己的人臉生成器或創建深度人臉僞造模型,那麼這個數據集就是你的最佳選擇。該數據集擁有超過 20 萬張名人圖像,每張圖像有 40 個屬性註釋,爲你的研究項目提供了一個很好的起點。此外,它還涵蓋了主要的姿勢和背景類別。

12.1 數據集樣本

我們加載數據,看看它是什麼樣的:

12.2 這個公共數據集適合解決什麼問題?

我們可以用這個數據集解決多種問題。比如,我們可以解決各種人臉識別和計算機視覺問題,它可用來使用不同的生成算法生成圖像。此外,你可以使用它來開發新穎的深度人臉僞造模型或深度僞造檢測模型。

12.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

13.YouTube-8M 數據集

這是最大的多標籤視頻分類數據集。它來自谷歌,擁有 800 萬個帶有註釋和 ID 的 YouTube 分類視頻。這些視頻的註釋由 YouTube 視頻註釋系統使用 48000 個視覺實體的詞彙表創建。該詞彙表也可供下載。

請注意,此數據集可用作 TensorFlow 記錄文件。除此之外,你還可以使用這個數據集的擴展——YouTube-8M Segments 數據集。它包含了人工驗證的分段註釋。

13.1 數據集樣本

你可以使用以下命令下載它們:

mkdir -p ~/yt8m/2/frame/train
cd ~/yt8m/2/frame/train
curl data.yt8m.org/download.py | partition=2/frame/train mirror=us python

13.2 這個公共數據集適合解決什麼問題?

你可以使用這個數據集執行多種操作。比如可以使用它跟進谷歌的競賽,並開發準確分配視頻級標籤的分類算法。你還可以用它來創建視頻分類模型,也可以用它練習所謂的時間概念定位,也就是找到並分享特定的視頻瞬間。

13.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 亞馬遜評論數據集

情緒分析是最常見的文本分類工具。這個過程會分析文本片段以確定情緒傾向是積極的、消極的還是中性的。在監控在線會話時瞭解你的品牌、產品或服務引發的社會情緒是現代商業活動的基本工具之一,而情緒分析是實現這一目標的第一步。該數據集包含了來自亞馬遜的產品評論和元數據,包括 1996 年 5 月至 2018 年 10 月的 2.331 億條評論。

14.1 這個公共數據集適合解決什麼問題?

這個數據集可以爲任何產品創建情緒分析的入門模型,你可以使用它來快速創建可用於生產的模型。

14.2 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 紙幣驗證數據集

這是一個有趣的數據集。你可以使用它來創建可以檢測真鈔和僞造鈔票的解決方案。該數據集包含了從數字化圖像中提取的許多指標。數據集的圖像是使用通常用於印刷檢查的工業相機創建的,圖像尺寸爲 400x400 像素。這是一個乾淨的數據集,包含 1372 個示例且沒有缺失值。

15.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\data_banknote_authentication.csv")
data.head()

15.2 這個公共數據集適合解決什麼問題?

它是練習二元分類和應用各種算法的絕佳數據集。此外,你可以修改它並將其用於聚類,並提出將通過無監督學習對這些數據進行聚類的算法。

15.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

16.LabelMe 數據集

LabelMe 是另一個計算機視覺數據集。LabelMe 是一個帶有真實標籤的大型圖像數據庫,用於物體檢測和識別。它的註釋來自兩個不同的來源,其中就有 LabelMe 在線註釋工具。

簡而言之,有兩種方法可以利用這個數據集。你可以通過 LabelMe Matlab 工具箱下載所有圖像,也可以通過 LabelMe Matlab 工具箱在線使用圖像。

16.1 數據集樣本

標記好的數據如下所示:

16.2 這個公共數據集適合解決什麼問題?

它是用於對象檢測和對象識別解決方案的絕佳數據集。

16.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 聲納數據集

如果你對地質學感興趣,會發現這個數據集非常有趣。它是利用聲納信號製成的,由兩部分組成。第一部分名爲 “sonar.mines”,包含 111 個模式,這些模式是使用在不同角度和不同條件下從金屬圓柱體反射的聲納信號製成的。

第二部分名爲 “sonar.rocks”,由 97 個模式組成,同樣是通過反射聲納信號製成,但這次反射的是岩石上的信號。它是一個不均衡數據集,包含 208 個示例、60 個輸入特徵和一個輸出特徵。

17.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\sonar.csv")
data.head()

17.2 這個公共數據集適合解決什麼問題?

該數據集非常適合練習二元分類。它的製作目標是檢測輸入是地雷還是岩石,這是一個有趣的問題,因爲最高的輸出結果達到了 88% 的準確率。

17.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 皮馬印第安人糖尿病數據集

這是另一個用於分類練習的醫療保健數據集。它來自美國國家糖尿病、消化和腎臟疾病研究所,其目的是根據某些診斷指標來預測患者是否患有糖尿病。

該數據集包含 768 個觀測值,具有 8 個輸入特徵和 1 個輸出特徵。它不是一個均衡的數據集,並且假設缺失值被替換爲 0。

18.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\pima-indians-dataset.csv")
data.head()

18.2 這個公共數據集適合解決什麼問題?

它是另一個適合練習二元分類的數據集。

18.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 小麥種子數據集

這個數據集非常有趣和簡單。它特別適合初學者,可以代替 Iris 數據集。該數據集包含屬於三種不同小麥品種的種子信息:Kama、Rosa 和 Canadian。它是一個均衡的數據集,每個類別有 70 個實例。種子內部內核結構的測量值是使用軟 X 射線技術檢測的。

19.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\seeds_dataset.csv")
data.head()

19.2 這個公共數據集適合解決什麼問題?

這個數據集有利於提升分類技能。

19.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

20.Jeopardy! 問題數據集

這個數據集很不錯,包含 216,930 個 Jeopardy 問題、答案和其他數據。它是可用於你 NLP 項目的絕佳數據集。除了問題和答案,該數據集還包含有關問題類別和價值的信息。

20.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\joepardy.csv")
data.head()

20.2 這個公共數據集適合解決什麼問題?

這是一個豐富的數據集,可用於多種用途。你可以運行分類算法並預測問題的類別或問題的價值。不過你可以用它做的最酷的事情可能是用它來訓練 BERT 模型。

20.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 鮑魚數據集

從本質上講這是一個多分類問題,然而,這個數據集也可以被視爲一個迴歸問題。它的目標是使用提供的指標來預測鮑魚的年齡。這個數據集不均衡,4,177 個實例有 8 個輸入變量和 1 個輸出變量。

21.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\abalone.csv")
data.head()

21.2 這個公共數據集適合解決什麼問題?

該數據集可以同時構建爲迴歸和分類任務。這是一個很好的機會,可以使用多元線性迴歸、SVM、隨機森林等算法,或者構建一個可以解決這個問題的神經網絡。

21.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

  1. 假新聞數據集

我們生活在一個狂野的時代。假新聞、深度造假和其他類型的欺騙技術都成了我們日常生活的一部分,無論我們喜歡與否。這個數據集提供了另一個非常適合練習的 NLP 任務。它包含標記過的真實和虛假新聞,以及它們的文本和作者。

22.1 數據集樣本

我們加載數據,看看它是什麼樣的:

data = pd.read_csv(f".\\Datasets\\fake_news\\train.csv")
data.head()

22.2 這個公共數據集適合解決什麼問題?

這是另一個 NLP 文本分類任務。

22.3 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

23.ImageNet 數據集

最後這個數據集是計算機視覺數據集中的王者——ImageNet。該數據集是用來衡量所有新的深度學習和計算機視覺技術創新的基準。沒有它,深度學習的世界就不會變成今天這樣的狀態。ImageNet 是一個按照 WordNet 層次結構組織的大型圖像數據庫。這意味着每個實體都用一組稱爲 -synset 的詞和短語來描述。每個同義詞集分配了大約 1000 個圖像。基本上,層次結構的每個節點都由成百上千的圖像描述。

23.1 這個公共數據集適合解決什麼問題?

它是學術和研究界的標準數據集。它的主要任務是圖像分類,但你也可以將其用於各種任務。

23.2 有用的鏈接

從以下鏈接中可以找到關於這個數據集的更多信息:

在本文中,我們探索了 23 個非常適合機器學習應用實踐的數據集。感謝你的閱讀!

 作者介紹

Nikola M. Zivkovic 是下列書籍的作者:《機器學習終極指南》和《面向程序員的深度學習》。他喜歡分享知識,還是一位經驗豐富的演講者。他曾在許多聚會、會議上發表演講,並在諾維薩德大學擔任客座講師。

原文鏈接:

https://rubikscode.net/2021/07/19/top-23-best-public-datasets-for-practicing-machine-learning

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/NkHnjQPDYUdF1gmqeEQxlw