初學者學習機器學習和深度學習的時候,經常會找不到練習的數據,本文提供了獲取數據的一些方法。
目前我在編寫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>
怎麼用:
數據集的信息關鍵字:
DESCR:
數據集的描述信息
data:
內部數據(即:X)
feature_names:
數據欄位名
target:
數據標籤(即:y)
target_names:
標籤欄位名(回歸數據集無此項)
數據介紹:
一般用於做分類測試
有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()
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),請回復「知識星球」喜歡文章,點個在看