我们在学习机器学习算法时候经常需要使用到一些现成的数据集来进行实验,便于我们更好地理解算法效果。
数据集(Dataset)是一种由数据所组成的集合,每一列代表一个特定变量,每一行对应于该问题的某一成员,通常以表格形式(***.csv)出现。
在选择数据集时要记住几个重要标准:
- 数据集不能是混乱的,数据越干净越好,因为清理大型数据集会非常耗时
- 数据集不应该有过多的行或者列,便于处理,减少计算时间。
Kaggle
一个数据科学竞赛网站,其中包含大量外部贡献的有趣数据集。我们可以在这长长的列表中找到各种小众数据集,比如:心脏疾病 UCI、马来西亚细胞图片数据集、FIFA 19完整运动员数据集等。
UCI Machine Learning Repository
网络中较老的数据集源之一,是学习者寻找各种有趣数据集的第一选择。这里的数据集都是用户自行贡献的,清洁程度很高,而且无需注册就可以直接在 UCI Machine Learning Repository 里下载数据。
GitHub
微软的开源代码网站 GitHub 里也有不少研究机构或用户贡献的开源数据集,按照自己项目需求用关键词直接搜索,并根据描述下载自己所需的数据集。
另外,功能强大的 Python 科学包 sklearn 里也自带一些数据集(比如:鸢尾花 iris 数据集、数字 digits 数据集等),便于我们在学习 sklearn 使用。
鸢尾花 iris 数据集(150,5),前四列为特征向量,第五列为标签(0:Iris-setosa,1:Iris-versicolor,2:Iris-virginica),这三类各50行。
from sklearn import datasets # 从sklearn中导入数据集
# digits = datasets.load_digits() # 也是 sklearn 自带的数据集
iris = datasets.load_iris() # 将鸢尾花(iris)数据集实例化
X = iris.data # 数据集中的变量
Y = iris.target # 数据集中的标签
基于 Anaconda + Jupyter Notebook 环境的运行结果:
下载自己所需的数据集后,关于数据集的导入和简单处理可以看我写的这篇:数据集的导入及缺失值处理。
推荐阅读:【资源】史上最全数据集汇总。