AI基礎:機器學習和深度學習的練習數據

2021-02-21 機器學習初學者
0.導語

初學者學習機器學習和深度學習的時候,經常會找不到練習的數據,本文提供了獲取數據的一些方法。

目前我在編寫AI基礎系列,目前已經發布:

AI 基礎:簡易數學入門

AI 基礎:Python開發環境設置和小技巧

AI 基礎:Python 簡易入門

AI 基礎:Numpy 簡易入門

AI 基礎:Pandas 簡易入門

AI 基礎:Scipy(科學計算庫) 簡易入門

AI基礎:數據可視化簡易入門(matplotlib和seaborn)

AI基礎:機器學習庫Scikit-learn的使用

AI基礎:機器學習簡易入門

AI基礎:機器學習的損失函數

AI基礎:特徵工程-類別特徵

AI基礎:特徵工程-數字特徵處理

AI基礎:特徵工程-文本特徵處理

AI基礎:詞嵌入基礎和Word2Vec

AI基礎:圖解Transformer

AI基礎:一文看懂BERT

AI基礎:入門人工智慧必看的論文

AI基礎:走進深度學習

AI基礎:卷積神經網絡

AI基礎:深度學習論文閱讀路線(127篇經典論文下載)

AI基礎:數據增強方法綜述

後續持續更新

一、scikit-learn自帶數據集

Scikit-learn內置了很多可以用於機器學習的數據,可以用兩行代碼就可以使用這些數據。

一、自帶數據集

自帶的小的數據集為:sklearn.datasets.load_<name>

load_bostonBoston房屋價格回歸506*13fetch_california_housing加州住房回歸20640*9load_diabetes糖尿病回歸442*10load_digits手寫字分類1797*64load_breast_cancer乳腺癌分類、聚類(357+212)*30load_iris鳶尾花分類、聚類(50*3)*4load_wine葡萄酒分類(59+71+48)*13load_linnerud體能訓練多分類20

怎麼用:

數據集的信息關鍵字:

DESCR:

數據集的描述信息

data:

內部數據(即:X)

feature_names:

數據欄位名

target:

數據標籤(即:y)

target_names:

標籤欄位名(回歸數據集無此項) 


使用方法(以load_iris為例)

數據介紹:

一般用於做分類測試

有150個數據集,共分為3類,每類50個樣本。每個樣本有4個特徵。

每條記錄都有 4 項特徵:包含4個特徵(Sepal.Length(花萼長度)、Sepal.Width(花萼寬度)、Petal.Length(花瓣長度)、Petal.Width(花瓣寬度)),特徵值都為正浮點數,單位為釐米。

可以通過這4個特徵預測鳶尾花卉屬於(iris-setosa(山鳶尾), iris-versicolour(雜色鳶尾), iris-virginica(維吉尼亞鳶尾))中的哪一品種。

第一步:

導入數據

from sklearn.datasets import load_iris
iris = load_iris()

第二步:

定義X和y

X, y = iris.data, iris.target

此外,可以看下數據的維度:

輸出為:

((150, 4), (150,))


查看特徵名:

輸出為:

['sepal length (cm)',
'sepal width (cm)',
'petal length (cm)',
'petal width (cm)']

查看標籤名:

輸出為:

array(['setosa', 'versicolor', 'virginica'], dtype='<U10')

劃分訓練集和測試集:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)

這樣就把訓練集和測試集按照3比1劃分了,接下來就可以用機器學習算法進行訓練和測試了。

小技巧:將數據轉換為Dataframe格式(兩種方法都可以):

import pandas as pd
df_X = pd.DataFrame(iris.data, columns=iris.feature_names)
#這個是X
df_y = pd.DataFrame(iris.target, columns=["target"])
#這個是y
df=pd.concat([df_X,df2],axis=1)
df.head()

或者:

import numpy as np
import pandas as pd
col_names = iris['feature_names'] + ['target']
df = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns=col_names)
df.head()

輸出結果一致:

二、可在線下載的數據集(需要下載)

下載的數據集為:sklearn.datasets.fetch_<name>

這類數據需要在線下載,有點慢

fetch_20newsgroups

用於文本分類、文本挖據和信息檢索研究的國際標準數據集之一。數據集收集了大約20,000左右的新聞組文檔,均勻分為20個不同主題的新聞組集合。返回一個可以被文本特徵提取器

