机器学习,什么时候学都不晚!
来自:Coggle
您在1979年读了新闻学本科,大约30年后在2012年选修了数据科学课程。什么促使您学习新技术并进入一个新领域?哪些资源/工具帮助您克服了这一差距?
Philip
:虽然我在大学主修新闻学,但我一直对计算机着迷,并在十几岁时开始编程。我作为技术作家的早期职业是我的写作和技术兴趣的良好结合。在做了大约15年的技术作者之后,我在接下来的20年里成为了一名连续创业者。
我参与的几乎所有初创公司都是数据驱动的公司,所以即使我的角色是管理和战略层面,我也保持与编程和数据的联系。
我不记得我是如何登陆 Kaggle 网站的,但是当我意识到ML的能力时,我感觉好像我在旷野长途跋涉后终于回到了家。
我认为ML最吸引我的是它可以用来回答如此广泛的现实生活问题。我一直对解决实际问题比对理论研究更感兴趣。
由于我多年没有做过任何编程,而且我的统计知识很初级,所以一开始我的学习曲线非常陡峭。我参加了很多在线课程,并关注Kaggle论坛来获取技巧。Kaggle排行榜在激励我继续学习方面非常有用。
作为一个长期的技术作家,您在过渡到机器学习过程中遇到过什么困难吗?
Philip
:从技术作家和企业家转变为机器学习从业者绝对是一个挑战。我很幸运在经济上有保障,所以我没有任何压力要以数据科学家的身份谋生。我只是按照自己的兴趣,尽可能多地专注于学习。
您在机器学习领域的自由职业者方面也有丰富的经验。初学者在该领域自由职业时应避免哪些陷阱?
Philip
:我最喜欢自由职业者的一点是,每个数据集和数据问题都是独一无二的,需要定制的解决方案。我认为初学者的最大陷阱是假设每个新项目都与他们已经遇到的相似。我的经验是,这是个例外,该项目更有可能需要一个人来学习新技术。
您是如何想到创立 Cozio Publishing 的?您之前是否有过编码经验?
Philip
:Cozio Publishing是在我的妻子想要购买一把“新”小提琴时成立的。有很多关于古董弦乐器的信息,但它们分散在不同的印刷出版物中——书籍、杂志、拍卖目录等。
当我帮助我的妻子收集信息时,我开始将数据输入自定义数据库,以便我们可以跟踪她正在考虑的不同仪器。在某个时候,我意识到其他音乐家可能会发现这些信息有用。
数据新闻——这是当今流行的流行词。你在这个领域有什么经验吗?它如何利用机器学习领域?
Philip
:虽然我是学新闻学的,是个技术作家,但实际上我已经很多年没有写过任何文章了,所以我不能真正评论数据新闻学,但这听起来很有趣。
你是Kaggle比赛的大师,目前排名第47。您参加了80多项比赛。这真太了不起了!如果我们具体谈谈您的 Kaggle 之旅,那么您面临哪些挑战,您是如何克服这些挑战的?
Philip
:我基本上是从零开始的,对机器学习、概率、统计或矩阵代数一无所知。我所拥有的只是一点数据库设计知识和一些非常生疏的 C 编程技能。
所以我必须一次学习所有东西R、Python、概率和统计,以及机器学习。我很幸运,正是在MOOC开始流行的时候开始了这段旅程。我的第一个在线课程之一,是著名的Andrew Ng ML课程,另一个很棒的课程是Tibshirani和Hastie的斯坦福统计学习课程。
我通过 Coursera、MIT、Stanford 等在线学习了许多其他课程。这些课程的整体质量非常高。
为了让初学者进入 Kaggle 比赛的前 1% 级别,您会给他们的五个提示是什么?
Philip
:我想我的第一个建议是设定一个不同的目标。如果高Kaggle排名是您的主要目标,您可能会想寻找捷径,例如混合大量公共内核。这可能对特定的比赛有帮助,但从长远来看无济于事。
所以我建议设定学习尽可能多的实用ML技术的目标。将每次Kaggle比赛用作学习机会,即使它不会在该比赛中获得高排名。如果我必须指定5个提示,我想它们是:
在查看论坛讨论和代码分享之前,可以尝试自己解决问题; 尽早开始,比赛中后期很难赶上比赛; 尝试与拥有更多知识/经验的人合作; 关注论坛,包含重要的信息; 如果排名下降,请耐心等待,不要沮丧。你学到的一切都会在未来的比赛中有所帮助;
迄今为止最具挑战性的两场比赛是哪一场,你是如何提出解决方案的?
Philip
:因为每场比赛都有独特的挑战。例如,在最近的内核竞赛中,最大的挑战通常是在内存和 CPU/GPU 限制内拟合模型。我投入最多时间和精力的比赛是 100 万美元的 Zillow 挑战赛。这里的主要挑战是一个非常庞大而丰富的数据集和非常积极的竞争对手。
我的最终解决方案获得了第二名,是多个LGB模型的融合结果。我的大部分努力都致力于特色工程和避免过度拟合。
我们想知道您在构建机器学习模型时遵循了哪些步骤?
Philip
:我真的没有系统的方法论,但我通常从一些非常基本的 EDA 和一个简单的模型开始来设置基线。对于许多比赛,一开始我花了很多时间来确保我有一个与训练/测试集拆分兼容的验证设置。一旦我对验证设置有信心,我将开始尝试逐步改进模型。
当我模型停止改进,或者如果我的验证分数与排行榜分数不同步,我将对数据进行更深入的分析以找出发生了什么。我通常避免查看任何公共内核,直到卡住为止。
你在讨论中也很活跃。您会向初学者推荐哪些讨论主题?
Philip
:如果我以良好的排名完成比赛,我通常会发布我的解决方案摘要,偶尔我会发布一些关于比赛早期阶段的一般说明。
我强烈建议大家一定要所有解决方案。这些非常有价值,因为它们通常包含非常有创意的技术,可以在未来的项目中使用。
对于想要过渡到机器学习的人,您有什么建议?
Philip
:我通常会避免这种类型的建议,因为人们是如此不同,对我有用的不一定对其他人有用。我的人生哲学一直是追随自己的兴趣,乐于学习新事物。
这在ML中是必不可少的,它发展如此之快。最能激励我学习新技能的是具体问题,无论是 Kaggle 挑战还是自由职业项目。我知道有些人可以为了学习而激励自己学习。
推荐阅读