如何免费系统化入门数据科学?

d88c9b367cde44ecfe1c7878b24bfa55.jpeg

题图:Photo by Myriam Jessier[1] on Unsplash[2]

痛点

总有小伙伴留言或私信问我:

王老师,我没有基础,想要入门数据科学的话,上某某辅导班(收费 XXXX 元),靠谱不?

这问题,还真是不好回答。因为那样的辅导班,我没上过,着实不知道质量如何,不敢妄下判断。

想跨专业系统学习数据科学知识,除了辅导班会让你挑花眼以外,书籍、资料和网上的学习资源也不好挑选。因为数据科学知识技能的特色是发展迅速。一年多以前别人使用某个方法、模型做出的结果,还能发在高水平期刊上。今天你使用同样的方法,却可能会被无情拒稿。这不完全是你的错,只是在这么短的时间里更好的模型已经出现了。你学到的内容嘛,很不幸,落伍了。

那你的下一个问题应该是:

有没有足够省钱,还能随时更新保持追上前沿的学习资料?

这听着很贪心。真有人告诉这样的好事儿,你也会怀疑他是不是个骗子。但实话实说,这样的免费学习资料还真的有,而且一直被很多初学者忽视掉了。因为它并不存在于某个知名的 MOOC 平台上,而是寄身于一个数据科学竞赛网站的角落里。

人们的刻板印象会认为,只有知识技能掌握足够好才会去参加竞赛,因此并不期待竞赛网站会负责详细介绍基础入门知识。这可能让很多人与它失之交臂。

这个竞赛网站,叫做 Kaggle 。这套课程,叫做 Kaggle Courses 。

发现

我最初发现 Kaggle 的这一套自制课程,是在 2018 年 4 月份。之所以还能知道具体的时间,是因为我当时做了笔记。

39f9802c76264e2efa0d1481c6064a0b.png

你看,随手及时记录笔记,很重要吧?

当时 Kaggle 自制课程的名称,还叫做 "Kaggle Learn" 。初始课程的门数很少,只有 6 门。

7de33b556b38e87c28703430867aa760.png

但是早在 2018 年,我就觉得 Kaggle 这个课程很有特色,所以才专门记录了笔记。什么特色呢?至少包括以下两点:

  • 全免费

  • 利用 Notebook 互动实例来讲解

以其中数据可视化教学内容为例。这一部分介绍的 Python 可视化工具,是 Seaborn 。

今天 Seaborn 的学习资料早已到处都是,并不稀奇。但是在 2018 年初,更多的常见数据科学教程依然沿用 matplotlib 这样的 Python 基础绘图软件包。使用起来,较为繁琐。而借助 Seaborn ,你可以用非常简单的语句,生成很复杂的印刷级别图形。我在 2018 年的这则笔记里,还专门保留了几张截图,作为例子。

这是普通的变量分布图:

66ed61a83afda8d3c9dd7e3f9b21a266.png

这个图可以同时描述两个变量分布和二者的关联:

dcdd83968b5c7ba82de07ccfbd1c3616.png

上面这些图,都可以用 Seaborn 非常容易做出来。

况且,彼时 Kaggle Learn 可视化部分的课程,已不仅仅局限于 Seaborn ,也包括 plotly ,用于做交互图形。这是当时课程里面的截图:

6f949fcad498dcb65e6d15c5e729db1e.png

你不难看到,Plotly 可以很方便做出这种三维图像。你还可以通过拖动从不同角度进行观察。

当时由于课程数量不多,并没有引起我的重视。但我当初学习这些资料的进程,直到现在还原原本本保留在了 Kaggle 系统中。

63aa7ecba04325c6be60138a1ac1e617.png

变化

常言道,「士别三日,当刮目相看」。Kaggle 的课程板块也是如此。

前些日子,我想给学生找一个免费运行的 GPU 云环境,用来讲授机器学习,于是又打开了 Kaggle 网站。我突然发现,原先的 Kaggle Learn 已经大幅度扩容,成长为 Kaggle 里面的一个单独的 Courses (课程)板块。你可以 点击这个链接[3] 直达。

02c55602c08e13cbddd1b059213a8ab0.png

可以看到,现在课程包含的主题种类非常丰富。

dc1ff29281e57e958d9e6bfff5b725fd.png

这是个不完全的课程列表,里面就已经包括了:

  • 编程基础

  • 机器学习

  • 特征工程

  • SQL 数据库

  • 机器视觉

  • ......

样例

这里我以 Python 数据框 Pandas 教程为例,给你介绍一下 Kaggle Courses 的特色。

d3efe5d7235c4a725adacf5366622356.png

这里 Pandas 的介绍分成 6 个部分:

  • 创建、读写

  • 索引、选择和赋值

  • 总结与映射

  • 分组和排序

  • 数据类型与缺失值

  • 重命名和合并数据框

可以看出,内容是很精细、系统和全面的。这样循序渐进的好处,是避免一次性让初学者接触过多的概念和知识,导致学习的时候「按下葫芦起了瓢」,手忙脚乱。先解决基础问题,再逐步试探进入更复杂的部分,这和《新概念英语》的理念「逐步迭代 + 高水平重复」是一致的。

每一个模块,都分为讲解和练习两个部分。

07273071ed9fcb20e342fe3a57b684e8.png

讲解里面,都包含了文字、图片、代码,以及对应的运行结果。

而练习里,因为使用了 learntools[4] 这个软件包,所以 Kaggle 平台可以自动给你提示、参考答案,甚至判定你自己输入的语句答案是否正确。

143b697552006c197dab542721facbb6.png

代码运行正确,提示是这样的:

d392361a729d17a6850926a63dc1ae51.png

而如果运行出现错误, Kaggle 会给出具体的错误原因:

559a9761c231e0f6f711bb57223f094c.png

请注意,对初学者来说,这是非常宝贵的反馈。因为有了反馈,有了提示,你修改起来就有了正确方向,事半功倍。极大程度避免了初学者面对错误瞎猜乱改导致的精力耗尽,甚至「从入门到放弃」

即便你的答案运行出来正确的结果,你也可以看看自己的解答和参考答案之间的差别。正确答案,不止一种,执行效率上也有高下之分。这种对比也是重要的学习提升途径

64d41cf218badac3e1195f4db132df55.png

我在《MOOC教学,什么最重要?》一文中,给你提到过,MOOC 教学里面,最宝贵的就是反馈。课程讲义、录像可以大规模低成本复制传播,但是反馈却需要个性化,这也是课程规模和质量之间经常发生矛盾和冲突的地方。而对于写代码这种事情来说,如果能够充分利用目前的自动化技术,是可以给初学者足够丰富反馈的。这也是数据科学和编程类内容学习的一种独特优势。

其他

下面我们来看看 Kaggle Courses 其他的特色板块。篇幅所限,我这里精选了几样,包括:

  • 数据可视化

  • 时间序列

  • AI 伦理

先说数据可视化。你会发现,Seaborn 确实历久弥新。现在依然是 Kaggle 讲解可视化的软件包首选。

c47066c20c30d21e27a3ce1467fde0ed.png

只是从内容上,比起当初更为细致多样。我也准备抽时间系统学习一下。回头给你分享一下相关的经验。

除了 Seaborn 和 plotly 之外,数据可视化部分还添加了「地理信息可视化」。你可以用几行代码,就把各种数据叠加在地图层上,让读者一目了然。

799aa749ab1e9acc8238d1a84503864d.png

你还可以把地图做成交互形式,读者可以根据自己的喜好,进行交互式缩放,就像这样。

99c1b094262b5e610c878ea47a73c6b4.png


除了可视化之外,我觉得时间序列分析也值得说一说。

毕竟,除了面板数据(例如购物记录、评论信息)之外,我们还时常要与时间序列打交道。例如我之前给你介绍过的《如何用 Python 做舆情时间序列可视化?》,就可以做出类似这样的情感指标时间序列可视化。

294f73c61b9507dc1387b41478c01d3b.png

从前处理时间序列数据,还是比较麻烦的。而现在,因为有了更成熟的软件包,你可以用更少的代码,就把时间序列的清洗和可视化搞定。

d6cf5079ca91df9dcd7b88c4d45e0fcf.png

使用时间序列,我们往往都是有趋势预测的需求的。预测可以使用一些传统的算法,或者也可以利用机器学习。就像我在《如何用 Python 和循环神经网络预测严重交通拥堵?》一文给你举过的例子。

下图是 Kaggle Courses 里面 预测流感数据的例子[5]

8848bf52a567647a0bb7e35d60b47904.png

