【機(jī)器學(xué)習(xí)基礎(chǔ)】機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的練習(xí)數(shù)據(jù)
0.導(dǎo)語(yǔ)
初學(xué)者學(xué)習(xí)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的時(shí)候,經(jīng)常會(huì)找不到練習(xí)的數(shù)據(jù),本文提供了獲取數(shù)據(jù)的一些方法。
一、scikit-learn自帶數(shù)據(jù)集
Scikit-learn內(nèi)置了很多可以用于機(jī)器學(xué)習(xí)的數(shù)據(jù),可以用兩行代碼就可以使用這些數(shù)據(jù)。
一、自帶數(shù)據(jù)集
自帶的小的數(shù)據(jù)集為:sklearn.datasets.load_
| load_boston | Boston房屋價(jià)格 | 回歸 | 506*13 |
| fetch_california_housing | 加州住房 | 回歸 | 20640*9 |
| load_diabetes | 糖尿病 | 回歸 | 442*10 |
| load_digits | 手寫字 | 分類 | 1797*64 |
| load_breast_cancer | 乳腺癌 | 分類、聚類 | (357+212)*30 |
| load_iris | 鳶尾花 | 分類、聚類 | (50*3)*4 |
| load_wine | 葡萄酒 | 分類 | (59+71+48)*13 |
| load_linnerud | 體能訓(xùn)練 | 多分類 | 20 |
怎么用:
數(shù)據(jù)集的信息關(guān)鍵字:
DESCR:
數(shù)據(jù)集的描述信息
data:
內(nèi)部數(shù)據(jù)(即:X)
feature_names:
數(shù)據(jù)字段名
target:
數(shù)據(jù)標(biāo)簽(即:y)
target_names:
標(biāo)簽字段名(回歸數(shù)據(jù)集無(wú)此項(xiàng))?
使用方法(以load_iris為例)
數(shù)據(jù)介紹:
一般用于做分類測(cè)試
有150個(gè)數(shù)據(jù)集,共分為3類,每類50個(gè)樣本。每個(gè)樣本有4個(gè)特征。
每條記錄都有 4 項(xiàng)特征:包含4個(gè)特征(Sepal.Length(花萼長(zhǎng)度)、Sepal.Width(花萼寬度)、Petal.Length(花瓣長(zhǎng)度)、Petal.Width(花瓣寬度)),特征值都為正浮點(diǎn)數(shù),單位為厘米。
可以通過(guò)這4個(gè)特征預(yù)測(cè)鳶尾花卉屬于(iris-setosa(山鳶尾), iris-versicolour(雜色鳶尾), iris-virginica(維吉尼亞鳶尾))中的哪一品種。
第一步:
導(dǎo)入數(shù)據(jù)
from?sklearn.datasets?import?load_iris
iris = load_iris()
第二步:
定義X和y
X, y = iris.data, iris.target
此外,可以看下數(shù)據(jù)的維度:
X.shape,y.shape輸出為:
((150, 4), (150,))查看特征名:iris.feature_names輸出為:['sepal length (cm)',
'sepal width (cm)',
'petal length (cm)',
'petal width (cm)']查看標(biāo)簽名:
iris.target_names輸出為:
array(['setosa', 'versicolor', 'virginica'], dtype='
劃分訓(xùn)練集和測(cè)試集:
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)
這樣就把訓(xùn)練集和測(cè)試集按照3比1劃分了,接下來(lái)就可以用機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練和測(cè)試了。
小技巧:將數(shù)據(jù)轉(zhuǎn)換為Dataframe格式(兩種方法都可以):
import?pandas?as?pd
df_X = pd.DataFrame(iris.data, columns=iris.feature_names)
#這個(gè)是X
df_y = pd.DataFrame(iris.target, columns=["target"])
#這個(gè)是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()
輸出結(jié)果一致:
二、可在線下載的數(shù)據(jù)集(需要下載)
下載的數(shù)據(jù)集為:sklearn.datasets.fetch_
這類數(shù)據(jù)需要在線下載,有點(diǎn)慢
fetch_20newsgroups
用于文本分類、文本挖據(jù)和信息檢索研究的國(guó)際標(biāo)準(zhǔn)數(shù)據(jù)集之一。數(shù)據(jù)集收集了大約20,000左右的新聞組文檔,均勻分為20個(gè)不同主題的新聞組集合。返回一個(gè)可以被文本特征提取器
fetch_20newsgroups_vectorized
這是上面這個(gè)文本數(shù)據(jù)的向量化后的數(shù)據(jù),返回一個(gè)已提取特征的文本序列,即不需要使用特征提取器
fetch_california_housing
加利福尼亞的房?jī)r(jià)數(shù)據(jù),總計(jì)20640個(gè)樣本,每個(gè)樣本8個(gè)屬性表示,以及房?jī)r(jià)作為target,所有屬性值均為number,詳情可調(diào)用fetch_california_housing()['DESCR']了解每個(gè)屬性的具體含義;
fetch_covtype
森林植被類型,總計(jì)581012個(gè)樣本,每個(gè)樣本由54個(gè)維度表示(12個(gè)屬性,其中2個(gè)分別是onehot4維和onehot40維),以及target表示植被類型1-7,所有屬性值均為number,詳情可調(diào)用fetch_covtype()['DESCR']了解每個(gè)屬性的具體含義
fetch_kddcup99
KDD競(jìng)賽在1999年舉行時(shí)采用的數(shù)據(jù)集,KDD99數(shù)據(jù)集仍然是網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域的事實(shí)Benckmark,為基于計(jì)算智能的網(wǎng)絡(luò)入侵檢測(cè)研究奠定基礎(chǔ),包含41項(xiàng)特征
fetch_lfw_pairs
該任務(wù)稱為人臉驗(yàn)證:給定一對(duì)兩張圖片,二分類器必須預(yù)測(cè)這兩個(gè)圖片是否來(lái)自同一個(gè)人。
fetch_lfw_people
打好標(biāo)簽的人臉數(shù)據(jù)集
fetch_mldata
從?mldata.org?中下載數(shù)據(jù)集
fetch_olivetti_faces
Olivetti?臉部圖片數(shù)據(jù)集
fetch_rcv1
路透社新聞?wù)Z聊數(shù)據(jù)集
fetch_species_distributions
物種分布數(shù)據(jù)集
使用方法與自帶數(shù)據(jù)集一致,只是多了下載過(guò)程(示例:fetch_20newsgroups)
from?sklearn.datasets?import?fetch_20newsgroups
news = fetch_20newsgroups(subset='all')?#本次使用的數(shù)據(jù)需要到互聯(lián)網(wǎng)上下載
from?sklearn.model_selection?import?train_test_split
#對(duì)數(shù)據(jù)訓(xùn)練集和測(cè)試件進(jìn)行劃分
X_train, X_test, y_train, y_test = train_test_split(
????news.data, news.target, test_size=0.25, random_state=33)
三、生成數(shù)據(jù)集
可以用來(lái)分類任務(wù),可以用來(lái)回歸任務(wù),可以用來(lái)聚類任務(wù),用于流形學(xué)習(xí)的,用于因子分解任務(wù)的,用于分類任務(wù)和聚類任務(wù)的:這些函數(shù)產(chǎn)生樣本特征向量矩陣以及對(duì)應(yīng)的類別標(biāo)簽集合
make_blobs:多類單標(biāo)簽數(shù)據(jù)集,為每個(gè)類分配一個(gè)或多個(gè)正態(tài)分布的點(diǎn)集
make_classification:多類單標(biāo)簽數(shù)據(jù)集,為每個(gè)類分配一個(gè)或多個(gè)正態(tài)分布的點(diǎn)集,提供了為數(shù)據(jù)添加噪聲的方式,包括維度相關(guān)性,無(wú)效特征以及冗余特征等
make_gaussian-quantiles:將一個(gè)單高斯分布的點(diǎn)集劃分為兩個(gè)數(shù)量均等的點(diǎn)集,作為兩類
make_hastie-10-2:產(chǎn)生一個(gè)相似的二元分類數(shù)據(jù)集,有10個(gè)維度
make_circle和make_moons:產(chǎn)生二維二元分類數(shù)據(jù)集來(lái)測(cè)試某些算法的性能,可以為數(shù)據(jù)集添加噪聲,可以為二元分類器產(chǎn)生一些球形判決界面的數(shù)據(jù)
舉例:
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()
深度學(xué)習(xí)數(shù)據(jù)集
MS-COCO
COCO是一個(gè)可用于object detection, segmentation and caption的大型數(shù)據(jù)集。
http://cocodataset.org/#home
ImageNet
圖像總數(shù)約1,500,000; 每個(gè)都有多個(gè)邊界框和相應(yīng)的類標(biāo)簽。
大小:約150GB
http://www.image-net.org
Yelp Reviews
它由數(shù)百萬(wàn)用戶評(píng)論、商業(yè)類型和來(lái)自多個(gè)大型城市的超過(guò)20萬(wàn)張照片組成。這在全球都是一個(gè)非常常用的NLP挑戰(zhàn)級(jí)數(shù)據(jù)集。
大小:2.66 GB JSON,2.9 GB SQL and 7.5 GB Photos(全部已壓縮)
數(shù)量:5,200,000條評(píng)論,174,000條商業(yè)類型,20萬(wàn)張圖片和11個(gè)大型城市
https://www.yelp.com/dataset
……待補(bǔ)充
其它數(shù)據(jù)集
kaggle:
https://www.kaggle.com
天池:
https://tianchi.aliyun.com/dataset
搜狗實(shí)驗(yàn)室:
http://www.sogou.com/labs/resource/list_pingce.php
DC競(jìng)賽:
https://www.pkbigdata.com/common/cmptIndex.html
DF競(jìng)賽:
https://www.datafountain.cn/datasets
Google數(shù)據(jù)集
[需要科學(xué)上網(wǎng)]
https://toolbox.google.com/datasetsearch
科賽網(wǎng)
https://www.kesci.com/home/dataset
微軟數(shù)據(jù)集
https://msropendata.com/
……待補(bǔ)充
總結(jié)
本文為機(jī)器學(xué)習(xí)初學(xué)者提供了使用scikit-learn內(nèi)置數(shù)據(jù)的方法,用兩行代碼就可以使用這些數(shù)據(jù),可以進(jìn)行大部分的機(jī)器學(xué)習(xí)實(shí)驗(yàn)了。
參考
https://scikit-learn.org/stable/datasets/index.html
https://blog.csdn.net/fendouaini/article/details/79871922
往期精彩回顧
獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群請(qǐng)掃碼:


