机器学习如何入门?Kaggle CTO刚刚写了份详细的指南

简介:
本文来自AI新媒体量子位(QbitAI)


上周,Ben Hamner很忙。

作为全球最大数据科学和机器学习竞赛平台Kaggle的联合创始人&CTO,他在Quora上参加了一场AMA,还参加了一场机器学习会议。会议我们最后再说,先说AMA:它是ask me anything的首字母缩写,美国reddit、Quora等社区经常邀请名人参加这种在线问答活动,比如说盖茨就每年都会在reddit上搞AMA。

AMA中得票最高的答案是“研究机器学习和人工智能最好的资源是什么?”Hamner在答案中把机器学习的入门过程分成8步,写了一份详细的指南。量子位将要点编译如下:

你很幸运,要开始研究机器学习和人工智能,现在是比任何时候都好的时机。这个领域近年来在快速发展,专业人士发布并改进着高质量的开源软件工具和库,每天都有新的线上公开课和博客文章出现。机器学习在各个领域每天贡献着数十亿美元的营收,带来了无与伦比的资源和大量工作机会。

这也意味着,你在刚接触这个领域时会有被淹没的感觉。下面是我的入门方法,如果你在研究过程中卡住了,去Kaggle上搜索一下,很可能有人遇到过和你类似的问题,如果没有,可以在我们的论坛上发帖提问,这是个获得指引的好办法。

1. 找一个你感兴趣的问题

从一个你想解决的问题入手,会更容易集中精力,也更有学习的动力,这种方法比照着一份长得吓人的散乱知识点清单来学习要好很多。和被动地阅读相比,解决问题也能驱使你深入到机器学习之中。

好的入门问题有以下几个标准:

  • 涉及你个人感兴趣的领域;
  • 有现成的数据适合用来解决这个问题,否则你需要花大把的时间来找数据;
  • 你能够在一台机器上流畅地处理这些数据,或者它的子集。

