前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何免费系统化入门数据科学?

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

作者头像
王树义
发布2023-01-18 10:40:26
4060
发布2023-01-18 10:40:26
举报
文章被收录于专栏:玉树芝兰

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

痛点

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

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

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

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

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

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

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

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

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

发现

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

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

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

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

  • 全免费
  • 利用 Notebook 互动实例来讲解

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

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

这是普通的变量分布图:

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

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

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

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

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

变化

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

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

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

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

  • 编程基础
  • 机器学习
  • 特征工程
  • SQL 数据库
  • 机器视觉
  • ......

样例

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

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

  • 创建、读写
  • 索引、选择和赋值
  • 总结与映射
  • 分组和排序
  • 数据类型与缺失值
  • 重命名和合并数据框

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

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

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

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

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

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

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

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

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

其他

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

  • 数据可视化
  • 时间序列
  • AI 伦理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

初心

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

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

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

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

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

小结

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

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

延伸阅读

参考资料

[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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉树芝兰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 痛点
  • 发现
  • 变化
  • 样例
  • 其他
  • 初心
  • 小结
  • 延伸阅读
    • 参考资料
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档