这是机器学习入门系列(2)–如何构建一个完整的机器学习项目的第二篇
上一篇机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)介绍了开始一个机器学习项目需要明确的问题,比如当前任务属于有监督还是无监督学习问题,然后性能指标需要选择什么,常用的分类和回归损失函数有哪些,以及实际开发中需要明确系统的输入输出接口问题。
第二篇,会介绍下如何获取数据集和构建测试集的方法。前者,对于机器学习来说,数据集的好坏对模型性能有很大的影响。而后者,主要是避免两个偏差–数据透视偏差和采样偏差。
2. 获取数据
2.1 常用数据集
在我们学习机器学习的时候,最好使用真实数据,即符合真实场景的数据集,而不是人工数据集,采用这种人工数据集在实际应用中会让系统表现很糟糕,因为人工数据集一般都和真实场景下的数据有较大的差异。幸运的是,现在有非常多的开源数据集,并且涵盖了多个领域,这里介绍几个常用的可以查找数据集的网站以及一些在计算机视觉常用的图像数据集:
- Kaggle 数据集:每个数据集都是一个小型社区,用户可以在其中讨论数据、查找公共代码或在内核中创建自己的项目。包含各式各样的真实数据集。
- Amazon 数据集:该数据源包含多个不同领域的数据集,如:公共交通、生态资源、卫星图像等。网页中也有一个搜索框来帮助用户寻找想要的数据集,还有所有数据集的描述和使用示例,这些数据集信息丰富且易于使用!
- UCI机器学习资源库:来自加州大学信息与计算机科学学院的大型资源库,包含100多个数据集。用户可以找到单变量和多变量时间序列数据集,分类、回归或推荐系统的数据集。
- 谷歌数据集搜索引擎:这是一个可以按名称搜索数据集的工具箱。
- 微软数据集:2018年7月,微软与外部研究社区共同宣布推出“Microsoft Research Open Data”。它在云中包含一个数据存储库,用于促进全球研究社区之间的协作。它提供了一系列用于已发表研究的、经过处理的数据集。
- Awesome Public Datasets Collection:Github 上的一个按“主题”组织的数据集,比如生物学、经济学、教育学等。大多数数据集都是免费的,但是在使用任何数据集之前,用户需要检查一下许可要求。
- 计算机视觉数据集:Visual Data包含一些可以用来构建计算机视觉(CV)模型的大型数据集。用户可以通过特定的CV主题查找特定的数据集,如语义分割、图像标题、图像生成,甚至可以通过解决方案(自动驾驶汽车数据集)查找特定的数据集。
常用的部分图像数据集: