学习机器学习是一个不断探索和实验的过程,因此,本文将主要介绍常见的开源数据集,便于学习和实验各种机器学习算法!
01 开源数据集介绍
在学习机器学习算法的过程中,我们经常需要数据来学习和试验算法,但是找到一组适合某种机器学习类型的数据却不那么方便。下文对常见的开源数据集进行了汇总。
1. UCI数据集
- 类型:比较全面,各类型数据都有涉及
- 网址:uci
2. Kaggle竞赛数据集
- 类型:比较全面,各类型数据都有涉及
- 网址:kaggle
3. ImageNet
- 类型:计算机视觉数据
- 网址:image-net
4. VisualData
- 类型:计算机视觉数据
- 网址:.visualdata
5. MS COCO
- 类型:计算机视觉数据
- 网址:mscoco
6. Stanford CoreNLP
- 类型:情感分析数据
- 网址:nlp.stanford
7. IMDB
- 类型:情感分析数据
- 网址:ai.stanford
8. Sentiment140
- 类型:情感分析数据
- 网址:sentiment140
9. HotspotQA
- 类型:自然语言处理
- 网址:hotpotqa
10. Enron Email
- 类型:自然语言处理
- 网址:cmu
11. Amazon
- 类型:自然语言处理
- 网址:Amazon
12. 百度Apollocapes
- 类型:自动驾驶
- 网址:apolloscape
13. Berkeley DeepDrive
- 类型:自动驾驶
- 网址:berkele
14. Robotcar
- 类型:自动驾驶
- 网址:robot
15. Data.gov
- 类型:公共政府数据集
- 网址:.data.gov
16. Food Environment Atlas
- 类型:公共政府数据集
- 网址:food-environment-atlas-f4a22
17. Annual Survey of School System Finances
- 类型:公共政府数据集
- 网址:annual-survey-of-school-system-finances
18. NCES
- 类型:公共政府数据集
- 网址:nces
19. Data USA
- 类型:公共政府数据集
- 网址:http://datausa.io/
20. 中国国家统计局
- 类型:公共政府数据集
- 网址:stats
21. Quandl
- 类型:金融与经济数据集
- 网址:quandl
22. WorldBank
- 类型:金融与经济数据集
- 网址:worldbank
23. IMF
- 类型:金融与经济数据集
- 网址:imf
24. Markets
- 类型:金融与经济数据集
- 网址:markets
25. Google Trends
- 类型:金融与经济数据集
- 网址:google
26. US Macro Regional
- 类型:金融与经济数据集
- 网址:us-macro-regional
27. Google Audioset
- 类型:语音数据集
- 网址:google
28. 2000 HUB5 English
- 类型:语音数据集
- 网址:ldc.upenn
29. LibriSpeech
- 类型:语音数据集
- 网址:openslr
02 scikit-learn中的数据集
scikit-learn是Python中进行数据挖掘和建模中常用的机器学习工具包。scikit-learn的datasets模块主要提供了一些导入、在线下载及本地生成数据集的方法。模块的主要函数如下所示。
- sklearn.datasets.load_<name>:自带数据集(数据量较小)
- sklearn.datasets.fetch_<name>:在线下载的数据集
- sklearn.datasets.make_<name>:生成指定类型的随机数据集
- sklearn.datasets.load_svmlight_file:svmlight/libsvm格式的数据集
- sklearn.datasets.fetch_mldata:mldata在线下载数据集
自带数据集的datasets模块里包含自带数据集,使用load_*加载即可,使用示例如下所示。
代码语言:javascript复制from sklearn.datasets import load_iris
data = load_iris()
# 查看数据描述
print(data.DESCR)
X = data.data
y = data.target
自带数据集的基本信息及序号30、31、32的自带数据集做简单的介绍如下。读者也可以使用data.DESCR,查看其英文描述。
30. 波士顿房价数据集
- 调用方法:load_boston
- 模型类型:回归
- 数据规模(样本*特征):506*13
这个数据集包含了506处波士顿不同地理位置的房产的房价数据(因变量),房屋以及房屋周围的详细信息(自变量),其中包含城镇犯罪率、一氧化氮浓度、住宅平均房间数等13个维度的数据,波士顿房价数据集能够应用到回归问题上。波士顿房价数据集与属性描述如下所示。
- CRIM:城镇人均犯罪率。
- ZN:住宅用地超过25000平方英尺的比例。
- INDUS:城镇非零售商用土地的比例。
- CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)。
- NOX:一氧化氮浓度。
- RM:住宅平均房间数。
- AGE:1940 年之前建成的自用房屋比例。
- DIS:到波士顿五个中心区域的加权距离。
- RAD:辐射性公路的接近指数。
- TAX:每10000 美元的全值财产税率。
- PTRATIO:城镇师生比例。
- MEDV:自住房的平均房价,以千美元计。
31. 鸢尾花数据集
- 调用方法:load_iris
- 模型类型:分类
- 数据规模(样本*特征):105*4
鸢尾花数据集是一个非常经典的数据集,著名的统计学家Fisher在研究判别分析问题时收集了一些关于鸢尾花的数据,包含了150个鸢尾花样本,对应3种鸢尾花,各50个样本,以及它们各自对应的4种关于外形的数据(自变量)。该数据集可用于多分类问题,测量数据如下所示。
- sepal length (cm):萼片长度。
- sepal width (cm):萼片宽度。
- petal length (cm):花瓣长度。
- petal width (cm):花瓣宽度。
类别共分为三类:Iris Setosa、Iris Versicolour和Iris Virginica。
32. 手写数字数据集
- 调用方法:load_digits
- 模型类型:分类
- 数据规模(样本*特征):1797*64
这个数据集是结构化数据的经典数据,共有1797个样本,每个样本有64个元素,对应一个8×8像素点组成的矩阵,矩阵中值的范围是0~16,代表颜色的深度,控制每一个像素的黑白浓淡,所以每个样本还原到矩阵后代表一个手写体数字。
33. 糖尿病数据集
- 调用方法:load_diabetes
- 模型类型:回归
- 数据规模(样本*特征):422*10
34. 葡萄酒数据集
- 调用方法:Load_wine
- 模型类型:分类
- 数据规模(样本*特征):178*13
35. 乳腺癌数据集
- 调用方法:load_breast_cancer
- 模型类型:分类
- 数据规模(样本*特征):569*30
36. 体能训练数据集
- 调用方法:load_linnerud
- 模型类型:多元回归
- 数据规模(样本*特征):20*3
scikit-learn在线下载数据集的datasets模块包含在线下载数据集的方法,调用fetch_*接口从网络下载,示例如下所示。
代码语言:javascript复制from sklearn.datasets import fetch_20newsgroups
newsgroups_train = fetch_20newsgroups(subset='train')
newsgroups_test = fetch_20newsgroups(subset='test')
注意,fetch_*接口由于需要从国外网址下载数据,速度可能很慢!
在线下载数据集的基本信息如下所示。
37. Olivetti脸部图像数据集
- 调用方法:fetch_olivetti_faces
- 模型类型:降维
- 数据规模(样本*特征):400*64*64
38. 20类新闻分类数据集(文本)
- 调用方法:fetch_20newsgroups
- 模型类型:分类
- 数据规模(样本*特征):18846*1
39. 20类新闻文本数据集(特征向量)
- 调用方法:fetch_20newsgroups_vectorized
- 模型类型:分类
- 数据规模(样本*特征):18846*130107
40. 带标签的人脸数据集
- 调用方法:fetch_lfw_people
- 模型类型:分类
- 数据规模(样本*特征):13233*5828
41. 路透社新闻语料数据集
- 调用方法:fetch_rcv1
- 模型类型:分类
- 数据规模(样本*特征):804414*47236
42. 加州住房数据集
- 调用方法:fetch_california_housing
- 模型类型:回归
- 数据规模(样本*特征):20640*8
43. 森林植被
- 调用方法:fetch_covtype
- 模型类型:多分类
- 数据规模(样本*特征):581012*54
scikit-learn包括用于以svmlight/libsvm格式加载数据集的实函数。在这种格式中,每一行都采用表格,此格式特别适用于稀疏数据集。在该模块中,使用SciPy稀疏CSR矩阵,并使用numpy数组,示例如下。svmlight / libsvm格式的公共数据集可以从网上下载。
网址:csie.ntu
代码语言:javascript复制from sklearn.datasets import load_svmlight_file
X_train , y_train = load_svmlight_file ("/ path / to / train_dataset.txt " )newsgroups_test = fetch_20newsgroups(subset='test')
openml是机器学习数据和实验的公共存储库,允许每个人上传开放数据集。sklearn.datasets能够从存储库下载数据集。示例如下:
代码语言:javascript复制from sklearn.datasets import fetch_openml
mice = fetch_openml(name='miceprotein', version=4)
print(mice.DESCR)
mice.ur