fetch_20newsgroups_vectorized

這是上面這個文本數據的向量化後的數據,返回一個已提取特徵的文本序列,即不需要使用特徵提取器

fetch_california_housing

加利福尼亞的房價數據,總計20640個樣本,每個樣本8個屬性表示,以及房價作為target,所有屬性值均為number,詳情可調用fetch_california_housing()['DESCR']了解每個屬性的具體含義;

fetch_covtype

森林植被類型,總計581012個樣本,每個樣本由54個維度表示(12個屬性,其中2個分別是onehot4維和onehot40維),以及target表示植被類型1-7,所有屬性值均為number,詳情可調用fetch_covtype()['DESCR']了解每個屬性的具體含義

fetch_kddcup99

KDD競賽在1999年舉行時採用的數據集,KDD99數據集仍然是網絡入侵檢測領域的事實Benckmark,為基於計算智能的網絡入侵檢測研究奠定基礎,包含41項特徵

fetch_lfw_pairs

該任務稱為人臉驗證:給定一對兩張圖片,二分類器必須預測這兩個圖片是否來自同一個人。

fetch_lfw_people

打好標籤的人臉數據集

fetch_mldata

從 mldata.org 中下載數據集

fetch_olivetti_faces

Olivetti 臉部圖片數據集

fetch_rcv1

路透社新聞語聊數據集

fetch_species_distributions

物種分布數據集

使用方法與自帶數據集一致,只是多了下載過程(示例:fetch_20newsgroups)

from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset='all') 
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    news.data, news.target, test_size=0.25, random_state=33)


三、生成數據集

可以用來分類任務,可以用來回歸任務,可以用來聚類任務,用於流形學習的,用於因子分解任務的,用於分類任務和聚類任務的:這些函數產生樣本特徵向量矩陣以及對應的類別標籤集合

make_blobs:多類單標籤數據集,為每個類分配一個或多個正態分布的點集

make_classification:多類單標籤數據集,為每個類分配一個或多個正態分布的點集,提供了為數據添加噪聲的方式,包括維度相關性,無效特徵以及冗餘特徵等

make_gaussian-quantiles:將一個單高斯分布的點集劃分為兩個數量均等的點集,作為兩類

make_hastie-10-2:產生一個相似的二元分類數據集,有10個維度

make_circle和make_moons:產生二維二元分類數據集來測試某些算法的性能,可以為數據集添加噪聲,可以為二元分類器產生一些球形判決界面的數據

舉例:

import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
X, y = make_moons(n_samples=100, noise=0.15, random_state=42)
plt.title('make_moons function example')
plt.scatter(X[:,0],X[:,1],marker='o',c=y)
plt.show()

深度學習數據集MS-COCO

COCO是一個可用於object detection, segmentation and caption的大型數據集。

http://cocodataset.org/#home

ImageNet

圖像總數約1,500,000; 每個都有多個邊界框和相應的類標籤。

大小:約150GB

http://www.image-net.org

Yelp Reviews

它由數百萬用戶評論、商業類型和來自多個大型城市的超過20萬張照片組成。這在全球都是一個非常常用的NLP挑戰級數據集。

大小:2.66 GB JSON,2.9 GB SQL and 7.5 GB Photos(全部已壓縮)

數量:5,200,000條評論,174,000條商業類型,20萬張圖片和11個大型城市

https://www.yelp.com/dataset

……待補充

其它數據集kaggle:

https://www.kaggle.com

天池:

https://tianchi.aliyun.com/dataset

搜狗實驗室:

http://www.sogou.com/labs/resource/list_pingce.php

DC競賽:

https://www.pkbigdata.com/common/cmptIndex.html

DF競賽:

https://www.datafountain.cn/datasets

Google數據集

[需要科學上網]

https://toolbox.google.com/datasetsearch

科賽網

https://www.kesci.com/home/dataset

微軟數據集

https://msropendata.com/

……待補充

總結

本文為機器學習初學者提供了使用scikit-learn內置數據的方法,用兩行代碼就可以使用這些數據,可以進行大部分的機器學習實驗了。

參考

https://scikit-learn.org/stable/datasets/index.html

https://blog.csdn.net/fendouaini/article/details/79871922

備註:公眾號菜單包含了整理了一本AI小抄非常適合在通勤路上用學習

備註:加入本站微信群或者qq群,請回復「加群

加入知識星球(4500+用戶,ID:92416895),請回復「知識星球

喜歡文章,點個在看

相關焦點

  • 五個給機器學習和數據科學入門者的學習建議
    花幾個月的時間學習 Python 編程和不同的機器學習概念。這兩部分知識你都會需要。在學習 Python 編程的同時,練習使用 Jupyter 和 Anaconda 等數據科學工具。花幾個小時來研究一下,它們是用來做什麼的以及為什麼要使用它們。
  • 教學用在線實踐環境(SQL、數據挖掘、機器學習、深度學習)
    其他,練習學習https://www.w3resource.com/sql-exercises/https://sqlzoo.net/https://sqlbolt.com/二、數據挖掘、機器學習、深度學習(1) 百度aistudiohttps://aistudio.baidu.com/aistudio/index百度AI Studio是針對AI學習者的在線一體化學習與實訓社區。
  • 資源│機器學習、深度學習、算法工程師等 AI 相關崗位面試需要知識
    本資源整理了機器學習、深度學習、算法工程師等 AI 相關崗位面試需要知識點,常見代碼實戰(分為 C/C++和 python 版本)、常見問題,簡歷模板
  • 這是一份超全機器學習&深度學習資源清單(105個AI站點),請收藏!
    ,主流的都涵蓋到,是深度學習從業者不錯的一個導航,歡迎使用!//www.afenxi.com): 數據分析網 - 大數據學習交流第一平臺知乎主題 (https://www.zhihu.com/topic/19559450/hot): 知乎機器學習熱門主題專知(http://www.zhuanzhi.ai/):專業可信的人工智慧知識分發,包含5000+
  • 這是一份超全機器學習&深度學習網站資源清單(105個AI站點),請收藏!
    ,是深度學習從業者不錯的一個導航,歡迎使用!//www.afenxi.com): 數據分析網 - 大數據學習交流第一平臺知乎主題 (https://www.zhihu.com/topic/19559450/hot): 知乎機器學習熱門主題專知(http://www.zhuanzhi.ai/):專業可信的人工智慧知識分發,包含5000+
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。我一直持有一個觀點,『脫離業務和數據的算法討論是毫無意義的』。實際上按我們的學習經驗,從一個數據源開始,即使是用最傳統,已經應用多年的機器學習算法,先完整地走完機器學習的整個工作流程,不斷嘗試各種算法深挖這些數據的價值,在運用過程中把數據、特徵和算法搞透,真正積累出項目經驗 才是最快、最靠譜的學習路徑。
  • 入門深度學習與機器學習的經驗和學習路徑
    ,也算個初級煉丹選手了,就想分享一些關於如何入門機器學習與深度學習的經驗和學習路徑。現在基礎準備工作就緒了。可以開始進入學習環節。首先就是python基礎的學習,這裡我個人比較推薦的是Python基礎以及數據分析一起進行學習。基礎的學習路徑如下:python基礎先看莫煩的python基礎教學視頻,非常的友好而且基礎。
  • 入門者的機器學習/深度學習自學指南
    尤其是深度學習的自學指南。包括數學基礎、計算機編程基礎、機器學習和深度學習的相關公開課程(本文最後提供了如何找到這些公開課資源的方式)和經典教材。1. 數學基礎1.1 線性代數Gilbert Strang. 18.06: Linear algebra. MIT, 2011.
  • AI、機器學習和深度學習之間的區別是什麼?
    (原標題:人工智慧、機器學習和深度學習之間的區別和聯繫)
  • 【推薦】基於MATLAB編程、機器學習、深度學習在圖像處理中的實踐技術應用
    尤其是在計算機視覺和圖像處理領域,各種顛覆性的成果應運而生。因此,為了幫助廣大科研人員更加系統地學習圖像處理、機器學習和深度學習的基礎理論知識及對應的代碼實現方法,Ai尚研修特舉辦「MATLAB圖像處理與機器學習技術應用培訓班」 培訓班,旨在幫助學員掌握圖像處理的基礎知識,以及經典機器學習算法和最新的深度神經網絡、遷移學習、對抗生成網絡等算法的基本原理及其MATLAB編程實現方法。
  • 人工智慧、機器學習和深度學習做好準備的數據中心
    人工智慧、機器學習、深度學習應用程式的密集需求對數據中心的性能、可靠性和可擴展性提出了挑戰,尤其是在IT架構師模仿公共雲的設計以簡化向混合雲和內部部署的過渡時。Excelero公司首席技術官Sven Breuner和首席架構師Kirill Shoikhet分享了9個為人工智慧、機器學習和深度學習準備數據中心的最佳實踐。
  • 機器學習吧面向ai的中文機器學習資源與分享平臺
    關於自動化機器學習的研究很早以前就有過非常系統化的論文和書籍,如果你感興趣我推薦一下孫向祥的機器學習分析,然後是西方機器學習理論,英文版的如果你沒時間翻的話國內有很多人翻譯過譯作,如果你時間多可以看coursera的opendatamlcourse如果你時間有限我推薦你這門early-resolutionmachinelearning
  • 下載量過百萬的吳恩達機器學習和深度學習筆記更新了!(附PDF下載)
    今天,我把吳恩達機器學習和深度學習課程筆記都更新了,並提供下載,這兩本筆記非常適合機器學習和深度學習入門。
  • 從蘋果店員到機器學習工程師:學習AI,我是這樣起步的
    AI 博士準備的:通過網絡上公開的課程和視頻,人們可以學習人工智慧領域的基礎知識、培養寫代碼的能力,最終找到 AI 領域的相關工作——只要你不輕言放棄。深度學習納米學位為我打下了一點基礎,現在是時候構思下一步了。
  • 深度學習 vs 機器學習 vs 模式識別(附:機器學習經典教材PRML《模式識別與機器學習》官方開放免費下載了
    而其中只有一小部分需要深度學習專家。我敢打賭,大多數初創公司都可以從最基本的數據分析中獲益。那如何才能發現未來的數據科學家?你需要學習他們的思考方式。三個與「學習」高度相關的流行詞彙模式識別(Pattern recognition)、機器學習(machine learning)和深度學習(deep learning)代表三種不同的思想流派。
  • 網際網路上20大免費數據科學、機器學習和人工智慧慕課
    機器學習與人工智慧- 機器學習與人工智慧基礎- 深度學習- 自然語言處理- 計算機視覺我沒有實地考察不同課程,也沒有花幾個小時過濾網上的幹擾信息,而是編輯了這個列表,其中包含了我發現在機器學習、人工智慧
  • 被吳恩達新開的深度學習課程刷屏?我們幫你做測評
    > 董怡萱、寧雲州 一早醒來票圈被吳恩達的新課程刷屏了,離職百度的吳恩達6月份宣布創立Deeplearning.ai時僅僅曝光了一個logo和域名,頗為神秘,而就在昨天深夜,吳恩達發布博客稱,其初創公司deeplearning.ai將通過 Coursera 提供深度學習的最新在線課程。
  • 機器之心專訪吳恩達,深度學習課程項目Deeplearning.ai正式發布
    但是,即使像谷歌和百度這樣的公司也無法覆蓋這一領域的全部。所以,我認為讓深度學習社區發展壯大的最好方式就是創造更好的深度學習課程,讓越來越多的人接觸深度學習。據我所知,我之前的機器學習課程——也是全世界最熱門的機器學習課程,目前已經惠及了超過 180 萬人。而在 Deeplearning.ai,我們致力於讓更多人能夠獲得有關機器學習的課程。
  • 為人工智慧、機器學習和深度學習做好準備的數據中心實踐
    人工智慧、機器學習、深度學習應用的強烈需求對數據中心的性能、可靠性和可擴展性提出了挑戰,尤其是當架構師模仿公共雲的設計以簡化向混合雲和內部部署的過渡時。GPU(圖形處理單元)伺服器如今很常見,圍繞GPU計算的生態系統正在迅速發展,以提高GPU工作負載的效率和可擴展性。然而在避免存儲和網絡中潛在的瓶頸的同時,也有一些技巧可以很大限度地提高GPU的利用率。
  • AI學習路線,詳細整理,由淺入深
    前言:人工智慧是個很大的理論體系,下面的學習路線,是在網上整理的一些資料,內容涵蓋AI入門基礎知識、數據分析、數據挖掘、機器學習、深度學習、強大學習這些理論知識。公開課 Fast.ai《程式設計師深度學習實戰》說到深度學習的公開課,與吳恩達《Deep Learning》並駕齊驅的另一門公開課便是由Fast.ai出品的《程式設計師深度學習實戰》。