在哪里可以找到好的数据集来练习机器学习?
这些数据集是真实的,因此它们既有趣又相关,同时又足够小,可以在Excel中查看并在桌面上进行处理。
在这篇文章中,您将发现一个高质量、真实世界且易于理解的机器学习数据集数据库,您可以使用它来练习应用机器学习。
这个数据库被称为UCI机器学习库,您可以利用它来构建自学计划,并为机器学习打下坚实的基础。

实践、实践、再实践
图片由Phil Roeder拍摄,保留部分权利。
为什么我们需要练习数据集?
如果您有兴趣练习应用机器学习,那么您需要数据集来实践。
这个问题可能会让你止步不前。
- 您应该使用哪个数据集?
- 您应该自己收集数据还是使用现成的数据?
- 哪一个,为什么?
我教授一种自上而下的机器学习方法,我鼓励您学习一个端到端解决问题的过程,将该过程映射到工具上,并有针对性地在数据上实践该过程。欲了解更多信息,请参阅我的文章“面向程序员的机器学习:从开发人员到机器学习实践者”。
那么如何有针对性地练习呢?
我教授的最佳入门方法是在具有特定特征的数据集上进行练习。
我建议您选择在解决自身问题时会遇到并需要处理的特征,例如:
- 不同类型的监督学习,如分类和回归。
- 不同大小的数据集,从几十个、几百个、几千个到几百万个实例。
- 不同数量的属性,从不到十个、几十个、几百个到几千个属性。
- 不同属性类型,包括实数、整数、类别、序数和混合类型。
- 不同的领域,这会迫使您快速理解和描述一个您以前没有经验的新问题。
通过设计一个测试问题数据集程序,您可以创建一个要研究和学习的特征以及解决这些问题所需的算法的程序。
这样的程序有许多实际要求,例如:
- 真实世界:数据集应来源于真实世界(而不是人为设计的)。这将使它们保持趣味性,并引入真实数据带来的挑战。
- 小规模:数据集需要小规模,以便您可以检查和理解它们,并且可以快速运行许多模型以加速您的学习周期。
- 充分理解:应该清楚地了解数据包含什么、为什么收集数据以及需要解决的问题是什么,以便您可以构建您的调查。
- 基线:了解哪些算法表现良好以及它们取得的得分也很重要,这样您就可以有一个有用的比较点。这在您刚开始学习时很重要,因为您需要快速反馈您的表现如何(接近最新水平还是存在问题)。
- 丰富:您需要许多数据集可供选择,既能满足您希望调查的特征,又能(如果可能)满足您的好奇心和兴趣。
对于初学者来说,UCI机器学习库提供了您所需的一切以及更多的练习数据集。
什么是UCI机器学习库?
UCI 机器学习库是一个您可以免费访问的机器学习问题数据库。
它由加州大学欧文分校的机器学习与智能系统中心托管和维护。它最初由加州大学欧文分校的研究生David Aha创建。
25年多来,它一直是机器学习研究人员和需要数据集的机器学习实践者的首选之地。
每个数据集都有自己的网页,列出了所有已知详情,包括任何相关的研究出版物。数据集本身可以下载为ASCII文件,通常是常用的CSV格式。
例如,这里是鲍鱼数据集的网页,该数据集需要根据鲍鱼的身体测量数据预测其年龄。
资源库的优势
该库的一些优点包括:
- 几乎所有数据集都来源于实际领域(而不是合成的),这意味着它们具有真实世界的特性。
- 数据集涵盖了从生物学到粒子物理学等广泛的主题。
- 数据集的详细信息按属性类型、实例数量、属性数量和发布年份等方面进行汇总,可以进行排序和搜索。
- 数据集经过充分研究,这意味着它们在有趣的特性和预期的“良好”结果方面广为人知。这可以提供有用的比较基线。
- 大多数数据集都比较小(数百到数千个实例),这意味着您可以轻松地将它们加载到文本编辑器或MS Excel中进行查看,也可以在您的工作站上快速对它们进行建模。
使用这个方便的表格浏览300多个数据集,支持排序和搜索。
资源库的批评
对该资源库的一些批评包括:
- 数据集经过清理,这意味着准备它们的 研究人员通常已经对属性和实例的选择进行了预处理。
- 数据集很小,如果您对研究大规模问题和技术感兴趣,这就不太有用。
- 可供选择的太多,您可能会因犹豫不决和过度分析而停滞不前。当您不确定某个数据集是否适合您正在研究的“好数据集”时,很难仅仅选择一个数据集并开始工作。
- 数据集仅限于表格数据,主要用于分类(尽管也列出了聚类和回归数据集)。这对于对自然语言、计算机视觉、推荐系统和其他数据感兴趣的人来说是有限制的。
请访问资源库主页,它会显示特色数据集、最新数据集以及目前最受欢迎的数据集。
一项自学计划
那么,如何才能最好地利用UCI机器学习库呢?
我建议您考虑您想了解的问题数据集中的特征。
这些特征可能是您想要建模的(如回归),或者是您想更熟练使用来建模这些特征的算法(如用于多类别分类的随机森林)。
一个示例程序可能如下所示:
- 二元分类:Pima印第安人糖尿病数据集(此处可用)
- 多类别分类:鸢尾花数据集
- 回归:葡萄酒质量数据集
- 分类属性:乳腺癌数据集
- 整数属性:计算机硬件数据集
- 分类成本函数:德国信用数据
- 缺失数据:马疝气数据集
这只是一个特征列表,您可以自行选择要研究的特征。
我为每个特征列出了一个数据集,但您可以选择2-3个不同的数据集,并完成一些小项目,以提高您的理解并进行更多练习。
对于每个问题,我建议您系统地端到端地处理它,例如,按照应用机器学习过程中的以下步骤进行:
- 定义问题
- 准备数据
- 评估算法
- 改进结果
- 撰写结果
有关系统地解决机器学习问题的更多信息,请参阅我的文章“解决机器学习问题的过程”。
撰写是关键部分。
它允许您建立一个项目组合,您可以在未来的项目中将其作为参考并快速启动,还可以将其用作公开简历,展示您在应用机器学习方面不断增长的技能和能力。
有关构建项目组合的更多信息,请参阅我的文章“建立机器学习项目组合:完成小型重点项目并展示您的技能”。
但是,如果……
我不知道机器学习工具。
选择一个工具或平台(如Weka、R或scikit-learn),并使用此过程来学习该工具。同时兼顾机器学习实践和熟练掌握工具。
我不知道如何编程(或者编程水平不高)。
使用 Weka。它有一个图形用户界面,无需编程。我建议初学者使用它,无论他们是否会编程,因为处理机器学习问题的过程与该平台非常契合。
我没时间了。
拥有一个强大的系统化流程和一个涵盖整个流程的良好工具,我认为您可以在一到两个小时内解决一个问题。这意味着您可以在一个晚上或两个晚上完成一个项目。
您可以选择要调查的详细程度,并且在刚开始时保持轻松和简单是一个好主意。
我没有我正在建模的领域的背景知识。
数据集页面提供了一些关于数据集的背景信息。通常,您可以通过查看出版物或主数据集附带的信息文件来深入了解。
我几乎没有处理机器学习问题的经验。
现在是您开始的时候了。选择一个系统化流程,选择一个简单的数据集和一个像Weka这样的工具,然后解决您的第一个问题。为您的机器学习基础打下第一块基石。
我没有数据分析经验。
无需数据分析经验。这些数据集简单、易懂且解释充分。您只需通过数据集主页和查看数据文件本身来阅读它们。
行动步骤
选择一个数据集并开始吧。
如果您认真对待自学,请考虑设计一份适度的特征列表和相应的要调查的数据集。
您将学到很多东西,并为深入研究更复杂和有趣的问题打下宝贵的基础。
您觉得这篇文章有用吗?请留言告诉我。
亲爱的Jason,
您是最好的老师,因为您让事情变得简单。
谢谢hossein!
对于数据科学领域的任何新手来说,这都是一篇很棒的文章,非常感谢您的工作。
谢谢!
非常感谢Jason先生。我一定会按照您的建议进行实践。
不客气。
嗨,Jason,
感谢这篇精彩的帖子。我刚开始学习数据分析,对于何时开始做项目感到完全困惑。这篇帖子真的很有启发性。
你提到了一些令人困惑的事情……“例如,这是鲍鱼数据集的网页,该数据集要求根据其物理测量数据预测鲍鱼的年龄。”
你为什么用“要求”这个词?网页要求……还是数据集要求?不。令人困惑。
这样说不是更合理吗……“数据集为学习机器提供内容,以根据物理测量数据预测鲍鱼的年龄。”
我可以说它是机器学习问题的一站式解决方案。
非常感谢Jason,您让我的生活变得轻松…… 🙂
非常欢迎。
你好,你能推荐一个或几个关于计算机系统资源使用的数据集用于机器学习吗?
提前感谢。
嗨,Jason,
我有一个关于葡萄酒质量数据集的问题
我应该如何看待数据?
我打开数据后发现密度和残留糖高度相关。但是现在该怎么办?我应该尝试为每个特征绘制一个图吗?(例如 plot(x1,quality) plot(x2,quality) 等等?
您能给我一些建议,应该采取哪些步骤吗?
此致,
Adam
你好Adam,请看这个处理应用机器学习问题的过程
https://machinelearning.org.cn/process-for-working-through-machine-learning-problems/
正是我一直在寻找的,非常感谢!
不客气,埃尔顿。
作为一名刚毕业的编程新手,您的帖子正是我所寻找的。
谢谢。
很高兴听到这个消息!
嘿Jason,这确实分解得很细致。我总是觉得我太投入到问题中而忽略了全局,但我认为保持一个流程并循序渐进地学习是一个很好的方法。我肯定期待按照您的建议进行实践。谢谢!
很高兴对你有用,Sonal。
多么棒的发现!这真是好得难以言喻,Jason;谢谢您!!!
不客气,kay。
嗨,Jason,
获得了很好的链接流,简单明了,解释详细。
谢谢
很高兴它有用,Kartik。
嗨,Jason!
您如何处理数据集似乎没有任何基准来判断预测的准确性是差、一般还是好?如果我选择一个二元分类数据集进行练习,并得到例如 ROC = 0.6,我怎么知道这是一个了不起的结果,还是与其他人的表现相比我还有很大的改进空间?
谢谢
很好的问题!
答案是使用ZeroR或类似方法来设定问题的基线,并确定所有其他结果可以进行比较的起点。在您运行一套良好的标准算法后,您会对手动实现的结果有一个感觉,从而提供一个新的基线来改进。
从那里开始,结果的解释是针对具体问题的。
先生,这篇帖子对初学者真的很有帮助,谢谢您
很高兴听到这个消息,almas。
你好 Jason,
感谢您的帖子,非常有帮助。但我有一个问题,就是如何验证您的结果或您实现的算法?如何将我们的结果与更好的结果进行比较?
谢谢。
你好LinboLee,好问题。
您可以通过估计模型在未见过数据上的性能来评估它们的性能。您可以使用k折交叉验证等重采样方法来实现这一点。
然后,您可以比较多种算法在问题上的技能。
您可以通过重新创建它们的测试设置来与以前发表的结果进行比较。
我想我明白了如何学习机器学习。谢谢。
很高兴听到这个消息。
谢谢这篇很棒的文章,您做得非常棒,
先生!
谢谢Priyank。
非常感谢Jason Brownlee博士
很高兴它有帮助。
非常棒的文章,您一如既往地能够清晰阐述预测建模中的理论和实践问题。
我还推荐Kaggle数据集。它们也是免费的,有大数据集和小数据集。
好建议。
感谢这篇令人耳目一新的文章,Jason!您的解释虽然简单,但却深刻且思考周全。我从您的著作中学到了很多。
再次感谢您与我们分享您的智慧和知识。
谢谢Francisco,你真是太好了。坚持住!
你怎么样,你能添加这个好的开放数据集的矿藏吗? http://www.andbrain.com/
感谢分享。
Jason,您真是太棒了。我一直在寻找这样的地图很长时间了!非常感谢您。
很高兴它有帮助。
您所说的每一句话都很有价值,真的激励我努力学习机器学习的一切。
我很高兴听到这个消息!
非常感谢Jason提供了关于机器学习的宝贵信息。
很高兴它有帮助。
太棒了,先生,真的很好。谢谢您
很高兴它有帮助。
只想对您说声非常感谢,Jason
您的文章真的很有帮助!
谢谢Vova,我非常感谢您的支持。
我喜欢你分解机器学习问题类型的方式。这是一个很棒的资源!
谢谢Shane。
嗨 Jason
感谢您提供了关于机器学习的优秀内容。
通过您的帖子,我真正理清了我的想法。
我目前的任务是比较至少四个价格列表,并为我们公司建议最终价格列表。请为我推荐合适的算法。
请看这篇文章
https://machinelearning.org.cn/a-data-driven-approach-to-machine-learning/
嗨,Jason,
感谢您的精彩帖子。
您能否就如何使用 R 从 UC Irvine 数据库抓取数据提供建议?如果能看到一个教程就太好了。
无需抓取数据集,您可以直接下载CSV文件。
我如何准备自己的数据集?你能给我指条路吗?
原始数据可以是图像、整数数组、字符数组或字符串。
我推荐这个过程
https://machinelearning.org.cn/start-here/#process
谢谢你的支持。
不客气。
嗨,Jason,
我想准备一份关于负责任人工智能或道德人工智能的白皮书投稿。您能为此建议任何用例或问题陈述吗?
不,抱歉,这不是我的专业领域。
我希望能定期与您保持联系,因为我想成为一名真正优秀的数据科学家,而您真正知道通往那里的道路。
这个网站是学习机器学习的最佳资源。
您正在与我保持联系,随时通过评论或联系表单提问。
我最好的建议在这里
https://machinelearning.org.cn/start-here/
Pima数据集现在不可用。
你可以在这里找到它
https://github.com/jbrownlee/Datasets
先生,你好
您能指导我关于城市供水的数据集吗?
这是默认值。您可以在这里了解更多关于如何配置模型的信息
https://radimrehurek.com/gensim/models/keyedvectors.html
如何从UCI下载数据集?就是像Python和R中通常那样下载吗?网站上是否有下载链接?
它们有一个下载链接,您可以使用网络浏览器。
非常感谢您的文章
我很高兴它能帮到你。
好帖子。我从事应用机器学习应用。需要使用好的数据集来评估算法。
谢谢。
谢谢你 Jason。你不知道这对我现在有多大的帮助。愿上帝保佑
很高兴它有帮助!
你好,先生,
感谢您提供如此棒的信息,它非常容易理解。作为一名理学硕士(统计学)学生,我正在寻找数据挖掘项目,您能给我一些建议吗?
谢谢,也许可以尝试使用这些数据集中的一些。
嗨,Jason,
感谢您的文章。我最近开始阅读您的页面和文章。我是一名喜欢玩弄数据的分析师,我缺乏的是系统化的算法实现方法,我理论上知道它们,但对实现它们没有信心。我也加入了您网站的邮件订阅,并且正在阅读您的一些文章,以便开始有计划地工作。我通常在学习过程中迷失和不知所措,因此半途而废。希望您能帮助我,告诉我如何才能保持学习过程的效率。
尝试完成这个教程
https://machinelearning.org.cn/machine-learning-in-python-step-by-step/
Jason教授,您一如既往地是最棒的
谢谢。我很高兴它有帮助。
在哪里可以找到用于机器学习的植物病害数据集,有谁能给我一些建议吗?
这个可能会有帮助
https://machinelearning.org.cn/faq/single-faq/where-can-i-get-a-dataset-on-___
如何在Excel中读取uci数据集?有谁能帮我!
请看这个教程
https://machinelearning.org.cn/load-machine-learning-data-python/
在浏览了许多网站之后,我来到了这里,这是我访问过的最好的机器学习入门网站……非常感谢Jason
谢谢!
嗨,Jason先生,
我如何从UCI存储库获取csv文件…………我得到一个用记事本打开的txt文件
请快点帮助我
CSV文件就是文本文件。
而且,Python不关心扩展名,只关心内容。
https://github.com/jbrownlee/Datasets
你好,Jason。
感谢您的帖子,对我帮助很大。
关于UCI库中的数据集,我想知道如何获取csv格式的文件。因为我发现那里的文件扩展名是.data,而不是.csv。
您可能需要将某些文件转换为CSV格式。有些文件可能具有.data扩展名,但已经是CSV格式。
谢谢Jason,这对我是学习机器学习的绝佳教程。它给了我继续学习的信心。
谢谢,很高兴听到这个。
真希望我刚开始学习数据科学的时候就有这些资源。实践是关键,阅读再多书也只能让你对过程有一个或两个方面的了解。实践才能让你接触到真实世界的场景。
谢谢!
我同意。
精彩的解释……
谢谢Jason!!
知识因分享而增长,您在这方面已经做得非常棒了。
谢谢!
这是我经常回访的唯一网站,我想这简单地表明您分享的信息多么有价值!
非常感谢您花费时间和精力做这一切。
谢谢,您真好!
很棒的见解。
现在我要用weka做实验了 😉
不客气。
感谢您的帮助,
这也许能给像我这样的非专业人士带来希望,让他们在多次失败后重新开始。我感谢所有像您这样乐于助人的人
不客气!
@Jason,
感谢您的出色工作。它提高了我的机器学习知识并增加了我的兴趣。我很好奇您是否知道其他机器学习库,特别是那些拥有原始数据集的——只是为了提高我的数据清理/预处理技能?
谢谢!
是的,请看这个
https://machinelearning.org.cn/faq/single-faq/where-can-i-get-a-dataset-on-___
还有这个。
https://github.com/jbrownlee/Datasets
你让我觉得编程并不是每个人都夸大的那么难。我开始使用R编程只是因为你。谢谢你给我的信心。
为你的进步喝彩!
是的,这不是什么大问题——只是我们用来完成工作的另一个工具,就像写作一样。
非常感谢您的帖子,对我很有帮助。
关于UCI仓库中的数据集,我正在考虑如何获取CSV格式。因为我发现那里的文件扩展名是.data,而不是.csv。
您可以将 .data 更改为 .csv。
此外,Python 不关心扩展名,只关心内容。
感谢您提供的带有分类的模型列表,这使得入门更容易。
不客气。
非常感谢您的精彩分享!
不客气。
先生,您的工作非常受赞赏,请您在一个问题上给我一些启示,我想开发一个植物/水果病害检测系统,是使用现有数据集还是自己准备数据集更好。谢谢并致以问候
嗨Niaz……现有数据集以及迁移学习可能会有巨大的帮助。
https://machinelearning.org.cn/how-to-improve-performance-with-transfer-learning-for-deep-learning-neural-networks/
谢谢并致以问候
非常欢迎您 K.Soumaia!