使用 UCI 机器学习库的数据集进行机器学习实践

在哪里可以找到好的数据集来练习机器学习?

这些数据集是真实的,因此它们既有趣又相关,同时又足够小,可以在Excel中查看并在桌面上进行处理。

在这篇文章中,您将发现一个高质量、真实世界且易于理解的机器学习数据集数据库,您可以使用它来练习应用机器学习。

这个数据库被称为UCI机器学习库,您可以利用它来构建自学计划,并为机器学习打下坚实的基础。

Practice Practice Practice

实践、实践、再实践
图片由Phil Roeder拍摄,保留部分权利。

为什么我们需要练习数据集?

如果您有兴趣练习应用机器学习,那么您需要数据集来实践。

这个问题可能会让你止步不前。

  • 您应该使用哪个数据集?
  • 您应该自己收集数据还是使用现成的数据?
  • 哪一个,为什么?

我教授一种自上而下的机器学习方法,我鼓励您学习一个端到端解决问题的过程,将该过程映射到工具上,并有针对性地在数据上实践该过程。欲了解更多信息,请参阅我的文章“面向程序员的机器学习:从开发人员到机器学习实践者”。

那么如何有针对性地练习呢?

我教授的最佳入门方法是在具有特定特征的数据集上进行练习。

我建议您选择在解决自身问题时会遇到并需要处理的特征,例如:

  • 不同类型的监督学习,如分类和回归。
  • 不同大小的数据集,从几十个、几百个、几千个到几百万个实例。
  • 不同数量的属性,从不到十个、几十个、几百个到几千个属性。
  • 不同属性类型,包括实数、整数、类别、序数和混合类型。
  • 不同的领域,这会迫使您快速理解和描述一个您以前没有经验的新问题。

通过设计一个测试问题数据集程序,您可以创建一个要研究和学习的特征以及解决这些问题所需的算法的程序。

这样的程序有许多实际要求,例如:

  • 真实世界:数据集应来源于真实世界(而不是人为设计的)。这将使它们保持趣味性,并引入真实数据带来的挑战。
  • 小规模:数据集需要小规模,以便您可以检查和理解它们,并且可以快速运行许多模型以加速您的学习周期。
  • 充分理解:应该清楚地了解数据包含什么、为什么收集数据以及需要解决的问题是什么,以便您可以构建您的调查。
  • 基线:了解哪些算法表现良好以及它们取得的得分也很重要,这样您就可以有一个有用的比较点。这在您刚开始学习时很重要,因为您需要快速反馈您的表现如何(接近最新水平还是存在问题)。
  • 丰富:您需要许多数据集可供选择,既能满足您希望调查的特征,又能(如果可能)满足您的好奇心和兴趣。

对于初学者来说,UCI机器学习库提供了您所需的一切以及更多的练习数据集。

什么是UCI机器学习库?

UCI 机器学习库是一个您可以免费访问的机器学习问题数据库。

它由加州大学欧文分校的机器学习与智能系统中心托管和维护。它最初由加州大学欧文分校的研究生David Aha创建。

25年多来,它一直是机器学习研究人员和需要数据集的机器学习实践者的首选之地。

UCI Machine Learning Repository

UCI 机器学习存储库

每个数据集都有自己的网页,列出了所有已知详情,包括任何相关的研究出版物。数据集本身可以下载为ASCII文件,通常是常用的CSV格式。

例如,这里是鲍鱼数据集的网页,该数据集需要根据鲍鱼的身体测量数据预测其年龄。

资源库的优势

该库的一些优点包括:

  • 几乎所有数据集都来源于实际领域(而不是合成的),这意味着它们具有真实世界的特性。
  • 数据集涵盖了从生物学到粒子物理学等广泛的主题。
  • 数据集的详细信息按属性类型、实例数量、属性数量和发布年份等方面进行汇总,可以进行排序和搜索。
  • 数据集经过充分研究,这意味着它们在有趣的特性和预期的“良好”结果方面广为人知。这可以提供有用的比较基线。
  • 大多数数据集都比较小(数百到数千个实例),这意味着您可以轻松地将它们加载到文本编辑器或MS Excel中进行查看,也可以在您的工作站上快速对它们进行建模。

使用这个方便的表格浏览300多个数据集,支持排序和搜索。

资源库的批评