想不出来要解决的问题?上Kaggle嘛……Kaggle有个入门系列竞赛,提供了适用于新手的机器学习问题。推荐从泰坦尼克号乘客的生还概率预测(https://www.kaggle.com/c/titanic)开始。

2. 做一个快速、脏乱、黑客范儿的端到端解决方案

初学者很容易陷入一个实现细节之中,或者为错误的机器学习算法仔细调试,你需要避免这种错误。你的目标,是尽可能快地把端到端的基本解决方法做出来:读入数据、把它处理成适用于机器学习的格式、训练一个基本的模型、得出结果、评估它的性能。

3. 改进你的解决方案

现在,基本功能已经实现,发挥创造性的时候到了。你可以尝试对最初解决方案中的每个组件进行优化,然后测试修改带来的作用,搞清楚该在哪个部件上花时间。通常来说,获取更多的数据或者请洗数据之类的预处理步骤,比优化机器学习模型有着更高的投入产出比。

这些步骤可能需要你亲自上手处理数据,比如说通过检查特定的某一行、通过可视化方法来查看数据分布等方式,来更好地理解数据的结构和怪癖。

4. 写出来你的解决方案&分享

想要获得别人对你的解决方案的反馈,最好的方法就是写出来并分享。写出你的解决方案意味着你会以新的方式去看它,并加深理解,也能让别人理解你的工作并做出反馈、帮你学习进步。写作也有助于开始建立机器学习作品集,来展示你的能力,对找工作很有帮助。

我们以Kaggle数据集和Kaggle Kernels为例,它们分别可以用来分享数据和解决方案,从而获得反馈,看其他人如何对你的问题进行扩展。这也是丰富你的Kaggle资料的办法。

5. 在更多问题上重复1-4步

现在,你已经完成了一个自己喜欢的问题,接下来应该在不同领域的问题上多试几次。

你在入门的时候是不是用了表格式的数据?选一个要用到非结构化文本的问题,再试试解决图像相关的问题。

你是不是先解决了一个结构化的机器学习问题?很多有价值的创造性工作,一开始都有赖于从宽泛的商业或研究对象找到一个定义清晰的机器学习问题。

Kaggle竞赛和数据集为机器学习的两个方面:定义清晰的机器学习问题和原始数据来源提供了一个良好的起步点。

6. 认真地参加Kaggle竞赛

和上千人比赛着去解决同一个问题,尽力做到最好,是一个很好的学习机会,这能够驱使你在这个问题上不断迭代,找到解决问题的有效途径。

关于其他人是怎样解决问题排除bug的,针对某个竞赛的论坛上有着丰富的资源,kernels体现了其他人对数据的洞察,并且给你提供了一个轻易的上手途径,获胜者的博客文章则展示了什么样的方法效果最好。

Kaggle竞赛提供了和别人组队的机会,我们的社区成员有着不同的背景和技能,每个人都能从其他人身上学到东西。

7. 在专业领域应用机器学习

这让你在大部分时间中都能接触到机器学习,有助于自我提升。决定你想要成为什么样的角色、建立和这个角色相关的个人项目列表,是一个很好的开端。

如果你还没准备好应聘机器学习相关职位,也可以在你现在的岗位上开辟新项目、寻找提供咨询的机会、参与黑客马拉松和数据相关的社区服务机会、这些都能帮你在机器学习领域立足。专业领域的工作通常需要比较强的编程能力。

在专业领域应用机器学习,有这些价值的机会:

  • 将机器学习用于生产系统;
  • 专注于机器学习研究,将技术发展的最高水平向前推进;
  • 用机器学习进行探查、分析,来提升你的产品和商业决策。

8. 帮助别人研究机器学习

教人学习能帮你巩固对基础概念的掌握。教别人有很多不同的方法,你可以根据自己的风格选一个:

  • 写论文;
  • 做演讲;
  • 写博客文章和教程;
  • 在Kaggle、Quora等网站上回答问题;
  • 亲自指导;
  • 在Kaggle Kernels和GitHub上分享代码;
  • 讲课;
  • 写书。

One More Thing…

这次AMA,其实Hamner最想谈的是Kaggle的未来,他在资料里列出了自己愿意回答的话题:

Kaggle的未来

开放数据

Kaggle竞赛

机器学习和AI

数据科学工作流程

产品和工程

Kaggle为何加入Google

可惜Quora上的群众对Kaggle的未来似乎并不关心,反正竞赛照常举行,数据集照常提供,量子位也不知道这个未来该从何问起。

不过,吃瓜群众不关心Kaggle的未来也没关系。周五,Hamner还去纽约的机器学习大会MLConf上做了以《Kaggle的未来:我们从何处来,到何处去》的演讲。

在量子位(公众号:QbitAI)对话界面回复“Kaggle”,我们会把Hamner这次演讲的PPT发给你。

本文作者:李林 
原文发布时间: 2017-03-27 
相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
211 8
|
机器学习/深度学习 数据采集 算法
深入了解机器学习:从入门到应用
【10月更文挑战第6天】深入了解机器学习:从入门到应用
|
11月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
596 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
12月前
|
机器学习/深度学习 数据采集
机器学习入门——使用Scikit-Learn构建分类器
机器学习入门——使用Scikit-Learn构建分类器
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的奥秘:机器学习入门指南
【10月更文挑战第30天】本篇文章是一份初学者友好的机器学习入门指南,旨在帮助读者理解并开始实践机器学习。我们将介绍机器学习的基本概念,包括监督学习、无监督学习和强化学习等。我们还将提供一些实用的代码示例,以帮助读者更好地理解和应用这些概念。无论你是编程新手,还是有一定经验的开发者,这篇文章都将为你提供一个清晰的机器学习入门路径。
230 2
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
124 1
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
136 1
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
237 2
|
机器学习/深度学习 人工智能 数据挖掘
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第6天】在人工智能领域,机器学习已成为核心技术。本文指导初学者使用Python与Scikit-learn入门机器学习,涵盖基本概念、环境搭建、数据处理、模型训练及评估等环节。Python因简洁性及其生态系统成为首选语言,而Scikit-learn则提供了丰富工具,简化数据挖掘与分析流程。通过实践示例,帮助读者快速掌握基础知识,为进一步深入研究奠定坚实基础。
147 4
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
2211 1

热门文章

最新文章