你觉得这样数据的建模、预测和可视化需要多少行代码?200?500?

其实,核心代码只有这些:

99adf2d3531b1e20aebee24f15decb8c.png

全部的代码,都有配套的讲解。一步步通过中间结果,教给你怎么做,让你有充分的铺垫知识来逐步学习掌握。

通过样例学习之后,相信你已经信心满满。此时可以根据引导,在 练习区实际上手了[6]

7190921774f32ea6d6da3da2f0edc4bb.png

这套 Kaggle 课程最让我欣喜的地方,是专门的** AI 伦理**部分。

8cc16fc3aa08a330e114d2855a963323.png

这几年出现的很多 AI 领域新闻,都让人们逐步认识到 AI 伦理问题的重要性和严重性。简而言之,如果人们放任 AI 研究「自由飞翔」,那么在短时间内,我们就会品尝到恶果。例如,我们会因为长相、基因、社会经济地位等因素,受到机器模型的歧视甚至鄙视。那些科幻作品中,人类饱受机器欺凌乃至奴役的场面,会变成活生生的现实。

机器本身没有善恶可言,因为它只是由人塑造的。但是对于数据科学的应用者来说, AI 伦理特别重要。如果不在学习阶段加以培养,就如同驾校培训了驾车技术,却没有讲授交通规则。他开车上路,手里握着的就不是方向盘,而是致命武器的扳机。

初心

我给你如此详细介绍这套课程,是因为它完全免费,而且还可以提供学习证书。这种分享的精神,也需要你我的分享,来薪火相传。

205e9fcdd05b4b09fa85053a9d791f9d.png

我一直在琢磨,研发这些课程,撰写配套练习,并且对答案进行完善调试,还得不断因应环境变化调整课程内容,难道不需要成本吗?Kaggle 这么做,岂非赔本儿赚吆喝?图什么?

况且,这还不是 Kaggle 做的唯一「傻事儿」。别忘了,我这次打开 Kaggle ,其实就是想帮助自己的学生,用它上面的免费 GPU 时长,以及上面大量的开放数据资源。这些其实都是要由 Kaggle 负担成本的。

后来,我大概想明白了。Kaggle 这些看似「冒傻气」的行为,实际上是在完成一个闭环。作为一个数据科学比赛的网站,Kaggle 需要数据,需要算力,需要题目,但是更需要「人」,也就是足够多的参与者。不是每一个来到这个网站的用户,都具备数据科学基础知识。但是他们中的很多人,却有非常可观的潜力值得发掘。

做一套课程出来,确实需要耗费不少成本。但是如果这套课程可以让初学者快速上手,掌握入门内容,那么他们做出来的比赛结果,就更值得期待。参与者整体水平的快速提升,对于这样一个网站,一个社区,是有显著的好处 —— 生态系统级别的。

小结

想明白这一层之后,我觉得可以更为大胆地将这套 Kaggle 数据科学课程推荐给你。因为它是经过许许多多初学者实践、反馈和迭代的成果,因而质量上更有保障。

希望这个推荐,能够让你在入门数据科学的道路上,少走几分弯路,多一些成就感。

你觉得这套课程怎么样?有没有更好的数据科学入门资源可以分享给大伙儿?欢迎留言,咱们一起交流讨论。

感觉有用的话,点赞 +「在看」,把它转发给你身边有需要的朋友。

订阅我的微信公众号,加星标,避免错过新推送提示。


欢迎关注我的视频号,时常更新。

91d9f32f8e4019550189f51ed6fe57cd.jpeg

欢迎来知识星球,查看已经积累下的数十篇精华帖子。更欢迎你提出自己的好问题。

df8f104c4534999a29dbeaad192da424.jpeg

由于微信公众平台的限制,文中部分链接可能无法正常显示与跳转。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。 

延伸阅读

参考资料

[1]

Myriam Jessier: https://unsplash.com/@mjessier?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

[2]

Unsplash: https://unsplash.com/s/photos/data-science?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText

[3]

点击这个链接: https://www.kaggle.com/learn

[4]

learntools: https://github.com/Kaggle/learntools

[5]

预测流感数据的例子: https://www.kaggle.com/code/ryanholbrook/forecasting-with-machine-learning

[6]

练习区实际上手了: https://www.kaggle.com/kernels/fork/20667477

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值