对该资源库的一些批评包括:

  • 数据集经过清理,这意味着准备它们的 研究人员通常已经对属性和实例的选择进行了预处理。
  • 数据集很小,如果您对研究大规模问题和技术感兴趣,这就不太有用。
  • 可供选择的太多,您可能会因犹豫不决和过度分析而停滞不前。当您不确定某个数据集是否适合您正在研究的“好数据集”时,很难仅仅选择一个数据集并开始工作。
  • 数据集仅限于表格数据,主要用于分类(尽管也列出了聚类和回归数据集)。这对于对自然语言、计算机视觉、推荐系统和其他数据感兴趣的人来说是有限制的。

请访问资源库主页,它会显示特色数据集、最新数据集以及目前最受欢迎的数据集。

一项自学计划

那么,如何才能最好地利用UCI机器学习库呢?

我建议您考虑您想了解的问题数据集中的特征。

这些特征可能是您想要建模的(如回归),或者是您想更熟练使用来建模这些特征的算法(如用于多类别分类的随机森林)。

一个示例程序可能如下所示:

这只是一个特征列表,您可以自行选择要研究的特征。

我为每个特征列出了一个数据集,但您可以选择2-3个不同的数据集,并完成一些小项目,以提高您的理解并进行更多练习。

对于每个问题,我建议您系统地端到端地处理它,例如,按照应用机器学习过程中的以下步骤进行:

  1. 定义问题
  2. 准备数据
  3. 评估算法
  4. 改进结果
  5. 撰写结果
Machine Learning for Programmers - Select a Systematic Process

选择一个系统化且可重复的流程,你可以用它来持续地交付结果。

有关系统地解决机器学习问题的更多信息,请参阅我的文章“解决机器学习问题的过程”。

撰写是关键部分。

它允许您建立一个项目组合,您可以在未来的项目中将其作为参考并快速启动,还可以将其用作公开简历,展示您在应用机器学习方面不断增长的技能和能力。

有关构建项目组合的更多信息,请参阅我的文章“建立机器学习项目组合:完成小型重点项目并展示您的技能”。

但是,如果……

我不知道机器学习工具。
选择一个工具或平台(如Weka、R或scikit-learn),并使用此过程来学习该工具。同时兼顾机器学习实践和熟练掌握工具。

我不知道如何编程(或者编程水平不高)。
使用 Weka。它有一个图形用户界面,无需编程。我建议初学者使用它,无论他们是否会编程,因为处理机器学习问题的过程与该平台非常契合。

我没时间了。
拥有一个强大的系统化流程和一个涵盖整个流程的良好工具,我认为您可以在一到两个小时内解决一个问题。这意味着您可以在一个晚上或两个晚上完成一个项目。

您可以选择要调查的详细程度,并且在刚开始时保持轻松和简单是一个好主意。

我没有我正在建模的领域的背景知识。
数据集页面提供了一些关于数据集的背景信息。通常,您可以通过查看出版物或主数据集附带的信息文件来深入了解。

我几乎没有处理机器学习问题的经验。
现在是您开始的时候了。选择一个系统化流程,选择一个简单的数据集和一个像Weka这样的工具,然后解决您的第一个问题。为您的机器学习基础打下第一块基石。

我没有数据分析经验。
无需数据分析经验。这些数据集简单、易懂且解释充分。您只需通过数据集主页和查看数据文件本身来阅读它们。

行动步骤

选择一个数据集并开始吧。

如果您认真对待自学,请考虑设计一份适度的特征列表和相应的要调查的数据集。

您将学到很多东西,并为深入研究更复杂和有趣的问题打下宝贵的基础。

您觉得这篇文章有用吗?请留言告诉我。

119条回复《使用UCI机器学习库中的数据集进行机器学习实践

  1. hossein 2015年9月11日下午3:22 #

    亲爱的Jason,
    您是最好的老师,因为您让事情变得简单。

    • Jason Brownlee 2015年9月11日下午5:22 #

      谢谢hossein!

    • Satyam 2020年1月9日上午4:00 #

      对于数据科学领域的任何新手来说,这都是一篇很棒的文章,非常感谢您的工作。

    • Khin myo myat 2020年4月10日下午9:23 #

      非常感谢Jason先生。我一定会按照您的建议进行实践。

  2. Rash 2015年12月2日下午8:12 #

    嗨,Jason,
    感谢这篇精彩的帖子。我刚开始学习数据分析,对于何时开始做项目感到完全困惑。这篇帖子真的很有启发性。

  3. Justin 2015年12月25日下午8:05 #

    你提到了一些令人困惑的事情……“例如,这是鲍鱼数据集的网页,该数据集要求根据其物理测量数据预测鲍鱼的年龄。”

    你为什么用“要求”这个词?网页要求……还是数据集要求?不。令人困惑。

    这样说不是更合理吗……“数据集为学习机器提供内容,以根据物理测量数据预测鲍鱼的年龄。”

  4. abhijit kamune 2016年4月5日上午1:59 #

    我可以说它是机器学习问题的一站式解决方案。
    非常感谢Jason,您让我的生活变得轻松…… 🙂

  5. Wlodzimierz 2016年4月14日下午10:26 #

    你好,你能推荐一个或几个关于计算机系统资源使用的数据集用于机器学习吗?
    提前感谢。

  6. Adam 2016年6月25日上午6:55 #

    嗨,Jason,

    我有一个关于葡萄酒质量数据集的问题
    我应该如何看待数据?
    我打开数据后发现密度和残留糖高度相关。但是现在该怎么办?我应该尝试为每个特征绘制一个图吗?(例如 plot(x1,quality) plot(x2,quality) 等等?
    您能给我一些建议,应该采取哪些步骤吗?

    此致,
    Adam

  7. Elton 2016年6月30日上午10:00 #

    正是我一直在寻找的,非常感谢!

  8. Liem Le 2016年7月12日下午10:41 #

    作为一名刚毕业的编程新手,您的帖子正是我所寻找的。
    谢谢。

  9. Sonal Somani 2016年8月2日下午1:31 #

    嘿Jason,这确实分解得很细致。我总是觉得我太投入到问题中而忽略了全局,但我认为保持一个流程并循序渐进地学习是一个很好的方法。我肯定期待按照您的建议进行实践。谢谢!

  10. kay 2016年8月14日上午6:49 #

    多么棒的发现!这真是好得难以言喻,Jason;谢谢您!!!

  11. Kartik 2016年8月18日下午4:08 #

    嗨,Jason,

    获得了很好的链接流,简单明了,解释详细。

    谢谢

  12. Lumilog 2016年9月9日上午9:08 #

    嗨,Jason!

    您如何处理数据集似乎没有任何基准来判断预测的准确性是差、一般还是好?如果我选择一个二元分类数据集进行练习,并得到例如 ROC = 0.6,我怎么知道这是一个了不起的结果,还是与其他人的表现相比我还有很大的改进空间?

    谢谢

    • Jason Brownlee 2016年9月10日上午7:10 #

      很好的问题!

      答案是使用ZeroR或类似方法来设定问题的基线,并确定所有其他结果可以进行比较的起点。在您运行一套良好的标准算法后,您会对手动实现的结果有一个感觉,从而提供一个新的基线来改进。

      从那里开始,结果的解释是针对具体问题的。

  13. almas 2016年11月16日下午9:25 #

    先生,这篇帖子对初学者真的很有帮助,谢谢您

  14. LinboLee 2016年11月21日上午12:42 #

    你好 Jason,
    感谢您的帖子,非常有帮助。但我有一个问题,就是如何验证您的结果或您实现的算法?如何将我们的结果与更好的结果进行比较?

    谢谢。

    • Jason Brownlee 2016年11月22日上午6:50 #

      你好LinboLee,好问题。

      您可以通过估计模型在未见过数据上的性能来评估它们的性能。您可以使用k折交叉验证等重采样方法来实现这一点。

      然后,您可以比较多种算法在问题上的技能。

      您可以通过重新创建它们的测试设置来与以前发表的结果进行比较。

  15. yexiuqiang 2017年5月29日下午6:52 #

    我想我明白了如何学习机器学习。谢谢。

  16. Priyank 2017年6月4日上午4:52 #

    谢谢这篇很棒的文章,您做得非常棒,
    先生!

  17. Kotrappa Sirbi 2017年6月19日下午9:03 #

    非常感谢Jason Brownlee博士

  18. Lautaro 2017年6月29日上午3:55 #

    非常棒的文章,您一如既往地能够清晰阐述预测建模中的理论和实践问题。

    我还推荐Kaggle数据集。它们也是免费的,有大数据集和小数据集。

  19. Francisco Cabrera 2017年7月21日上午5:13 #

    感谢这篇令人耳目一新的文章,Jason!您的解释虽然简单,但却深刻且思考周全。我从您的著作中学到了很多。

    再次感谢您与我们分享您的智慧和知识。

  20. lab 2017年8月10日下午8:42 #

    你怎么样,你能添加这个好的开放数据集的矿藏吗? http://www.andbrain.com/

  21. Nada 2017年9月12日上午2:40 #

    Jason,您真是太棒了。我一直在寻找这样的地图很长时间了!非常感谢您。

  22. huda 2017年9月27日下午9:20 #

    您所说的每一句话都很有价值,真的激励我努力学习机器学习的一切。

  23. Ali 2017年10月17日下午10:34 #

    非常感谢Jason提供了关于机器学习的宝贵信息。

  24. shivaprasad 2017年10月24日下午6:58 #

    太棒了,先生,真的很好。谢谢您

  25. Vova 2017年11月6日下午11:02 #

    只想对您说声非常感谢,Jason
    您的文章真的很有帮助!

  26. Shane 2017年11月28日上午8:39 #

    我喜欢你分解机器学习问题类型的方式。这是一个很棒的资源!

  27. Parvez Khan 2018年1月8日下午2:56 #

    嗨 Jason

    感谢您提供了关于机器学习的优秀内容。
    通过您的帖子,我真正理清了我的想法。
    我目前的任务是比较至少四个价格列表,并为我们公司建议最终价格列表。请为我推荐合适的算法。

  28. S B Iqbal 2018年1月9日下午5:14 #

    嗨,Jason,

    感谢您的精彩帖子。

    您能否就如何使用 R 从 UC Irvine 数据库抓取数据提供建议?如果能看到一个教程就太好了。

    • Jason Brownlee 2018年1月10日上午5:21 #

      无需抓取数据集,您可以直接下载CSV文件。

  29. praveen kumar 2018年3月5日下午5:48 #

    我如何准备自己的数据集?你能给我指条路吗?
    原始数据可以是图像、整数数组、字符数组或字符串。

  30. Mustafa 2018年3月13日下午5:49 #

    谢谢你的支持。

  31. Asma 2018年5月11日下午8:47 #

    嗨,Jason,

    我想准备一份关于负责任人工智能或道德人工智能的白皮书投稿。您能为此建议任何用例或问题陈述吗?

  32. Arjun 2018年6月29日下午11:25 #

    我希望能定期与您保持联系,因为我想成为一名真正优秀的数据科学家,而您真正知道通往那里的道路。
    这个网站是学习机器学习的最佳资源。

  33. Aditya 2018年7月3日上午4:50 #

    Pima数据集现在不可用。

  34. Amrit 2018年7月14日下午8:47 #

    先生,你好
    您能指导我关于城市供水的数据集吗?

  35. Paul A. Gureghian 2018年7月21日上午5:13 #

    如何从UCI下载数据集?就是像Python和R中通常那样下载吗?网站上是否有下载链接?

    • Jason Brownlee 2018年7月21日上午6:40 #

      它们有一个下载链接,您可以使用网络浏览器。

  36. Winnie 2018年11月13日上午12:40 #

    非常感谢您的文章

  37. Liston 2018年11月19日下午5:08 #

    好帖子。我从事应用机器学习应用。需要使用好的数据集来评估算法。

  38. Theresa 2018年11月21日下午10:39 #

    谢谢你 Jason。你不知道这对我现在有多大的帮助。愿上帝保佑

  39. Pooja 2018年12月21日下午6:01 #

    你好,先生,
    感谢您提供如此棒的信息,它非常容易理解。作为一名理学硕士(统计学)学生,我正在寻找数据挖掘项目,您能给我一些建议吗?

    • Jason Brownlee 2018年12月22日上午6:03 #

      谢谢,也许可以尝试使用这些数据集中的一些。

  40. Viva 2019年3月9日下午7:20 #

    嗨,Jason,

    感谢您的文章。我最近开始阅读您的页面和文章。我是一名喜欢玩弄数据的分析师,我缺乏的是系统化的算法实现方法,我理论上知道它们,但对实现它们没有信心。我也加入了您网站的邮件订阅,并且正在阅读您的一些文章,以便开始有计划地工作。我通常在学习过程中迷失和不知所措,因此半途而废。希望您能帮助我,告诉我如何才能保持学习过程的效率。

  41. Shaima 2019年3月19日上午1:22 #

    Jason教授,您一如既往地是最棒的

  42. Priya 2019年8月17日上午2:27 #

    在哪里可以找到用于机器学习的植物病害数据集,有谁能给我一些建议吗?

  43. Manjunath 2019年9月11日下午4:20 #

    如何在Excel中读取uci数据集?有谁能帮我!

  44. shadrack kodondi 2019年10月16日下午9:05 #

    在浏览了许多网站之后,我来到了这里,这是我访问过的最好的机器学习入门网站……非常感谢Jason

  45. Adarsh 2020年1月30日下午7:08 #

    嗨,Jason先生,
    我如何从UCI存储库获取csv文件…………我得到一个用记事本打开的txt文件
    请快点帮助我

  46. Chao 2020年3月17日上午2:17 #

    你好,Jason。

    感谢您的帖子,对我帮助很大。

    关于UCI库中的数据集,我想知道如何获取csv格式的文件。因为我发现那里的文件扩展名是.data,而不是.csv。

    • Jason Brownlee 2020年3月17日上午8:18 #

      您可能需要将某些文件转换为CSV格式。有些文件可能具有.data扩展名,但已经是CSV格式。

  47. Peggy 2020年3月17日下午3:01 #

    谢谢Jason,这对我是学习机器学习的绝佳教程。它给了我继续学习的信心。

  48. Fashi Uddin 2020年4月15日下午4:58 #

    真希望我刚开始学习数据科学的时候就有这些资源。实践是关键,阅读再多书也只能让你对过程有一个或两个方面的了解。实践才能让你接触到真实世界的场景。

  49. Sachin Koti 2020年5月1日下午11:00 #

    精彩的解释……
    谢谢Jason!!
    知识因分享而增长,您在这方面已经做得非常棒了。

  50. wysohn 2020年5月6日下午3:44 #

    这是我经常回访的唯一网站,我想这简单地表明您分享的信息多么有价值!

    非常感谢您花费时间和精力做这一切。

  51. Simon J Samaha 2020年6月10日下午2:33 #

    很棒的见解。
    现在我要用weka做实验了 😉

  52. salwa rizk 2020年8月4日下午5:55 #

    感谢您的帮助,
    这也许能给像我这样的非专业人士带来希望,让他们在多次失败后重新开始。我感谢所有像您这样乐于助人的人

  53. robin 2020年8月19日上午4:36 #

    @Jason,

    感谢您的出色工作。它提高了我的机器学习知识并增加了我的兴趣。我很好奇您是否知道其他机器学习库,特别是那些拥有原始数据集的——只是为了提高我的数据清理/预处理技能?

    谢谢!

  54. sai sowmya grandhi 2020年8月25日下午3:21 #

    你让我觉得编程并不是每个人都夸大的那么难。我开始使用R编程只是因为你。谢谢你给我的信心。

    • Jason Brownlee 2020年8月26日上午6:44 #

      为你的进步喝彩!

      是的,这不是什么大问题——只是我们用来完成工作的另一个工具,就像写作一样。

  55. java37 2020年11月1日上午8:08 #

    非常感谢您的帖子,对我很有帮助。

    关于UCI仓库中的数据集,我正在考虑如何获取CSV格式。因为我发现那里的文件扩展名是.data,而不是.csv。

    • Jason Brownlee 2020年11月1日上午8:26 #

      您可以将 .data 更改为 .csv。

      此外,Python 不关心扩展名,只关心内容。

  56. Jean-Christophe Chouinard 2021年2月26日下午2:38 #

    感谢您提供的带有分类的模型列表,这使得入门更容易。

  57. Nhung 2021年7月5日下午7:09 #

    非常感谢您的精彩分享!

  58. Niaz Ahmad 2022年2月22日下午2:31 #

    先生,您的工作非常受赞赏,请您在一个问题上给我一些启示,我想开发一个植物/水果病害检测系统,是使用现有数据集还是自己准备数据集更好。谢谢并致以问候

  59. K.Soumaia 2022年10月1日上午6:14 #

    谢谢并致以问候

    • James Carmichael 2022年10月1日上午6:52 #

      非常欢迎您 K.Soumaia!

发表评论

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。