如何学习数据科学,开始你的神奇之旅
数据科学学习指南
JESHOOTS.COM在 Unsplash 上拍照
随着科技行业的快速变化和机器人创新的到来,数据科学是开始学习的最佳领域之一。如果你对数据和如何使用数据充满热情,这篇文章将帮助你了解如何学习数据科学专业,以将你的兴趣转化为高薪职业。
数据科学新手的学位或证书
你可能会认为是时候获得一个技术学位或证书作为你的第一步了。实际上,你不需要这个。为什么?你的知识和你能做什么将是你面试的主要因素,而不是教育。
是的,拥有一个技术学位或证书当然是好的,但这不会仅仅因为你有文凭就帮你找到工作。所以把证书/学位当做一个可选项。拥有它是好事,但绝对不是你开始数据科学家之路的第一件事。
另一方面,如果你决定把你的时间奉献给一条深度学习的道路,而选择的大学或课程帮助你获得了你实际上会用到的知识,那就完全是另一回事了。
所以我的总体建议是开始一条理论或实践的学习之路。如果你有大量的时间和金钱,去学习课程,甚至获得学位。记住,公司不会非常详细地询问你的学历文件。你的回答会很笼统:“是的,我有学位/证书”或者“不,我没有学位/证书”。
还有,2020 年是远程做任何事情的一年。我相信你可以在网上获得一切,而不是去现场学习。在我们这个时代更安全,更有效。
你需要学习的技能
你学习道路的基础是 Python、SQL、机器学习和统计学。这些知识是高级的,所以让我们分别复习一下。
计算机编程语言
这将是你学习的第一门编程语言。这是非常令人兴奋的!为什么?因为 Python 是通用编程语言。它支持很多框架和库。学习起来既简单又快。此外,用 Python 而不是 Java 编写将节省大量时间。
如果您想了解更多为什么我给予 Python 如此高的优先级,我有一篇关于 Medium 的单独文章,提供了所有细节:
[## 作为数据科学家,你需要学习 Python 的 7 大理由
Python 给数据科学家带来的好处
towardsdatascience.com](/top-10-reasons-why-you-need-to-learn-python-as-a-data-scientist-e3d26539ec00)
你需要同时学习和练习。试着用包含在文件夹中的项目来构建你的学习路径。这意味着一旦你掌握了足够的理论知识,就要尽可能多地包含实践步骤。这样,你很快就可以用纯 Python 写东西了。这包括基本语法、功能、控制流、循环、模块和类。
结构化查询语言
要使用数据库,您需要学习 SQL。这项技能允许您提取数据并与之交互。有不同的 SQL 类型,但是作为一个新手,你需要学习基本的分析 SQL。
可以用 W3School 借鉴一下。它有一个你需要的基本理论。同样,最好尽可能频繁地学习理论和实践。记住,任何科技行业都需要大量的实践经验。如果你停止练习,你会很快失去知识。
与 SQL 相关的问题是数据科学家在面试中的热门话题。这就是为什么它是学习 SQL 和自信快速回答面试问题的另一个原因。
统计数字
你当然应该学统计学。概率的主要关注点是分布、统计意义、假设检验和回归。
你可以把你的统计学习分成几个步骤:
- 核心统计概念
- 试验设计
- 回归建模
- 数据转换
2.贝氏思维
3.机器学习
检查 UCI 机器学习知识库。您可以将他们的数据用于您的个人项目。也可以部署一个模型。构建您的项目并将其存储在 Github 上。这是学习和建立个人投资组合的最佳方式。
机器学习
我假设数据科学家最流行的方法来自机器学习。它不同于其他计算机决策,因为它包括预测。计算机能够使用算法用自己的数据预测结果。
如果将来要构建和部署产品,ML 肯定是一开始就要学的东西。在所有的数据科学家职能中,有一个软件工程师,需要 ML 知识。
如您所见,数据科学家不仅是构建模型的人,也是运行和支持模型的人。意思是她/他类似于软件工程师。
一些有用的链接
这里有一个列表可以帮助你:
可汗学院 —学习技术资料
Codeacedmy Python 课程 —这是一门学习 Python 的好课程
统计学习简介 —从这里学习统计。
数据灵丹妙药:数据科学新闻和资源
重要说明
当你学习数据科学时,为开源项目做贡献。您可以找到许多需要社区帮助的 Python 库。这是一个很好的方法:
- 练习你的技能;
- 从其他人那里获得即时反馈和帮助;
- 参与真实的项目;
- 开源项目可以组织一次黑客马拉松,你可以参加;
- 你向别人学习;
- 你的作品集有一个真实的项目。
结论
数据科学家是一个非常创新和高薪的专业。如果你想学得快,我分享了一些有用的步骤,会让你在学习之旅中获得成功。我希望我已经激励你成为一名数据科学家,你将使用我的提示开始你的学习之旅,成为一名数据科学家。
如何在短短 1 年内把数据科学从初学者学到大师(我的亲身经历)
从初学者到大师,我学习数据科学的清单的完整汇编只需要一年的时间旅行故事。享受学习!
索尼娅·兰福德在 Unsplash 上拍摄的照片
终于,这篇文章是我们一直在等待的。在这篇完整的文章中,我们将讨论一个完整的大一新生如何在广阔的机器学习和数据科学领域开始他们的旅程,从学习核心概念和编写基本代码一直到破解面试,并随着时间的推移获得经验。互联网和书本上有如此多的内容,但是读什么和不读什么呢?完全糊涂了!让我们倒退一下,回到过去,从头开始一切。
如果你是一个初学者,并且想带着极大的热情学习数据科学,那么相信我,这篇文章肯定会帮助你制定学习机器学习和数据科学的计划。
在此之前,只是一个小提示,本文将很短(😅不那么短),简单而精确,讨论了如果我再次回到过去,并准备成为一名数据科学家,用一个很酷的时间旅行讲故事,我会遵循的确切方法!
如我所说,让我们回到一年后,开始我们的旅程。
来源:瑞克和莫蒂的时间旅行
感谢里克和莫蒂在 2019 年把我们送回来!现在我们已经有了完整的一年,让我们来规划我们完整的路线图。所以基本上,首先让我们创建一个清单,列出我们在直接探索和学习之前可能想到的事情。我的简单描述清单如下:
- 学习一门编程语言(R 或者 Python)。
- 熟悉应用数学(LA,Stats,Prob)。
- 开始读 ML/AI 上的博客,听播客。
- 阅读一些令人惊奇的书来建立基础。
- 学习机器学习和深度学习。
- 尝试这些技能,做一些实践。
- 利用竞争数据科学构建一些端到端项目。
- 申请和破解面试。
现在,在我们知道最好和最有用的资源并让自己始终保持学习的动力之前,这个清单是没有用的。
这两件事如果能完美地付诸实施,我真的可以在一年内成为一名优秀的 ds!
学习编程语言
要成为一名数据科学家,你不需要成为一名专业的编码员,或者是 CodeChef 或 TopCoder 上的五星,你只需要知道如何用你喜欢的语言编写一个优化的代码。来自不同背景的人,尤其是没有编码经验的人,通过学习聪明地编码,在短短一年内被证明是优秀的数据科学家。
谷歌趋势 R(红色)vs Python(蓝色)
选择一种语言: Python 和 R programming 自 2014 年以来一直是机器学习和数据科学领域最受支持的语言之一,因为它们易于使用,并且广泛支持一个详尽的库列表,只需几行代码就可以做任何事情。上面的谷歌趋势图显示了这些语言在谷歌搜索引擎上的受欢迎程度。你可以尝试两种语言,看看哪一种更适合你,哪一种对你以后的工作更有帮助。
有些人甚至会两者都学,但就目前而言,我会根据自己的需求选择 Python。根据我的经验学习 Python 的几个资源有 YouTube:send ex或者 科里斯查费 。除此之外,我更愿意在【data camp】上一个月的包,尝试一下我的 python 实践课或者免费的,【LearnPyhon.org】的也会有同样的帮助。
熟悉应用数学
任何人都可以只用 3-4 行代码就让机器学习模型工作,但你有没有想过幕后发生了什么?机器学习算法的核心承载着背后运行的数学,并让它为我们工作。对库的支持减轻了我们的工作,但我们需要清楚它是如何工作的,以及我们如何构建自己的模型。
要做到这一点,我们需要非常清楚线性代数等核心数学,向我解释每一个算法的几何直觉,以及我如何在理解代数和向量系统的情况下制作自己的模型。主题包括矩阵代数和向量系统,可用于主成分分析(PCA)、支持向量机(SVMs)和许多其他数学模型。
其次,统计学和概率对于理解数据中的模式和从中发现洞见非常重要。机器学习所需的统计和概率理论是对各种分布的理解,如高斯分布、二项式分布、基于条件概率的概率规则贝叶斯定理、佩里托定律等。
微积分在理解数学模型中也起着非常重要的作用,一些必要的主题包括微分和积分,拉普拉斯,雅可比,偏导数,方向梯度,拉格朗日分布等。
最后,算法和优化问题是我们的机器学习算法的计算效率和可扩展性所需的另一个非常重要的数学分支。使用最佳算法理解,可以很好地理解如何编写最佳模型构建或数据规范化。
一些好的资源可能是 ISLR 的或者是用于机器学习专业化的 数学 或者是可汗学院的 线性代数概率&统计多变量微积分和 优化
阅读博客、文章和听播客
每天都有大量经验丰富的人发布惊人的博客。我可以选择每天读几本。现在,我需要计划我一天可以消化多少博客/文章而不中断流程,并了解数据科学领域正在发生的事情,或者熟悉一些科技人工智能新闻,或者可以是任何事情。一些真正优秀的定期发布一些惊人内容的出版商有朝向数据科学 、 数据驱动投资人 、Analytics Vidya,或者 KD 掘金 等。
听几个很棒的播客可以极大地提高我理解惊人项目背后的科学的技能,或者研究人员对机器学习和人工智能领域的干扰有多深。播客基本上帮助我们建立可实现的数据素养,与每个人交流我们的数据故事。一个可以经常收听的播客列表是这里的,其中我个人更喜欢雨果-鲍尼的 DataFramed 或基里尔·叶列缅科的**SuperDataScience Podcast 或有时是data hack Radio****on sound cloud on day bases。**********
阅读机器学习书籍
“对于那些寻求超越平凡的人来说,阅读是必不可少的。”—吉米·罗恩
读书是我今年应该做的最重要的事情之一,以提高我的学习。我应该说,如果你是一个爱书的人,那么书是提高你学习的最好来源之一。我可以选择阅读免费的电子书或购买纸质书,任何东西都可以。有很多书可以购买并开始阅读,但我建议阅读的一些好书是:
- 用于数据分析的 Python,
- 统计学习简介,
- 使用 Scikit-Learn、Keras 和 TensorFlow 进行机器实践学习,
- 模式识别和机器学习由 Christopher M .和 Bishop,
- 深度学习Ian good fellow,
- 其他一些奥莱利的书也很棒,等等。
学习机器学习和深度学习
在线 MOOC 课程可能是一个非常好的资源,可以在更短的时间内学习 ML 和 DL,并保持旅程的互动性。我更愿意参加以下学习 ML 和 DL 的课程。
- 机器学习由斯坦福大学、
- 应用数据科学与 Python 专业化密歇根大学,
- 深度学习专业化由 deeplearning.ai、
- 应用人工智能课程Srikanth Varma,
- Udemy 的基里尔·叶列缅科教授的数据科学和 ML 课程,
- 对于 CNN 和计算机视觉 CS231n 由斯坦福大学、
- 还有斯坦福大学的 for NLP CS224n 都是很美的课程等等。
除了这些,全球的一些标准大学也为 ML 和数据科学提供令人惊叹的在线或离线课程。如果你想了解更多,你可以在他们的官方网站上查看,或者阅读相关文章了解更多。
技能健身房和动手实践
告诉我,我会忘记。教我,我会记住。让我参与进来,我会学到东西。—本杰明·富兰克林
更重要的是,如果一个人只是不停地学习而不参与事物,那么他就不能把知识长久地保存在持久的记忆中。动手实践是学习的一个非常重要的过程。毫无疑问,我更愿意要么在我的本地机器上为我学到的每个概念编写代码,并将其推送到 T2 的某个云上,要么使用一些好的在线平台在他们的云上做同样的事情,比如 T6、T7、DataCamp、T11、T13、Dataquest、T14、T15。这将帮助我不仅使我的概念变得强大,而且随着时间的推移提高我的编码技能,我可以随时通过查看代码来修改。
构建端到端项目并参与竞争
在项目中应用我过去所学的知识对于了解 ML 项目在真实行业中是如何构建的非常重要。你会得到一份你可以做的项目的详尽清单,DataFlair、Simplilearn 或互联网上的任何随机文章都可以帮助你开始做基础项目。其次,为 GitHub 或任何 VCS 上的公共项目制作一个记录良好的代码库肯定会帮助我建立一个好的投资组合。
参加比赛最终还会帮助我变得擅长编码,并将我的技能应用于现实世界的问题,并了解我在全球排行榜上的位置,这可以帮助我纠正错误,建立更好的自我。我会参加任何关于分析 Vidya驱动数据 或 黑客地球等的比赛。他们主持惊人的全球研究和行业水平的竞赛。但是要确保你不会过度劳累😂!****
你可以阅读下面这篇文章来了解更多关于我在 Kaggle 上来自未来的旅程(😅别忘了我们现在是在过去)。
****** [## 我是如何在短短 1 个月内成为 Kaggle 3X 专家,并在 3 个月内成为大师的!
让我们来谈谈我在加入平台仅一个月内成为 Kaggle 专家的故事,以及我是如何设法…
towardsdatascience.com](/how-i-became-kaggle-3x-expert-in-just-1-month-b63b37b53865)******
破解采访
现在,我应该完全准备好了一切,并开始申请数据科学职位,应该努力提高我的沟通技能、数据叙事和其他软技能。我应该能够充分理解我过去所做的工作和我做过的项目,并且能够用比别人更好的方式来解释它们。
你的知识不会让你找到一份好工作,除非你有一个很好的投资组合,这说明了很多关于你的事情,如果你有兴趣了解更多关于为自己建立一个好的投资组合的信息,请阅读这篇文章!
****** [## 如何建立一个能让你找到工作的数据科学投资组合?
学会制作一个关于你的强有力的作品集!
towardsdatascience.com](/how-to-build-a-data-science-portfolio-that-can-get-you-a-job-9f8d113739b3)
如果我现在遵循所有的事情,在一年之内,我将能够突破 ML 和数据科学技术,并将能够获得一份好工作,我的朋友也一样,他通过这篇文章与我一起走过了完整的旅程😉!
让我们在一次很酷的时间旅行后及时回到 2020 年,并充分利用我们由于柯维德疫情不确定性而拥有的时间来学习并擅长机器学习和数据科学。******
给你额外的小费!
恭喜🎉如果到目前为止你还在读这篇文章,那么你真的是一个对成为数据科学家有毅力和决心的人,并且很快就会成为一名数据科学家!
如果你是一个初学者,并正在寻找一些东西开始,我希望你会有一个清晰的图片来选择和规划自己的自定义清单。
想了解更多关于统计学、机器学习和数据科学的知识吗?
你可以在这里阅读我的其他类似博客:
释放你内心的超能力!
medium.com](https://medium.com/datadriveninvestor/how-to-become-super-powerful-and-successful-cdf65722a765) [## 如何评价 Python 中机器学习模型性能?
一个实用的方法来计算模型的性能和在 Python 中的实现,涵盖了所有数学…
towardsdatascience.com](/how-to-evaluate-machine-learning-model-performance-in-python-135b4ae27f7e) [## “正态分布”的功效
理解钟形曲线背后的科学!
towardsdatascience.com](/the-powers-of-normal-distribution-4cbb06e4a955)
谢谢你,祝你新的旅程好运!
其他资源和参考
- https://medium . com/forward-artificial-intelligence/top-university-to-purchase-a-masters-in-the-us-ai-d4a 461229 fbb
- https://towards data science . com/python-vs-r-for-data-science-6a 83e 4541000
- https://towards data science . com/the-mathematics-of-machine-learning-894 f 046 c 568
- https://towards data science . com/top-competitive-data-science-platforms-than-ka ggle-2995 e9 dad 93 c
- https://towards data science . com/8-ml-ai-projects-to-make-your-portfolio-stand-out-BF C5 be 94 e 063******
2020 年如何学习数据科学
我自学了数据科学,你也可以。
照片由 Aaron Burden 在 Unsplash
自从我在上发布了一篇获得数据科学工作的帖子后,许多读者在 LinkedIn 上向我寻求建议。
大多数人问我同样的问题——“像我这样的完全初学者如何学习数据科学?”
学习数据科学可能看起来极其令人生畏,当你开始时感到不知所措是正常的。
外面有很多 MOOC,承诺教你关于这个主题所需要知道的一切。
你每天看不同的博文信誓旦旦的说这是适合你的正确道路,告诉你如何在不到一个月的时间里成为一名数据科学家。
不知何故,这些事情对你都没用。
为什么不呢?
因为每个人都不一样。没有一条路可以让我们都到达同一个目的地。
创建自己的数据科学学习路径,而不是遵循其他人声称对他们有效的方法。
在本文中,我将介绍成为数据科学家所需了解的一切。我还会给你提供一份你可以学习的资源清单。
利用这些资源,你可以开拓出一条最适合你的学习之路!
你需要知道的是
编程;编排
詹姆斯·哈里森在 Unsplash 上拍摄的照片
学习数据科学需要一些编程技能。从两种语言中选择一种——R 或 Python,然后开始。
对于一个完全的初学者来说,学习如何编码似乎是一项艰巨的任务,但实际上并没有那么难。
当我学习我的第一门编程语言时,我向我的朋友(他有大约十年的编程经验)寻求编码建议。
他告诉我,所有经验丰富的程序员都有一项伟大的技能:
长时间盯着电脑的能力。
这是你开始学习编码时需要养成的习惯。从编写小段代码开始,自己修复错误。
然后开始创建自己的小项目。在这个过程中,你会学到比仅仅学习在线课程更多的东西。
在线课程对刚起步的人来说很棒,可以让你走上正确的道路,但不会让你成为程序员。
如果你是一个完全的初学者——没有编程经验或统计背景,我建议从 Python 开始。
这是因为 Python 是一种高度通用的语言,它的语法比其他语言更容易掌握。
一旦你有了坚实的 Python 基础,学习你的第二和第三编程语言将会容易得多。
资源
第一步:在线课程— 2020 年完整 Python 训练营:从零到 Python 中的英雄 n
如果你是一个完全没有任何编程经验的初学者,我建议你参加这个课程。
这是一门介绍性课程,将带您了解 Python 编程的基础。本课程在 Jupyter 笔记本上讲授,这很好,因为这是一个您将在数据科学中使用的编码环境。
我没有上过这门课,因为在学习数据科学之前,我已经有了一些编程经验。
然而,我确实上了同一个老师(何塞·波尔蒂利亚)教的另一门课,而且非常喜欢这门课。他的教学风格令人难以置信,他有一种用简单易懂的方式分解复杂概念的诀窍。
第二步:黑客排名
在熟悉了语言的基础之后,你需要练习。
HackerRank 是一个非常棒的网站,而且完全免费!
在各种不同的语言中,存在着从简单到困难的编码挑战。
前几个挑战非常简单,是对你已经学过的所有概念的回顾——循环、数组、条件语句等等。
之后,挑战会变得稍微困难一些,需要一些逻辑来解决。然而,它们并没有那么难,并且是提高您的编码技能的好方法。
每当我想学习一门新语言时,我每天都会花大约 4-5 个小时来解决黑客问题。这有助于我更快地熟悉这门语言。几周后,我准备开始做项目了!
第三步:项目
现在,你准备好做项目了!
这篇文章提供了一些难度不同的非常棒的项目想法。
从一些最简单的开始,然后一步一步来。
等你做完这些,恭喜你!你知道如何用 Python 编码。
接下来,我建议学习统计学。
统计数字
由 Carlos Muza 在 Unsplash 上拍摄的照片
就其核心而言,数据科学基本上就是统计学。统计概念用于从数据中获得洞察力并做出决策。因此,要成为一名数据科学家,你需要有扎实的统计学背景。
资源
第一步:课程— 可汗学院
汗学院有一门很棒的统计学和概率课程,作为一个绝对的初学者,你可以选修。
然而,我在观看讲座时注意到的一点是,它们只触及某些重要主题的表面。因此,我用步骤 2 中的资源补充了我的学习。
第二步:玛丽安大学——社会科学应用统计学
这个网站是学习统计学的一个很好的资源。没有视频讲座可以借鉴,但是每个话题都有很棒的例子详细讲解。
你可以做大量的练习题,它会带你了解从假设检验到线性回归的概念。
学习材料并做所有的练习题,你会比从任何在线课程中学到的更好地掌握所有这些主题。
第三步:概率
学完基本的统计概念,就要学概率。概率知识对于数据科学家来说是必不可少的,因为它塑造了你的决策过程。
麻省理工学院开放课件的概率介绍是一个很好的起点!
数据分析
塞萨尔·阿布纳·马丁内斯·阿吉拉尔在 Unsplash 上的照片
有了统计学和编程的知识,你现在就可以学习数据分析了!
在这里,您将学会使用之前所学的知识从数据中获得洞察力,并提取有用的信息。
资源
第一步:课程— 数据分析基础
这是一门很棒的在线课程,教你如何应用统计学和编程从数据中获得洞察力。
事实上,如果你想学会快速分析大量数据,跳过前面两步,这个课程是适合你的。
它是用 R 语言讲授的,学习这门课程不需要任何编程背景。
第二步:项目
再说一遍,我的建议是做项目。
找一个你感兴趣的话题,找一个数据集,开始你的分析吧!
我已经写了一整篇关于创建数据分析项目的文章,你可以从中寻找灵感。
机器学习
安迪·凯利在 Unsplash 上的照片
终于可以开始学习机器学习了。
机器学习是你如何教计算机学习和做决定,而不用显式地给它们编程。
数据科学是一个更广泛的术语,它将带您了解整个数据处理方法。机器学习属于数据科学,本身就是一个很大的领域。
如果你想学习用数据做更多的事情,并提出模型来进行预测,那么你也应该学习机器学习。
资源
有太多的工具可以用来研究机器学习。然而,大多数在线课程只给你初级到中级的知识。它们只是不够深。
鉴于此,我将推荐一些额外的学习资源和书籍,您可以用它们来跟进这些课程。
第一步:基础知识— 吴恩达的机器学习课程
斯坦福大学传奇的机器学习课程对初学者来说非常适合。它教你机器学习算法是如何工作的,而不需要太多的数学知识,这使得它对于没有数学背景的学习者来说是可以理解的。
然而,这门课程的一个缺点是实践是在 Matlab 中教授的。如果你想要一个 Python 的替代品,我建议你选择这个课程。
第二步:数学
首先,学习数据科学的线性代数。如果你是一个完全的初学者,我建议可汗学院的线性代数课。麻省理工学院开放课程也提供更深入的线性代数课程。
接下来学习多元微积分。这个是可汗学院学习路径的链接,这个是麻省理工学院开放式课程的链接。
书籍
几本书将补充你的学习过程:
第四步:高级机器学习专业化 — Coursera
这是用 Python 教授的七门机器学习专业课。先决条件包括机器学习算法的知识、数学背景和 Python。
这门课程将带你经历从深度学习到教你如何赢得顶尖棋手的棋牌比赛的一切。
还有…就是这样!
我希望本指南有助于启动您的数据科学之旅。
记住,你不必按照我列出的顺序来学习这些东西。
我用自下而上的方法学习数据科学。我没有先学习统计学和理论,而是开始看 Kaggle 教程,用 Python 实现机器学习算法。
然后,我对底层算法及其工作原理感到好奇,这是我开始学习其背后的数学和理论的时候。
我上面列出的资源和我在学习过程中使用的大部分是一样的,但是我使用的顺序不同。
你可以用任何你想要的方式开始你的学习过程,只要做最适合你的。
只要坚持不懈,你就会成功。祝你好运!
如何在线学习数据科学:你需要知道的一切
Python、SQL、机器学习、作品集以及其他在线资源
来源: Adobe 股票
这是利用在线资源进入数据科学的完整路线图/课程。
无论你是想免费学习还是更高效地学习**,本指南将带你一步步走上正确的道路。我们将讨论技能*、在线课程、书籍以及其他资源。*
你会发现:
- 数据科学的基础 (Python、SQL、机器学习/统计)以及如何学习它们。
- 为什么以及如何建立数据科学组合。
- 深入数据科学世界的其他技巧/资源。
立即开始您的数据科学之旅!
我们是谁,为什么要遵循这个路线图?
Justin 和 Lianne 都在数据科学领域工作了 5 年多。我们曾在各种行业工作过,如营销、欺诈、反洗钱和大数据技术。Justin 拥有计算机工程学士学位和统计学硕士学位(后来的);而 Lianne 拥有统计学学士和硕士学位。
数据科学是计算机科学和统计学的混合。我们俩都是从一边开始失踪的。因此,我们理解学习其他领域以进入数据科学的挑战。凭借我们的工作经验,我们也了解行业的需求。
我们写下这个路线图(和数据博客中的)是为了帮助更多的人进入这个有趣而有前途的领域。
这些建议都是基于我们多年的经验加上数小时的研究。
希望你能找到有用的东西。
第 0 步:感受数据科学
为什么是数据科学?我应该进入这个领域吗?
花点时间想象一下:
- 你可以基于数据分析探索世界*,发现模式/真相。*
- 你可以通过使用先进技术、机器学习算法来影响世界*。*
- 你有一份你热爱的**高薪工作***。***
如果所有这些听起来像你想要的,那么数据科学就是为你准备的!
查看这些 YouTube 视频,更好地了解数据科学:
请记住,数据科学对许多不同的行业都很有用,例如:
- 机器人学
- 营销
- 金融
- 卫生保健
它可以用于许多不同的应用,例如:
- 分析学
- 预言;预测;预告
- 分类
- 建议
- 自然语言处理
还有各种数据科学职业道路。您可以是报告分析师、数据分析师或数据科学家。它们都需要不同的优势/技能。
毕竟,拥有一套新技能不会有坏处。
一旦你下定决心,让我们开始艰苦的(但有趣的)工作。**
步骤 1:学习数据科学的基础知识
数据科学是不同领域的混合体,包括计算机科学、统计学、信息科学、数学。所以你需要同时具备编程/编码技能和理论知识。
我们需要知道哪些数据科学的基础知识?
最终,我们所有的努力都是为了在数据科学领域开创事业。你可能想知道雇主想要什么:
哪些数据科学语言/工具?
有哪些顶级技能?
对学历的最低要求是什么?
这就是为什么我们根据实际上是的招聘信息总结了上述问题的答案。查看帖子2020 年数据科学家的热门技能有哪些寻找答案。
为了让开始变得简单,我们将重点关注以下技术技能:
- 计算机编程语言
- 结构化查询语言
- 机器学习(包括基础统计)
提示:还有其他工具/技能比如生产系统,软技能。但是你会一路发现它们。他们也依赖于工业。没有必要一开始就把一切都压得喘不过气来。
披露:以下所有推荐课程、书籍都是由我们独立挑选和测试。一些课程和书籍有平台或亚马逊的附属链接,这意味着如果你通过它们购买,你不会多花一分钱,但我们会得到一小笔佣金。这有助于我们保持光明。谢谢!
数据科学在线课程
我们应该从许多不同的课程中挑选哪些课程?
下面我们总结一下最流行的平台的特点。
我们会针对 Python / SQL / 机器学习的每个话题提供更多详细推荐。请继续阅读,找出答案。**
- 迎合没什么经验的人
- 注重基础,易于掌握
- 使用 Python/SQL/R 交互环境
- 数据科学项目组
- 可以免费旁听特定时间的部分课程
- 付费证书
- 主要由麻省理工学院、哈佛大学等学院/大学的教授授课
- 可以免费旁听部分课程
- 付费证书
- 大多由来自各种顶级学院/大学的教授授课
- 拥有最大的课程选择,任何人都可以成为平台上的讲师
- 良好的审查系统
- 由谷歌、AWS、IBM 等顶级科技公司打造并获得认可
- 更深入:纳米学位需要 4-5 个月才能完成(每周 5-10 小时)
- 有现实生活中的项目被审查
- 提供技术指导支持
- 提供个人职业服务
Python
Python 是最需要的数据科学语言,而且可以免费使用。它是一种功能强大的语言,可以帮助您完成大多数数据科学任务,甚至更多!
r 是另一种流行的数据科学语言。然而,如果你仍然在 R 或 Python 之间挣扎,请阅读2020 年数据科学家的热门技能是什么。
根据我们的经验,我们编制了一份对数据科学至关重要的清单:
- 数字类型
- 布尔类型
- 列表
- 设置
- 字典
- 功能
- 日期
- 文件
- 字处理
- 条件句—如果/否则
- 环
- 软件包—安装、导入等
这听起来像很多概念。
****更新:刚入数据现推出 免费 Python 速成班:突入数据学!
该课程对初学者友好,涵盖了开始数据科学所需的基础知识。点击下面的链接注册/了解更多信息!
*** [## 为数据科学学习 Python:免费在线课程-数据入门
从你注册后的第二天开始,我们将每隔一天向你发送 6 封电子邮件/课程。大多数课程将…
www.justintodata.com](https://www.justintodata.com/learn-python-free-online-course-data-science/)
但是不要担心,我们复习了会有帮助的在线课程。以下所有课程包含了我们刚刚提到的大部分概念,你可以很容易地在课程期间/之后填补空白。
查看以下评论:
- 内容质量/覆盖面基于上述基本知识列表和我们的判断。
- 承受能力是以金钱为基础的。$符号越多,课程越贵。
- 推荐的课程包括我们认为最好的课程,涵盖了 Python 的基础。我们逐一审查了每个平台上的不同选项。
注意:介质不允许表格。为了更好的观看体验,请查看原帖如何在线学习数据科学:你需要知道的一切。
内容质量 / 覆盖率:4/5
负担能力:$
推荐课程:
课程以模块形式提供,
所以需要以下所有:
–Python 简介
–中级 Python
–编写高效的 Python 代码
–在 Python 中处理日期和时间
内容质量 / 覆盖率:4/5
负担能力:审核一段时间获得免费获得或获得
证书获得 $
推荐课程: 数据科学 Python 基础
内容质量 / 覆盖率:3.5/5
负担能力:审核为免费 或
领取证书为 $$
推荐课程: Python 为大家特殊化
内容质量 / 覆盖率:4.5/5
承受能力:$$$
推荐课程: 完整 Python Bootcamp:在 Python 3 中从零到英雄
内容质量 / 覆盖率:5/5
负担能力:$$$$
推荐课程: 用 Python 进行数据科学编程
提示 :
以上大部分课程都没有涵盖安装程序,这可能会让人感到困惑。查看我们的帖子,获得逐步指导:如何安装/设置 Python,并立即准备数据科学。学习编码的同时练习是必不可少的。我们不可能一下子掌握 Python 中的每一个包/函数。先把基础学起来,边练边学别人就行了!
在进入机器学习之前,也有必要熟悉两个必须知道的包:
- NumPy : 一个允许高效数值运算的低级包。所有其他 Python 机器学习包都使用它。
你可以在他们的网站上看一下教程,这也是一个很好的参考值得保留。 - 熊猫(Pandas):一个建立在 NumPy 基础上的包,用于数据清理、管理和探索。
这很容易掌握,但可能会令人困惑,因为做事的方式各不相同。从阅读这份材料开始。你也可以尝试搜索一些在线课程来获得更深入的信息。下面我们也会推荐几本书。
SQL
SQL 是经典的,并且仍然是从数据库中提取数据的主要语言。大多数公司的数据库中都有数据,这使得 SQL 成为数据科学的一项基本技能。
根据我们的经验,我们编制了一份对数据科学至关重要的清单:
- 挑选
- 过滤器
- 加入
- 聚集
- 分组依据
- 子查询
- 公式
- 创建表格
- 索引/键
- 窗口功能
- 数据库表图表
查看以下评论:
- 内容 质量/覆盖面基于以上列举的必备知识和我们的判断。
- 承受能力是以金钱为基础的。$符号越多,课程越贵。
- 推荐课程包括我们认为最好的课程,涵盖了 SQL 的基础知识。
我们逐一查看了每个平台上的不同选项*。*
注意:介质不允许表格。为了更好的观看体验,请查看原帖如何在线学习数据科学:你需要知道的一切。
内容质量 / 覆盖率:5/5
负担能力:$
推荐课程:
课程以模块的形式提供,
因此需要以下全部:
–SQL 简介
–SQL 中的联接数据
–中级 SQL
–SQL 中的探索性数据分析
–PostgreSQL 汇总统计和窗口函数–
–SQL 中的关系数据库简介
内容质量 / 覆盖率:4/5
负担能力:审核一段时间获得免费 或
获得 $ 证书
推荐课程: 数据科学 SQL
内容质量 / 覆盖率:4/5
负担能力:审核为或
赚取证书为 $$**
推荐课程: 数据科学 SQL
内容质量 / 覆盖率:4/5
承受能力:$$$
推荐课程: 完整 SQL Bootcamp
内容质量 / 覆盖率:3.5/5
负担能力:免费
推荐课程: 用于数据分析的 SQL
机器学习/统计学
机器学习是人们谈论最多的数据科学。我们把它留在最后,因为它需要编程技巧来应用它的算法。机器学习的课程通常也包括统计学的基本概念。
查看以下评论:
- 内容 质量/覆盖面基于我们的判断。
机器学习有不同的课题。我们需要在学完基础知识之后,在具体领域进行更深入的挖掘。 - ****承受能力是以金钱为基础的。$符号越多,课程越贵。
- 推荐课程**包括我们认为涵盖了机器学习基础的最佳课程。
我们逐一查看了每个平台上的不同选项。**
注意:介质不允许表格。为了更好的观看体验,请查看原帖如何在线学习数据科学:你需要知道的一切。
内容质量 / 覆盖率:4/5
负担能力:$
推荐课程:
课程以模块形式提供,
因此需要以下所有内容:
–使用 Python 中基于树的模型进行机器学习
–使用 Python 中的时间序列分析
–使用 Python 中的线性分类器
–使用 Python 中的聚类分析
–使用 XGBoost
–使用 Keras 进行深度学习简介
内容质量 / 覆盖率:3/5
负担能力:审核一段时间获得或
获得证书获得 $**
推荐课程: 用 Python 分析数据
内容质量 / 覆盖率:4/5
负担能力:审核为或
获得证书为 $$**
推荐课程:
都是理论多应用少:
—应用数据科学配 Python 专精 或
—机器学习配吴恩达(非 Python)
内容质量 / 覆盖率:3.5/5
承受能力:$$$
推荐课程: 用 Python 进行机器学习、数据科学和深度学习
内容质量 / 覆盖率:5/5
承受能力:$$$$
推荐课程:
两个学位都非常全面实用:
数据分析师纳米学位
数据科学家纳米学位
数据科学免费在线教程
也有一些免费的在线书面教程。它们是很好的参考资料,因为它是基于文本的,易于搜索。但是它们通常没有结构,不像课程/书籍那样容易理解。
计算机编程语言
我们为没有编程经验的人推荐在线课程。但是,如果你对 Python 之外的编程很有经验,你可以自学。
查看我们的帖子,了解设置环境的逐步说明:如何安装/设置 Python,并立即准备数据科学。
并且看一看 W3School Python 教程或者 Python Doc。
结构化查询语言
和 Python 一样,还有 W3School SQL 教程 。看一看了解基础。
PostgreSQL 和 MySQL 都是免费的开源数据库。它们在真实的生产环境中也很常见。您可以尝试安装它们,并使用示例数据库进行练习:
学习更高级的窗口函数也很重要。查看以下流行服务器的说明:
机器学习/统计
我们找不到任何涵盖所有必要材料的免费在线教程。所以我们推荐线上课程或者书籍。
如果你预算紧张,试试上面的免费在线课程。
数据科学书籍
阅读是一种传统的学习方式。
我们推荐阅读基础书籍或者只关注概念的书籍。更深入的编程内容有时会过时。
这些书可能涵盖多种技能,所以我们把它们放在一起,而不是分成 Python/SQL/机器学习部分。
从零开始的数据科学是我们找到的开始数据科学的最佳书籍。
阅读这本书需要一些基本的先决条件。它涵盖了广泛的主题,例如:
- 数据科学,机器学习导论
- Python 和 SQL 基础知识
- 线性代数、统计和概率基础
- 数据处理
- 从简单的线性回归到更先进的神经网络的模型
提示:这本书没有深入涉及主题。但这是一个很好的开始。一旦你了解了数据科学的各个方面,你就会找到一条更清晰的道路。
Python 机器学习简介:数据科学家指南如果你想专注于数据科学的机器学习方面,这是一个很好的开始。
这本书包括:
- 机器学习简介
- Python 基础
- 机器学习算法、模型
此外,看看这些初学者友好的书籍:
如果你已经知道了一些基础知识,可以试试下面的书来提高技能:
- 用于数据分析的 Python:与 Pandas、NumPy 和 IPython 的数据角力
- Python 数据科学手册:处理数据的基本工具
- 使用 Scikit-Learn、Keras 和 TensorFlow 进行机器实践学习:构建智能系统的概念、工具和技术
提示:不可能一下子掌握这些课程和书本上的所有概念。很容易感到迷茫和沮丧,但不要放弃和练习。
这就是下一步非常关键的原因。经过几个周期的学习和练习,你会成功的!
摘要
学习数据科学的基础知识仍然有很多选择!有时候选择太多并不理想。
你拥有的选项越多,你就越有可能选择无选项。**
所以,简单来说:
- 想学免费,选择 Coursera 或者 edX ,审核无认证,结合在线免费教程。
别忘了我们的免费 Python 速成班:闯入数据科学! - 如果你想在有预算的情况下高效地学习,请选择数据营或 T21 书籍。
- 如果你想系统而有效地学习,这将节省你大量的时间和精力,选择。
步骤 2:构建数据科学组合
构建数据科学组合非常重要,主要有两个原因:
- 不弄脏自己的手,不去实践,就没有真正的收获。所以在学习了必要的知识之后,把它们应用到现实生活中是很好的。
- 这是向你的潜在雇主展示你既有热情又有能力做的事情的最好方式。
遵循以下一般程序:
找到一个有趣的问题/话题
这个初始过程至关重要,因为人们更关心数据科学能做什么,而不是理论和算法。他们希望数据科学项目变得有趣、有用。我们使用的任何数据科学工具/模型都应该围绕我们试图解决的问题。
请记住,数据科学可以应用于许多不同的领域,因此:
- 如果你有梦想中的行业,关注相关问题可以帮助你找到梦想中的工作。
- 如果没有,试着从日常生活中一些你感兴趣的问题开始。
给出一些想法,
- 我们喜欢看体育比赛,所以我们发现利用数据科学赚点外快很酷。
**** [## 如何提高体育博彩赔率 Python 中的一步一步指南-只是进入数据
体育博彩可能不仅仅是利用你的直觉。查看我用来赚 20,000 美元的数据科学策略…
www.justintodata.com](https://www.justintodata.com/improve-sports-betting-odds-guide-in-python/)
- 我们有兴趣了解更多关于我们最喜欢的健身 YouTube 频道,所以我们深入研究它的数据。
[## 如何用机器学习技术获得更多的 YouTube 浏览量——仅仅是数据
在这篇文章中,我们用 Python 对 YouTube 数据应用了机器学习算法。我们将包括端到端流程…
www.justintodata.com](https://www.justintodata.com/get-more-youtube-views-with-machine-learning/)
- 我们想更多地了解冠状病毒,这种疾病极大地影响了我们的生活。所以我们也研究了它的数据。
这是利用在线资源进入数据科学的完整路线图/课程。你是否想学习…
www.justintodata.com](https://www.justintodata.com/coronavirus-death-rate-with-hyperparameter-tuning/)
你肯定能找到一个数据科学能帮上忙的有趣话题!
查找与主题相关的公开数据集和文章
有了问题的想法后,我们可以开始寻找数据集进行分析。
一些数据可以通过公共数据源轻松访问,例如:
有些可能需要你收集数据。但是不要担心,Python 可以帮你实现。
例如,为了获得 Indeed 工作发布数据,我们用 Python 从 Indeed 网站抓取数据。看看如何在 Python 中使用 NLP:一个实用的分步示例。
提示:许多文章建议参加 Kaggle 竞赛,但我们发现许多数据集或解决方案并不现实。
将知识应用于数据集
一旦我们有了数据集,就该深入研究了。我们需要:
- 探索数据
- 清理数据
[## Python 中的数据清理:终极指南(2020)——只进入数据
我们用 Python 创建了这个新的完整的分步指南。你将学习如何寻找和清理的技巧:丢失…
www.justintodata.com](https://www.justintodata.com/data-cleaning-python-ultimate-guide/)
- 研究解决问题的好办法
- 将算法/模型应用于数据
如果你更喜欢从一些指导开始,搜索有清晰的分步说明和实践的文章。例如,你可以查看我们的博客上的文章,在那里我们解释了完整的过程并提供了 Python 代码。
提示:你可以尝试实现不同的模型来探索同一个数据集。这是展示你技能的好方法。
写信炫耀工作
最终,我们需要让世界了解我们的工作:
- 在 GitHub 上发布你的代码。查看 Hello World GitHub 指南了解基础知识。
别忘了创建一个自述文件和评论。你的代码甚至可能对同一主题的其他人有所帮助。 - 写文章总结工作。
- 并在平台上发布文章,如:
–LinkedIn
–Medium
–Twitter
–脸书团体
–或个人网站
我们爱 Medium,因为你甚至可以根据浏览量获得一些报酬。媒体上最大的数据科学出版物是面向数据科学的。 - 或者将文章推销给其他出版物,如 KDnuggets 、 Dataquest 。
提示:项目的结果有时候不一定要完美。但是一定要解释你是如何处理这个问题的。
第 3 步:与数据科学世界接轨
现在我们有一个作品集来展示我们的技能。联系数据科学的真实世界非常重要。
如前所述,你可以加入不同的社交网络:
你也可以通过参加 Meetup 和 Eventbrite 的活动来尝试结识真实的人。
Stack Overflow 也是一个技术社区,在帮助他人的同时获得你的问题的答案。
最后的话
进入数据科学职业道路并不容易。但这是一个有益的和有影响力的!
所以请不要放弃,继续努力。
祝你好运!
如果你有任何问题,请留下评论。我们会尽力回答他们。
在你离开之前,别忘了 报名参加刚刚进入数据快讯 !或者在推特、脸书上与我们联系。
所以您不会错过我们的任何新数据科学文章!
【https://www.justintodata.com】原载于 2020 年 4 月 1 日。
* [## 如何在 Python 中使用 NLP:一个实用的分步示例——只进入数据
这是利用在线资源进入数据科学的完整路线图/课程。你是否想学习…
www.justintodata.com](https://www.justintodata.com/use-nlp-in-python-practical-step-by-step-example/) [## 如何在 5 个步骤中可视化决策树——仅在数据中
这是利用在线资源进入数据科学的完整路线图/课程。你是否想学习…
www.justintodata.com](https://www.justintodata.com/visualize-a-decision-tree-in-python/) [## 如何安装/设置 Python 并为数据科学做准备——直接进入数据
我们将带您逐步完成设置 Python 环境的过程。您将学习:如何安装 Python…
www.justintodata.com](https://www.justintodata.com/install-python-and-prep-for-data-science/)********
当生活不给你喘息的机会,如何学习数据科学
我努力为数据科学贡献时间。但是发现新的策略使我能够提高学习速度,完成更多的事情
每一次挣扎都有出路
带着进入数据科学领域的目标,你决定想要获得什么样的技能。现在你只需要有时间坐下来获得这些技能。最终,你会成为一个有竞争力的候选人,得到你想要的工作。
但是生活不会让你坐下来。它要求你继续努力,做好自己的本职工作,同时还希望你能在简历中获得 2 年以上的工作经验。你感到停滞不前和沮丧。你知道你需要学习并完成一些项目,但发现坚持你的承诺是如此困难。那么应该放弃吗?
史蒂夫·哈拉马在 Unsplash 上拍摄的照片
两个月前我经历了同样的事情。作为一个有 5 门课和一份工作的数学系学生,我发现很难找到时间学习数据科学。在我快要放弃的时候,我告诉自己要继续走下去。这不是努力工作的问题;这是关于更聪明地工作。我只是需要改变我的学习策略。
不是多努力的问题。这是关于运作系统。
Snapchat 首席执行官埃文·斯皮格尔
现在,我设法完成了许多有趣的数据科学项目,每周至少发表 2 篇文章,在 NLP 研究中有新的发现,同时保持我的 4.0 GPA。当我不断问自己如何能更有效地工作时,我找到了方法。由于新方法对我有用,我想与您分享这些方法,希望您也能采用一些方法,在短时间内获得这些技能,让您的数据科学之旅更加愉快。
先完成一件事,然后再继续另一件事
我过去做的事
连续几周每天花一个小时在一个项目上。当我完成的时候,我觉得我什么都没完成。
我的新方法
设定一个我想完成的小目标,并在短时间内完成它。比方说,当我从学校回来时,我会告诉自己:我想在 2 小时内完成我的学校作业,并在 2 小时内完成我的 NLP 项目。明天我将在到校前写一篇 2 小时的短文。
知道我可以在很短的时间内完成这些事情让我很兴奋,并处于流中。我可以集中注意力几个小时而不分心。看到我的工作完成让我感到有动力,有动力继续下去。
创造一个孤立的环境
我过去做的事
为我想完成的不同项目和我想阅读的新文章打开几个浏览器。知道还有许多事情需要完成,我感到心烦意乱。
我的新方法
一旦我完成了一件事,我就关闭所有与前一项工作相关的文件或浏览器,继续下一项工作。如果工作还没有完成,我想以后再回到网站,我就用一个标签把多个浏览器压缩成一个。清楚地看到我的浏览器可以防止我的注意力分散,集中在工作上。
稍后当我想回到我的工作时,我只需打开一个选项卡,就可以快速访问我自己的工作。
我一直在采用的另一个小秘密是:把我的手机设置成飞行模式,关闭我的 MacBook 上的任何通知。我会在我选择的时间回复消息。任何消息都可以等待。
管理勘探和开发之间的关系
我过去做的事
我知道在数据科学领域,学习新知识和更新新技术和技巧是非常重要的。所以我每天会花很多时间去探索不同的工具,阅读很多文章,却不去应用它们。我感到筋疲力尽,无能为力,因为我意识到有太多的东西我需要学习,但我还没有学到任何一个
我的新方法
每当我在 Medium 或其他网站上看到有趣的文章时,如果我当时正在做什么,我会浏览一些有价值的文章,将它们保存到 Instapaper ,并将其归入特定的类别(数据科学、编程、数学、数据 viz 等),以便我以后可以轻松访问它们。当我有少量空闲时间时(比如在公交车上,在线路上,或者在午餐时间),我会拿出我保存在 app 中的文章来阅读。一旦我读完,我要么删除它们,要么保存它们,如果我以后想访问或尝试代码的话。
通过创建我自己的阅读空间和习惯,我能够在完成工作的同时用新知识更新自己。
分享我所学到的
我过去做的事
每天默默的做着工作。当我该在简历上展示我的工作时,我没有什么可展示的,因为我在完成工作后从未分享或发表过。
我的新方法
把一个大项目分成几个小项目。在 Github 上推送我的小成就,或者在 Medium 上分享我的短代码。然后我会在 LinkedIn,Twitter,或者我的网站上分享我的项目和文章。我从不忽视我的任何项目和小成就。
如果你因为觉得自己的作品不够好而犹豫要不要分享,那你永远都不够好。一旦你分享并收到他人的积极(或消极)反馈,你会更有动力去提高你的技能来分享更好的内容。
将“我需要做”转换为“我想做”
我过去做的事
“我可以跳过今天的项目吗?不,我不应该找借口,因为我已经向自己承诺,无论如何,每天都要花一个小时在数据科学上。这种想法给了我一种义务感,这个项目就像家庭作业或工作一样。我并不期待着手这个项目。
我的新方法
告诉自己,如果我愿意,我可以跳过我的项目,跳过写文章,跳过我的研究。没有人强迫我做这件事。这个想法出人意料地改变了我对工作的看法。我有选择我想做什么的自由,我仍然选择做我的项目。说明我真的很喜欢这个项目!这会很有趣的。我立刻感到精力和热情有所提升,开始着手这个项目。
结论
不管你认为你能还是不能,你都是对的
亨利福特
要成为一名数据科学家,我还需要掌握许多技能。但是当我看到我的新方法实验帮助我有效地获得新技能并完成更多工作时,我知道如果我不放弃并有勇气改变那些不起作用的方法,我最终会实现我的愿景。
感谢您阅读我的文章。我很乐意听听你对这些策略的看法,以及哪些策略对你有效。
我喜欢写一些基本的数据科学概念,并尝试不同的算法和数据科学工具。你可以在 LinkedIn 和 T2 Twitter 上与我联系。
星这个回购如果你想检查我写的所有文章的代码。在 Medium 上关注我,了解我的最新数据科学文章,例如:
你创建了一个待办事项清单来提高效率,但最终却把时间浪费在了不重要的任务上。如果你能创造…
towardsdatascience.com](/maximize-your-productivity-with-python-6110004b45f7) [## 高效 Python 代码的计时
如何比较列表、集合和其他方法的性能
towardsdatascience.com](/timing-the-performance-to-choose-the-right-python-object-for-your-data-science-project-670db6f11b8e) [## 字典作为 If-Else 的替代
使用字典创建一个更清晰的 If-Else 函数代码
towardsdatascience.com](/dictionary-as-an-alternative-to-if-else-76fe57a1e4af) [## 什么是卓越的图形以及如何创建它
作为一名数据科学家,了解如何制作重要的图表至关重要
towardsdatascience.com](/what-graphical-excellence-is-and-how-to-create-it-db02043e0b37)
不编码如何学习数据科学
谈论是否有可能,以及从哪里开始…
数据科学是计算机科学中要求最高、最受欢迎的领域之一。人们可能会认为,一般来说,数据科学家需要了解 Python 和编程才能获得成功。虽然这在一定程度上可能是真的,但在这篇文章中,我们讨论了没有编程数据科学是否可能,以及如果你不是程序员,如何开始学习。TL;DR:有低代码经验学习数据科学是有可能的。微软和 Udacity 刚刚宣布了一项合作,将帮助你做到这一点!
自从数据科学家成为如此受欢迎的职业以来,我确信许多人开始考虑学习数据科学,并且他们中的许多人都感到气馁,因为他们认为一个人需要成为一名优秀的程序员。大部分人认为了解机器学习是从 Python 开始的。但是,我必须向你保证,事实并非如此!在学习 Python 之前,有一些数据科学的基本原理需要你先学习**,完全不需要任何编码就可以开始解决很多现实世界的问题!**
数据科学最重要的事情是开始从数据、特性、准确性测量等方面考虑问题。是通过编写 Python 程序还是通过其他工具来训练模型并不重要。
让我们考虑一个例子:假设你想了解哪些照片更适合社交媒体。例如,在博客帖子中插入小猫的照片以吸引注意力是否有意义,或者观众已经厌倦了那些俗气的照片?一张照片在社交媒体上获得大量赞需要什么?
让我们看看如何从数据科学的角度来解决这个问题。
像数据科学家一样思考
数据科学依赖于数据。所以我们需要做的第一件事是收集数据集。在我们的案例中,我们有一个客观的指标来衡量观众对某些内容的喜欢程度,这就是喜欢的数量。
获取数据集
有多种因素会影响赞的数量:图片本身、相应的文本或者发布的日期和时间。让我们只关注图片,并从 Instagram 中获取一个图片样本,以及相应的赞数。因此,我们的初始数据集将由一张照片(URL)和它收到的一些赞组成。
一旦我们有了数据,我们需要弄清楚我们将解决哪个问题。机器学习可以处理许多典型问题,其中最重要的是:
- 分类问题,当我们需要把我们的对象分成两个或更多的类时。分类问题的一个例子是过滤垃圾邮件,因为我们需要将每封邮件分类为垃圾邮件或非垃圾邮件。
- 在一个回归问题中,我们需要预测一个数字。预测一家商店每天售出的冰淇淋数量就是一个很好的例子。
- 聚类问题可以帮助我们找到相似类型的对象,并根据某种相似性原则将它们分组在一起。
- 异常检测允许我们发现不同于“正常”的数据
在我们的例子中,我们有一个回归问题,因为我们希望建立一个模型来预测我们的照片将获得的赞数。
提取特征
传统的机器学习模型使用表格数据,其中每个数据点由表格中的一行表示,该表格由特征(模型的输入值)和标签(我们试图预测的值)组成。虽然更高级的神经网络模型可以直接处理图像,但它们需要更多的数据来训练,所以我们在这里不讨论它们。
为了训练模型,我们首先需要执行特征化,即从图片中提取数字或分类特征。我们可以使用认知服务计算机视觉 API 来做到这一点。认知服务可以将一张图片作为输入,然后返回计算机可以在这张图片中“看到”的一切:关于人、物体、主色的信息,以及图片上出现的任何文本。例如,我们可以提取以下特征:
- 主要图像类别:食物、肖像、建筑、风景等。
- 照片上的人脸数量及其年龄(平均年龄,如果有多张人脸)
- 背景和前景颜色
- 哈希标签。在表格中表示散列标签的方式被称为一键编码——每个标签将由一列表示,如果标签对应于图片,则包含 1,否则包含 0。
我们可能还想添加日期作为一个功能。添加日期可能很棘手,因为模型最适合数字,而日期不仅仅是一个数字。因此,我们可能希望用从开始日期算起的天数来表示一个日期,并添加“星期几”作为另一个特性,因为帖子的受欢迎程度可能在很大程度上取决于这一天。我们可能还想添加“周末”二进制特性来尝试和检测周末活动的变化。
在数据集的最初设计中,以及在收集哪些数据的整个问题上,投入了大量的思考。这个过程往往比实际的模型训练更重要,不需要编码就可以完成。
有时候数据准备的过程可以用 Excel 来完成,在数据集上调用认知服务可以用 Power Apps ( 本文档描述如何)或者微软 Flow 来实现。
在这个例子中,我已经为你准备好了数据集。此处以 CSV-table 的形式提供。
现在有了数据,就可以开始模特训练了!而即使是这看似最难的一步,不用编码也能实现!
Azure 机器学习
我将向您展示如何使用微软的主要机器学习服务Azure Machine Learning在不编码的情况下训练模型。这项服务既面向需要处理海量数据和计算工作量的专业数据科学家,也面向刚刚迈出机器学习第一步的初学者。对于初学者来说有两个特别有用的技术: AutoML 和 Designer 。使用 AutoML 从头到尾不编码的过程在文档中有的描述,但是我们在这里也要概述一下。
要开始使用 Azure ML,您需要创建一个工作区。你可以开始跟随我的教程,或者官方文档。工作空间将与机器学习任务相关的所有东西组合在一起:数据、计算资源、实验结果和训练模型。
定义数据集
首先,我们需要创建一个数据集。由于我们将使用来自互联网的数据集,我们只需要指定 CSV 文件的 URL。
选择一个选项从 Web 文件创建数据集,指定表格数据集类型,并选择一个选项使用第一行作为标题。您应该会看到这样的数据预览屏幕:
创建数据集后,可以在数据集部分找到它,您可以查看数据并以各种方式探索它们:
训练自动模型
有了数据集,你就可以在上面训练不同的机器学习模型。但是,如果您不是数据科学家,您可能不知道使用哪个模型。此外,可能会发生数据集中的某些列需要从训练中排除的情况,例如, URL 字段,它不包含对预测有用的信息,因为每个 URL 在数据集中只出现一次。
自动 ML 是一种尝试训练不同机器学习算法直到找到最佳算法的技术。它还执行一些巧妙的特性分析来排除无意义的列,并在需要时做一些额外的特征化。如果问题是可解的——它通常可以找到一个相当好的模型。当然,这是以花费更多的计算能力去尝试许多可能的模型为代价的,但计算能力绝对比好的机器学习专业人员更容易找到。
要使用自动 ML,您只需要几个简单的步骤:
- 点击 ML 门户中的自动 ML ,选择要使用的数据集。
- 选择了一个实验名和目标列。在我们的例子中,我们需要预测喜欢的数量,所以目标列应该是
likes
。
- 你需要一些计算机来训练这个模型。您需要创建一个新的计算,并指定一个集群。通常最好将最小节点数设置为 0,这样当您不执行任何训练时,集群会自动关闭。至于虚拟机类型,对于简单的任务,比如我们正在做的最便宜的选择,
Standard_D1
应该足够了。
- 在下一页中,您选择一个任务类型:分类、回归(我们的案例)或时间序列预测。如果你知道你在做什么,你也可以改变一些配置设置或特征设置。
- 点击完成。
之后,实验就要开始了。训练不同的模型可能需要一段时间,这取决于您在集群中指定的最大节点值和虚拟机的类型。在我的例子中,对于 1 个节点的D1
,花了大约 3 个小时才找到最佳模型。
您可以在门户网站的实验部分找到该实验:
最初,实验将只包含一次运行,但是您需要点击 Include child runs 来显示训练不同 ML 模型的所有不同子实验。您可能还需要调整图表的参数,以便更好地了解所达到的精确度。
现在让我们取消选择 Include child runs ,并选择主实验。打开详细信息页面后,单击模型以查看 AutoML 尝试训练的所有算法的列表,以及它们相应达到的精度(在我们的示例中,因为我们正在训练回归模型,所以我们使用 spearman 相关性来反映模型的“质量”):
了解模型
经过训练的模型现在允许我们预测我们计划发布的任何照片的点赞数。然而,我们更想要的结果是一组关于获得更好的用户对照片反应的建议。换句话说,我们想了解哪些特性会影响结果,以及如何影响。
模型可解释性通过观察不同的特性如何影响最终结果,我们可以更好地理解模型。
当使用 AutoML 训练一个模型时,默认情况下 Azure ML 也会在最佳模型上运行可解释性实验——这就是为什么你会在顶级模型旁边看到视图解释链接。点击它被带到模型解释屏幕,在那里你可以探索不同的功能发挥的效果。
首先,您可以探索工程特性(默认情况下选择此视图)或原始特性的重要性。我们可以通过更改下拉菜单切换到原始特征视图,选择解释指向原始模型。
在下图中,您可以看到特性的重要性。最重要的特征是发布日期(当),其次是人标签,然后是面数、前景色和主类别。这允许我们对我们的问题域做出一些结论:
- 获得更多喜欢最重要的因素是时间。这可能是因为随着时间的推移,越来越多的人喜欢旧帖子,因为随着时间的推移,越来越多的人发现了它们
- 肖像贴子(有一张大照片)越来越受欢迎
- 照片的整体色彩起着相当重要的作用
- 照片的类型也很重要,但没有我们想象的那么重要。我们需要进一步调查哪种类型的照片更受关注
因此,在创建了一个机器学习模型之后,由于可解释性,我们能够看到哪些因素促成了一张照片的流行。我们也可以直接使用该模型,给它一张照片作为输入(事先通过认知服务),它将预测估计的喜欢数量,这样我们就可以测试潜在的候选人并进行比较。
如何开始学习
对于想开始学习数据科学但没有深厚编程功底的人,微软和 Udacity 刚刚宣布了针对微软 Azure 的 机器学习奖学金计划。您可以在2020 年7 月 30 日之前 申请 。更多细节请见微软博客和 Udacity 博客。
微软和 Udacity 今天宣布的计划将由两部分组成。前 10000 名申请者将被提供第一门基础课程Azure 上的机器学习入门,并有低代码体验。这个课程会持续 2 个月,它会教你如何做出像这样的数据驱动的结论,以及如何在几乎不用编码的情况下训练和使用机器学习模型。它将包括以下重要主题:
- 解决问题的数据科学过程
- 不同类型的数据(表格数据、文本等。)和准备数据
- 监督与非监督学习
- 特征工程
- 深度学习与机器学习(即何时应该、何时不应该使用神经网络)
- 分类、回归、聚类等最重要的算法。
- 负责任的人工智能和人工智能的公平性
最佳表现者(根据结果和社区参与程度选出)将获得奖学金,并报名参加微软 Azure 的机器学习纳米学位项目。
如果你以前没有认真尝试过数据科学,我绝对鼓励你报名参加这个课程,体验一下数据科学,并告诉你的非开发人员朋友这个课程。开始这一旅程从未如此简单!
原载于 2020 年 6 月 17 日 https://soshnikov.com*。*
数据科学家如何更快地学习
学会学习的有效策略
哈雷戴维森在 Unsplash 上的照片
我的故事标题是“你在试图成为数据科学家时受挫的原因”,我收到了许多回复,询问我们如何成为更好的学习者的技巧。作为这些回答的结果,我开始深入思考“*更好的学习者”*意味着什么?
将最优秀的人与众不同的隐藏技能
towardsdatascience.com](/the-reason-youre-frustrated-when-trying-to-become-a-data-scientist-2d2b8b402811)
关于这一点,我把更好的学习者定义为以更快的速度保留更多知识或技能的人。这个比率因人而异,但是学习的过程非常相似,你可以通过下面的链接了解更多。
了解学习的 3 个阶段,以及我们如何将其有效地应用于数据科学学习
towardsdatascience.com](/3-stages-of-learning-data-science-9a04e96ba415)
序幕
“能力越大,责任越大”这句耳熟能详的话并没有完全抓住我们内心产生极端力量的事实。然而,当我们把这句话反过来说,当我们承担起责任时,就能找到力量。对你所要求的负很大的责任?我们关注什么,事情的意义,我们的错误,我们的责任。我们现在的结果是我们过去决定的体现,为了确保我们在未来实现我们想要的结果,我们应该对现在负责。
“责任越大,力量越大”——吉姆·奎克
解构缩写词
如果你想成为一个更好的学习者,要快速思考。
F——忘记
A -活性
s 州
t 型教学
婴儿是超级学习者!我很幸运有一个 1 岁的侄女可以观察,所以没有必要做思想实验。我看到她从被到处带着,到爬行,到站立,到静态舞蹈,到走路,到动态舞蹈,到爬楼梯,到开门,现在说出三个词——“恶心”、“恶心”和“啊哦”。因此,我的许多例子可能与我对我侄女的观察有关。尽管如此,这不会阻止我们做一个简单形式的迁移学习来将这些例子应用到数据科学中。
忘记
图片来源:【http://www.quickmeme.com/meme/3thj73
为了成为更好的学习者,我们应该忘记三件事,对于我们社区中的已婚人士来说……不,你的妻子不在其中。排名不分先后:
#1 - 我们所知道的
当我们年轻时,我们完全是海绵。地球是我们的科学实验室。让我们想象一下,如果我的侄女在她出生的那一刻就已经知道如何走路,那将是一场灾难。她的骨头会立刻让她失望,因为她根本没有这个能力。
然而,这就是我们所做的!当我们觉得我们已经知道了一些事情时,当我们回顾它时,更容易掩盖这些信息。为了成为更好学习者,我们必须忘记我们已经知道的东西。
如果我花时间去掌握线性回归和逻辑回归,我理解深层神经网络的内部工作方式会有多快?
“你的头脑就像一个降落伞;它只有在打开时才有效”
#2 - 什么不急
我敢说你可以在我侄女看 CBeebies 节目的时候和她说话。你会被贪婪地忽视。所以当翻滚先生在的时候,我不会在这里捣乱,坏主意。
我知道这个世界上很少有人相信他们可以一心多用,你知道吗,他们可能可以。不幸的是,我是这个部门中不那么幸运的大部分人中的一员。但是,如果你在这群人中注意,这不是我们的缺陷,这是我们的力量。当我们在想很多事情的时候,我们的大脑几乎无处不在,在不同的任务之间转移注意力。或者,当我们专注于一项任务而忘记所有其他任务时,我们就进入了一个极其微妙的地方,叫做当下。
如果你还记得前奏的话,我们在这个地方所做的事情将决定我们未来取得的成果。
“当我们忘记不紧急的事情时,我们通过进入现在为自己提供了一个在未来取得更好结果的机会。”Kurtis Pykes)
#3 - 限制
我侄女刚走两步就摔倒了,我一分钟都没想到她会认为走路不适合她,因为她站直了,又试了一次。
以下是我从初学者数据科学家那里听到的一些限制性观点——如果您听到了一些有趣的观点,请随意添加您自己的观点:
- “我没有博士学位”
- “我没有数据科学学位”
- “编程是为聪明人准备的”
这些陈述可能是事实,但是这些原因并不是阻止你成为数据科学家的原因,而是你的信念。
“如果你为自己的局限而战,你就能保留它们”——吉姆·奎克
活跃的
彼得·康伦在 Unsplash 上的照片
我不会称自己为学者。事实上,由于我的选择,我上大学晚了 4 年,尽管 12 个月里每周上两天课,我还是迫不及待地想让它结束——这是可以理解的,因为我当时正在学会计。
我不确定其他国家,然而,我完全反对我们在英国被教育的学习方式——或者可能只是我的学校,我不知道。对我来说,好的学习是安静地消耗信息的印象一直是荒谬的,也许对其他人有用,但对我来说,这是不正确的。
“学习不是一项观赏性运动”——吉姆·奎克
我们人类是创造者,这是我们最深刻的知识所在。进一步说,当我们积极参与创造的过程时,我们绝对可以学到我们想要的任何东西。你问,怎样才能在学习中变得更积极?
- 做笔记
- 提问
- 履行
你越积极,你学得越多
状态
个人经历以及约翰·霍普金斯医学院进行的广泛心理学研究证实,情绪高涨时发生的事情比不太激动的事情更令人难忘。该研究称,“情绪唤醒时释放的一种激素通过增加神经重新布线形成新的记忆回路的位置的化学敏感性,刺激神经细胞记住事件。”
在这里阅读更多关于这个的内容 …
信息×情感=长期记忆
对许多人来说,这是一个“啊哈”的时刻。是的,你忘记了学校教你的一切,因为你在课堂上很可能处于一种无聊的状态。通过改变我们所处的状态,我们可以成为更好的学习者。
怎样才能提高自己的状态?
- 学习时,要像完全精力充沛时那样定位自己。
- 想一想你将从学习中获得的好处——比如更高的薪水,在 kaggle 上更有竞争力等等。
- 保持好奇、着迷和快乐。
- 有好的姿势
- 横膈膜呼吸
“出售你的聪明,购买困惑.”–贾拉鲁丁·鲁米,13 世纪苏菲神秘主义者
教
“如果你想把你的学习曲线缩短一半,那就带着把它教给别人的意图去学习。”—未知
教书确实能给你一些疯狂的刺激。我记得有人第一次就我的一篇文章找到我,问我一个关于他们正在做的项目的问题……我们不想误导人们,所以我们自然会给予更多额外的关注,我们会做更好的笔记,我们会做任何我们认为必要的事情来提供可靠的信息。此外,当你在教学中被某个现象绊倒时,这可以作为你需要更深入学习以获得更好理解的反馈。
“当我教一样东西时,我会学两遍.”—吉姆·奎克
我经常对人们说,他们应该把他们正在学习的东西写在博客上,或者想办法把他们正在做的事情公之于众,这样其他人也可以学习。额外的关心和反馈对你的成长至关重要,对我来说也是如此。
包裹
成为更好的学习者是一种技能,就像任何技能一样,它需要时间才能完全诞生。尽管如此,不断的刻意练习将提高你的学习能力,反过来增加你实现成为数据科学家目标的可能性。
注:这个故事是高度启发吉姆 Kwik 的教导。他有一个非常有用的播客叫做“Kwik Brain ”,我建议你看看这里的。
如果您认为我遗漏了什么,或者您想向我指出什么,或者如果您仍然不确定什么,您的反馈是有价值的。发个回应!
然而,如果你想和我联系,我在 LinkedIn 上是最活跃的,我也很乐意和你联系。
[## Kurtis Pykes -人工智能博客-走向数据科学| LinkedIn
在世界上最大的职业社区 LinkedIn 上查看 Kurtis Pykes 的个人资料。Kurtis 有两个工作列在他们的…
www.linkedin.com](https://www.linkedin.com/in/kurtispykes/)
我最近增加了我的 PyTrix 系列,在那里我展示了可以用 Python 做的对数据科学家有用的很酷的事情。我已经更新了我的时间表,现在每周都会做这个系列。你可以在下面的链接中看到前两个 PyTrix 故事:
PyTrix#1:加速我们的 Python 代码
towardsdatascience.com](/vectorization-in-python-46486819d3a) [## 使用 Numpy 数组:索引
访问 Numpy 数组中的元素
towardsdatascience.com](/working-with-numpy-arrays-indexing-e4c08595ed57)
如何从学术项目中学习
专业建议:不要在大学提交低质量的项目
作者注: 这篇文章是关于你如何通过在大学从事优质项目来学习核心概念的。虽然很多讨论的观点是经验性的,但我认为它们对大多数 CSE 本科生都适用。
演员表:作者
公司希望看到你所做的工作,而不是你在课程中所做的。这些是我所在学校的一位“分班老师”说的话。这是他微妙的方式让我们知道,为分数而做的项目对雇主来说并不重要。我不知道是否到处都是如此。
但是,我认识的人证实了上述说法。他们觉得招聘人员不太关心学术项目。事实上,他们想看看这些候选人还做了什么。等等,先不要把雇主描绘成恶棍。
大量的学术项目是由学生完成的,因为他们必须这样做。没有激情或欲望去学习这些努力。这导致工作缺乏质量。对任何人来说都是无聊、无趣且没有价值的工作。
如果我们,学生自己低估了我们的工作,为什么招聘人员不应该呢?此外,招聘人员对我们项目的看法肯定是次要的。最重要的任务是从这些项目中获取知识。
竞争不是在候选人的项目之间,而是在那些项目中的想法和实现之间。这是关于你学了多少和应用了多少。
大量的学术项目是由学生完成的,因为他们必须这样做。
基于项目的学习的基础提倡实践方法的重要性。这些课程旨在为学生提供一个通过暴露来学习的范例。然而,就像人类的传统一样,这种方法经常被我们误用。
什么是基于项目的学习(PBL)?
PBL 将知行合一。学生学习核心课程的知识和要素,但也应用他们所知道的来解决真实的问题并产生重要的结果。PBL 的学生利用数字工具生产高质量的协作产品。PBL 重新将教育的重点放在学生身上,而不是课程——这一转变是全球要求的,它奖励无形资产,如动力、激情、创造力、同理心和弹性。这些不能脱离教科书来教,而必须通过经验来激活。 —托马斯·马卡姆( 来源 )
上述定义可以说是对 PBL 核心内容的最好概括。为了简洁起见,让我们把 PBL 压缩成一个基本短语— 边做边学。
参与项目可以让学生:
- 理解现实世界中的问题
- 将理论概念应用于实践
- 与同事讨论建议解决方案的功效
- 组织想法,并通过实施来实现它们
- 提高沟通技巧
不幸的是,今天课堂上的 PBL 通常不遵循这些原则。这不是方法上的错误。反而是学术项目一般理解上的短板。我们容易误解学术项目的全部目的。
等等,我真的误解了大学项目的目的吗?
嗯,你正在读这篇文章,因为你确实在读。事实上,几乎每个人都这样。无论你是坐在教室的前排还是后排,都没有关系。这也和你的成绩无关。
已经说过我们都误解了项目的含义,现在是时候用一些事实来支持我的论点了。所以,我希望你仔细阅读下面的问题,并在心里回答它们(是/否)。
- 你是否曾经因为项目将被评估的部分而过度烦恼?
- 你有没有在一个项目上拖延到截止日期前的最后一周?
- 你曾经提交过别人的项目作为你自己的项目,而没有对原始项目进行重大升级吗?
- 你曾经提交过一个包含代码的项目而没有检查代码效率,没有必要的文档或者没有考虑你的分析的可重复性吗?
- 你曾经提交过一个项目,要求你写一份报告,从互联网上复制超过 30-40%的报告?
- 你有没有因为确信没有人会检查代码,而从互联网上随机获取结果,并作为自己的结果传递出去?
- 你有没有在完成报告后从网上随便找来一些引文,只是为了填满“参考文献”部分?
- 你有没有因为相信“演示比内容更重要”而花更多的时间在演示上,而不是项目本身?
如果这 8 个问题中至少有 2 个你的答案是“是”, 欢迎加入那些误解学术项目目的的人的俱乐部。 我已经和你一起 3 分了。
学术项目的目的
我们所看到的期末成绩的 40-70 %,实际上远不止这些。项目帮助我们实现的不仅仅是分数。正是我们从这些项目中获得的大量知识帮助我们为未来的职业生涯奠定了基础。
- 学术项目为我们提供了一个将理论知识应用于实践的平台。
- 项目有助于更多地关注“问题”并找出“更有效”的方法来解决它。
- 项目促进创新思维。它们有助于用更非传统但有效的替代方案取代对现有解决方案的所有狭隘、传统的理解。
- 通过项目,我们学到了很多关于学术领域合作的知识。协作工作很重要,因为它允许对某一特定主题有不同的意见,并最终导致没有个人偏见的产出。
- 最重要的是,项目在很大程度上帮助个人寻找自力更生的能力。
项目的每个部分都有助于我们对以前不太了解的某个方面有更多的了解。
一个学术项目远不止占 40-70%的分数。
从项目中学习的常见障碍
在这一部分,我列出了一些我们在大学做学术项目时最常犯的错误。这个列表并不详尽,所以请在评论区添加更多内容!
选择一个非常普通的话题
选择一个每个人都在工作或写作的主题太容易了。它浪费了在独特或有价值的问题陈述上工作的大好机会。不太受欢迎的项目会让你的观众更感兴趣。因此,要想脱颖而出,你必须在不太常见的想法上下功夫。
选择一个雄心勃勃的主题
一个看起来像是下一个伟大发明的想法通常是你头脑中的一个诡计,除非你有一个合适的计划来实现它。本科生通常很难区分理性想法和独角兽。因此,使用现实的尺度来衡量项目选择是很重要的。
跟随炒作,而不是问题
我无意冒犯,但似乎几乎每个人都在解决一个问题,因为他们希望 使用 数据科学。数据科学是一个伟大的领域。但是如果我们被炒作所驱使,我们就会对问题视而不见。我们在技术或我们使用的工具上停留的时间越长,我们的解决方案就越有限。
从互联网上挑选代码
从互联网上复制代码并作为你自己的提交可能有它自己的一套伦理问题。但是,学生们经常绕过这些,因为我们大多数人认为,“这不是犯罪。所以,何必在意呢?”。这种想法的愚蠢超出了本文的范围。通过盲目地复制代码,我们通常得到的只是一个临时的修复和许多错过的增强技能的机会。
最后一分钟匆忙完成
在提交前一天开始任何学术项目都不是一种有效的学习方式。你可能会完成它并得到一个分数,但它从来都不是你最好的作品。你在学习代码上的分数几乎为零。
对文档皱眉头
记录学术项目是任何项目中最容易被忽视的方面。这就是为什么很难向他人很好地解释我们的项目,即使我们已经做了一些真正好的工作。记录所有采取的步骤,包括那些失败的步骤,总是很重要的。
不善于团队合作
没有完美的团队成员。只有团队成员互补不足,作为一个队列一起有效学习。不幸的是,这是最难理解的想法之一。我们成为糟糕的团队成员有几个原因:
- 我们觉得我们的队友不够了解,往往看不起他们。
- 当我们看到一个不工作的团队时,我们不能停下脚步。因为,归根结底,他们是你的朋友或同事。你选择拥有比坏血更坏的最终产品。
- 你觉得没人能跟上你,你工作得太快了。你工作负担过重,最后弄得一团糟。
当然,在这里指责游戏不是正确的做法。更聪明的选择是选择你的团队,让它让你工作并为你试图解决的问题服务。
主课——如何从项目中“学习”?
前一节强调了学习的障碍,而这一节讨论了解决方案。我花了 4 年时间在一个学科上进行本科学习,在这个学科中,你的知识深度是由你的项目质量来衡量的。
以下几点总结了这些似乎对我有用的技巧。希望这些对你的事业有所帮助。
不要太担心这些项目带来的分数或负担
把分数看作是你所做事情的额外收获。将项目纳入课程的真正想法是为学生提供一个自学技能的机会,这些技能在一个学期的范围内是学不到的。
选择合适的团队
如果选择你的队友是在你的控制之下,建立一个可以一起工作的团队。选择最亲密的熟人加入我们的团队是我们都会犯的错误。一个团队最好不要建立在谁和谁是朋友的基础上,而是建立在谁能和谁一起做出有效贡献的基础上。
关注问题
当我们有了目标,我们会学到更多。在项目中,我们的目标是我们希望解决的问题。所以,一心一意专注于此是可以创造奇迹的。
提前计划
不要等到最后一刻才开始你的项目。积极主动,当你被告知这件事的时候,就制定一个计划去做。虽然有几种方法可以成功地进行规划,但我不确定哪种方法适合你。所以,我会让你来决定!
为您的项目设置结构
一个有组织的项目结构将有助于理解你所做的工作。这将证明对你和你的项目读者都有好处。如果你正在从事数据科学项目,一个可以帮助你的模板是 Cookiecutter 数据科学。
维护实验室笔记本
一个粗略的本子,在上面潦草地写下你所有的实验、结果、问题和与项目的互动,这将有助于你在准备最终报告时知道该写些什么。
在别人之前打破你的解决方案
每个解决方案都有缺陷。每一个。所以,永远要知道你工作中的陷阱和你所做的假设。通过这种方式,你向你的评估者或雇主或评论家表明你知道你的项目。
保持开放的态度
虚心接受反馈。每个论点都有多个方面。所以,把批评当作一种新的提高方式。
与同事一起回顾你的进步
讨论你的工作,如果不是太机密的话。外部视角将有助于改进你的工作。
让谷歌成为你的搜索源,但不要过度依赖
不要依赖互联网来获取最简单的代码片段。互联网一定不是让你增值的东西,你应该是让你有价值的东西。
诚实地报告你的结果
如果你的项目遇到了瓶颈或者失败了,不要隐瞒。报告你的问题并诊断你所面临的问题。如果人们知道你失败的地方,他们就有更好的机会帮助你。
抄袭代码并不完全错误
只要你给别人的代码添加了属性,那么他们的代码并没有错。总是鼓励使用别人写的东西来构建和改进你的项目。然而,如果你打算拿起整个程序,然后把它们当成你自己的,那就太愚蠢了。
不要小看其他项目
没有“更好”的项目。每个项目都是独立的。它可能是你用 iris 数据集进行的简单数据分析,也可能是一个全新的深度学习框架,但两者都需要同等的尊重。不是每个人都有相同的资源和能力,所以尊重他人的工作。
结论
在当代世界,学历是衡量人们很多方面的最重要的标准。然而,具有讽刺意味的是,作为获得这些学位旅程一部分的学术项目被严重低估了。
嗯,我们中的一些人可能在某些项目上非常努力,但老实说,没有人会在意,除非我们的努力转化为他们的价值。因此,唯一阻碍我们学习和创造惊人项目的是我们自己的想法。我们需要改进这一点。
一个计划周密、结构良好的项目可以帮助你学习新概念,这比在上面做一门课程要容易得多。此外,一个写得好的项目向你的读者展示你的关心。在一个越来越自私的世界里,能够关心他人的舒适肯定会让你超越很多竞争对手。
2020 年如何免费学习地理空间数据科学
免费的在线课程,学习最先进的地理空间数据科学。
地理空间数据科学是一个蓬勃发展的领域。然而,学习地理空间数据科学对于新手和中级用户来说都是一项艰巨的任务。与主流数据科学资源相比,该专业领域的学习资源和途径更少为人所知,也更少被共享。我知道在 Courser、EDX 等主要 MOOC 提供商那里寻找地理空间数据科学资源是多么痛苦和令人失望…
地理数据科学是专门研究数据科学的空间组成部分的学科。它带来了数据科学领域中特定于地理数据的理论、概念和应用。
在本文中,我分享了最新的免费课程,可以帮助您实现地理空间数据科学领域的学习目标。你会发现一个宝贵的资源宝石启动你的职业生涯在地理空间数据科学。
这个列表中包含的资源主要在 Python 生态系统中。在这个列表中,我们还包括初级和高级资源。
1.Geo Python(赫尔辛基大学-2019 年最新版本)
这门课程是您开始地理空间数据 Python 编程之旅的好地方。您将学习 python 编程基础,重点关注地理空间应用。本课程涵盖 Python 中的基本数据类型、数据处理和可视化。包括讲座视频、Jupyter 笔记本、GitHub 练习在内的所有资料都是开源的,可以免费获取。
我最喜欢这门课程的一点是,它不仅对初学者来说是用户友好的,而且还教会你数据科学世界中使用的最先进的技术和工具,包括 Jupyter 笔记本电脑。如果您是 Python 或地理空间世界的新手,我强烈建议从这里开始。
材料可在课程主页获得
**2。地理数据科学(**利物浦大学—2019 年最新发布)
地理数据科学(ENVS363/563)
是一门结构良好的课程,在地理空间数据科学领域有很多实际应用。这门课程有两个主要部分:讲课和实验。本课程涵盖的主要主题包括数据科学基础和地理空间数据的机器学习应用。
虽然没有视频讲座,但讲座的幻灯片是免费提供的。附带 Jupyter 笔记本的实验室也是开源的,并提供了许多关于地理空间数据科学不同方面的详细工作。
课程首页。
3.GIS 流程自动化(赫尔辛基大学-2019 年最新版本)
本课程是列表中第一门课程的后续课程, Geo python 及其所有资源均可在线免费获取。自动化 GIS 流程提供了关于如何使用 Python 编程语言执行一些常见 GIS 任务的教程。它还提供托管 Jupyter 笔记本(Binder),您可以在浏览器中进行交互,而无需设置编程环境。这是一门中级课程,需要掌握 Python 语言知识。
课程资料:课程主页。
4.空间数据科学(芝加哥大学-2017 年)
空间数据科学中心
这是一门高级课程,详细解释了许多空间统计概念的理论基础。本课程涵盖的主题包括探索性空间数据分析(ESDA)、空间回归和地理空间数据的无监督聚类。
本课程的实验室使用 Geoda 软件,但是在 Pysal — Python 空间分析库—功能的帮助下,用 Python 实现大多数实验练习是可行的,并且是一个很好的实践项目,可以增强您的理解。
讲座视频: Youtube
5.空间数据科学和应用(Coursera)
空间数据科学旗帜。
此列表中的最后一门课程通过空间大数据世界中的各种示例和应用,突出了地理空间数据科学的高级应用。虽然本课程没有任何编程任务,但它很好地介绍了空间数据科学的实际应用,包括所使用的工具和开源解决方案中的分步过程。
课程链接: Coursera 。
结论
该列表重点介绍了最佳和最新的地理空间数据科学课程。在另一篇文章中,我将分享关于地理空间数据科学的最新书籍。让我知道,如果你有任何其他额外的课程在这个领域,我没有包括在这个列表中。
已经会 Python 了怎么学 Julia
跳到好的方面
鲍里斯·斯莫克罗维奇在 Unsplash 上的照片
朱莉娅是新来的吗?
Julia 是一种较新的获奖编程语言,学起来像 Python 一样简单,但执行起来像 c 一样快,不信?确实是真的。(点击此处进行多语言速度对比。)
Julia 提供的不仅仅是语法和速度。为了解释他们开发这种语言的原因,朱莉娅的创造者说:
“我们想要 C 的速度和 Ruby 的活力。我们想要一种同形异义的语言,既有像 Lisp 那样的真正的宏,又有像 Matlab 那样明显、熟悉的数学符号。我们想要像 Python 一样可用于一般编程,像 R 一样易于统计,像 Perl 一样自然用于字符串处理,像 Matlab 一样强大用于线性代数,像 shell 一样善于将程序粘合在一起。这种东西学习起来非常简单,却能让最严肃的黑客感到高兴。[1]"
陪审团还没有决定,但感觉他们已经做出了决定。当 Julia 1.0 发布时,一种有潜力实现大部分(如果不是全部)目标的语言的框架就诞生了。
同时,Julia 要达到主流编程语言的成熟还有很长的路要走。Julia 的软件包需要改进,它的文档和学习资源也需要改进。幸运的是,一个活跃的(甚至是热心的)开发者社区正在解决这些问题。
尽管这种语言正在发展,但有很多理由学习 Julia ,尤其是如果你对机器学习、数据科学或科学计算感兴趣的话。
懂 Python 想学 Julia?
照片由 Arif Riyanto 在 Unsplash 上拍摄
Python 用户通常能够很快学会 Julia 语法。语法类似于 Python,有许多 Python 用户熟悉的约定。
然而,用 Julia 编程与用 Python 编程有着根本的不同。很有可能,Python 用户编写的第一个 Julia 代码在外观和行为上都很像 Python。虽然这种方法没有什么大问题,但看起来像 Python 的 Julia 可能会效率低下,并且会错过该语言的重要方面。
Julia 在不同的范例下运行——通用函数、巧妙的调度和深思熟虑的类型(仅举几个例子),这些想法中有许多根本没有出现在 Python 中。因此,本文的目标是教授三个简单而重要的 Julia 概念:类型层次**、多分派和用户定义类型。选择这些概念是为了帮助加速 Pythonic Julia 程序,说明 Julia 与 Python 的不同之处,并向 Python 用户介绍新的编程思想。**
因此,因为我侧重于概念,所以我不会在这里介绍安装 Julia 和学习基本语法。对于安装和语法,我推荐以下资源:
- Changhyun Kwon 的《Julia 运筹学编程》的第一章包含了一个优秀的安装和设置指南。
- 由 J. Fernandez-Villaverde 编写的安装和语法综合指南。
- 通过例子向 Julia 学习语法。
- 从德里克·巴纳斯的视频中学习语法。
三个重要的朱莉娅概念
1。类型层次
Julia 的许多速度、多功能性和可组合性优势部分归功于打字系统。在 Python 中,类型可能是事后才想到的,所以通过类型思考可能会显得乏味。然而,Julia 保持简单,并以速度提升奖励仔细思考。
具体/原始类型
Julia 使用两种不同的类型:具体类型和抽象类型。每一个都有不同的用途。具体类型包括典型的String
、Bool
、Int64
等。并用于标准计算。类型Float64
是一个具体类型,意味着Float64
可以被实例化并用于计算。
抽象类型
类型Union{}
、AbstractFloat
、Real
和Any
都是抽象类型。抽象类型不能实例化。相反,抽象类型是将相似类型的数据组合在一起的容器。它们通常用于向编译器表明可以在抽象类型的任何子类型上调用函数。
""" This function accepts Float16, Float32, Float64
because they are all subtypes of AbstractFloat
"""
function g(a::AbstractFloat)
return floor(Int, a)
end
类型Any
和Union{}
是特殊的。Union{}
被预定义为所有类型的子类型。它是类型层次结构的底部。类似地,每个类型都是Any
的子类型,使其成为类型层次结构的顶层。
为什么使用抽象类型?
抽象类型很有用,因为定义为作用于抽象类型的函数能够作用于抽象类型的所有子类型。
举个例子,假设一个开发人员需要一个类似数组的数据结构。在 Julia 中,他们可以定义自己的应用程序特定结构,并确保它满足AbstractArray
类型的要求。然后,Julia 生态系统中定义为对AbstractArray
数据进行操作的所有函数将在开发人员的类似数组的数据结构上工作。由于这个特性,Julia 的许多包可以顺利地一起工作,即使它们不是一起设计的。
与 Python 包形成对比。几乎每一个使用数组的包都是为使用numpy
数组而设计的。这就造成了对numpy
的巨大依赖。如果一个程序员想创建自己的数组并在上面调用numpy
函数,这可能会引发错误。很少有 Python 库能处理自定义对象。相比之下,Julia 中的抽象类型给了开发人员更多的灵活性,并有助于使包更具可组合性。
操作员
二元运算符::
用于断言变量是某种类型。更具体地说,运算符可以将变量初始化为特定类型,表明函数参数必须是特定类型,或者断言预定义变量是特定类型。下面演示了其中的每一种用法。
# Initialize a Float64
x::Float64 = 100# Argument z must be an Int64
**function** f(z::Int64)
**return** z^2
**end**# Assert x is a Float64
x::Float64 # (Does nothing)# Assert that x is an Int64
x::Int64 # (Raises error)
值得一提的是,我们可以在没有类型断言的情况下声明变量或定义函数,例如x = 100
。(在这种情况下,变量x
将是一个Int64
。)
子类型运算符<:
确定一个类型是否是另一个类型的子类型。如果我们想比较两个变量x
和y
的类型,如果变量x
的类型是变量y’s
类型的子类型,那么计算表达式typeof(x) <: typeof(y)
将返回true
。作为另一个例子,考虑以下表达式:
Union{} <: Float64 <: AbstractFloat <: Real <: Any
这评估为true
,表示我们已经在类型层次结构中对类型进行了正确排序。(<:
操作符可以比较这些对象,因为它们是类型而不是变量。)
更多关于类型的阅读:
- 关于类型的文档
- 一个很棒的关于类型的教程来自《艰难地学习茱莉亚》
- Julia 的创造者之一,(Stephan Karpinski) 讲解栈溢出上的类型系统。
2.多重调度
这个概念可能是了解朱莉娅最重要的概念。从开发的角度来看,Julia 提供的许多优势都源于多重调度。
多重分派是指函数根据其参数的类型表现不同。它类似于函数重载,但不完全相同。
当程序员将类型注释添加到函数定义中时,会发生多重分派。考虑下面的例子:
我们需要一个函数f
来平方它的输入,然后计算它的值 mod 4。在 Julia 中,有 3 种等价的方式来定义f
:
# Verbose definition
**function** f(x)
**return** x^2 % 4
**end**# Mathematical notation
f(x) = x^2 % 4 # Like a Python lambda
f = x -> x^2 % 4
假设我们总是需要f
输出一个整数,但是它的输入x
可以是一个String
、Float64
或者Int64
,直到运行时我们才会知道x
的类型。在 Python 中,这是通过以下方式解决的:
**def** f_py(x):
**if** type(x) == string:
x = float(x)
**if** type(x) == float:
x = ceil(x)
**return** x**2 % 4
在 Julia 中,我们可以编写一个类似上面 Python 函数的函数:
**function** f_py(x)
**if** isa(x, String)
x = parse(Float64, x)
**end**
**if** isa(x, Float64)
x = ceil(Int64,x)
**end**
x^2 % 4
**end**
然而,我们最好这样写:
f(x::Int64) = x^2 % 4
f(x::Float64) = f(ceil(Int64, x))
f(x::String) = f(parse(Float64, x))
这个定义集合与 Python 函数f_py
做同样的事情。但是f
对x
的作用取决于x
的类型。三个定义中的每一个都指定了f
将对特定类型做什么。
- 如果
f
被传递了一个Int64
,它将把它的平方和 mod 减四。 - 如果向
f
传递了一个Float64
,它将计算高于 float 的整数上限,并对该整数调用f
。这将调用 1 中描述的整数版本的f
。 - 如果
f
被传递了一个String
,它将把它转换成一个Float64
,然后在 float 上调用f
,这将调用f
的 float 版本,如 2 中所述。正如我们已经看到的,Float64
版本转换为Int64
,并调用f
的Int64
版本。
当这些函数在一个有 300 万个混合类型元素的数组上广播时,被调度的函数在 0.039 秒内完成。Python 版的f_py
比f
慢 50 倍。此外,调度函数f
的速度是 pythonic Julia 的两倍。
一方面,Julia 基本上比 Python 快,但是我们也看到多分派比 pythonic Julia 快。这是因为在 Julia 中,f
的正确版本是在运行时通过查找表确定的,这避免了多次if
语句求值。
正如您所看到的,多重分派速度很快,可以有效地解决各种编程挑战,使其成为 Julia 语言最有用的工具之一。
更上多分派
- Julia 如何使用多重调度击败 Python 。来自 DJ Passey 的多个调度的更多例子。
- 多次派遣的不合理效力。斯蒂芬·卡尔平斯基的演讲。
- 关于 Erik Schnetter 的博客文章泛型编程的一些想法。
3.复合类型(结构)
这可能令人震惊,但事实证明,Julia 不是面向对象的。没有类,也没有具有成员函数的对象。然而,通过利用多重分派和类型系统,Julia 获得了面向对象编程语言的优点和额外的灵活性。
Julia 不使用对象,而是使用用户定义的复合类型结构。结构没有内部函数。它们只是命名类型的集合。在下面的例子中,我们定义了一个 NBA 球员结构:
**struct** NBAPlayer
name::String
height::Int
points::Float64
rebounds::Float64
assists::Float64
**end**
类型NBAPlayer
有一个默认的构造函数:
doncic = NBAPlayer("Luka Doncic", 79, 24.4, 8.5, 7.1)
每个字段都可以用熟悉的点符号访问:doncic.name
、doncic.height
、doncic.points
、doncic.rebounds
和doncic.assists
。
您可以定义额外的构造函数,只要它们接受不同于默认的类型组合。这是多重调度在起作用:
# Constructor with no arguments**function** NBAPlayer()
# Make an empty player
**return** NBAPlayer("", 0.0, 0.0, 0.0)
**end**
有了定义的结构,我们可以给 Julia 库中的函数新的定义:
**function** Base.show(io::IO, player::NBAPlayer)
print(io, player.name)
print(io, ": ")
print(io, (player.points, player.rebounds, player.assists))
**end**
这定义了结构NBAPlayer
在打印时的显示方式。这类似于在 Python 中为一个类定义一个__repr__()
函数。然而,与我们在 Python 中定义内部函数不同,在 Julia 中,我们为外部函数如何作用于结构提供了新的定义。
Python 允许开发者用魔法方法来决定某些操作符应该如何作用于一个类。程序员可以为+, -, +=
和其他人应该如何作用于一个类编写他们自己的定义。但是,这从根本上受限于具有魔法方法的操作符列表。在 Julia 中,任何函数都可以被赋予任意类型或结构组合的定义。
结论
尽管 Julia 很容易上手,但掌握起来却很棘手。学习这些概念使开发人员走上了掌握 Julia 的道路。通过实践和尝试这些想法,您可以开发出编写高质量 Julia 程序所必需的技能。
参考
[1] J. Bezanson,S. Karpinski V. Shah,A. Edelman,为什么我们创造了 Julia (2012),JuliaLang.org
亲自看
medium.com](https://medium.com/swlh/how-julia-uses-multiple-dispatch-to-beat-python-8fab888bb4d8) [## 朱莉娅语言的风景照
体验朱莉娅,而不必做任何困难的事情
towardsdatascience.com](/a-scenic-look-at-the-julia-language-e8ba53dea5bd) [## 深度学习并驾齐驱:Julia v.s. Python
你能说出哪一种是未来的语言吗?
towardsdatascience.com](/deep-learning-side-by-side-julia-v-s-python-5ac0645587f6)
如何在学习机器学习的同时提高健康水平
这里有一个新规则:如果你的模型在移动,你也在移动。
一个穿着灰色连帽衫的胡子拉碴的男人坐在电脑前,看着亏损曲线下降。照片来自:当我的机器学习模型在 YouTube 上训练时,进行全身锻炼。
现在是时候问自己两个问题了。
- 什么不会改变?
- 会有什么变化?
一段时间后一切都变了
那是最好的故事开始的地方。或者至少它们包含了一个弧线,这个弧线带着一个角色经历了一系列的事件,之后一切都不一样了。
我们假设这个角色是你(还有我,因为我也在想这些事情)。
当一切恢复正常时,你会觉得有什么不同?
首先,我们必须明白,正常并没有一个统一的定义。你有你的故事,我有我的。你知道吗?
成为故事主角的美妙之处在于你可以创造它。你可以写下什么改变了,什么没有改变。
也许你已经意识到你所做的活动有一半是不必要的。或者你拥有的一半垃圾不能给你带来快乐。
学习机器学习(或任何东西)的公式
上个月底我发表了一个视频叫 不要学机器学习 。潜在消息的点击标题。
切忌当驴。
一个人如何避免成为驴子?
当问题出现时,通过识别并采取相应的行动。
驴子问题来自一个故事,一只驴子被困在一桶水和一堆食物之间。它不能决定它是饿还是渴,所以它看了一眼水,然后看了看食物,然后又看了看水,食物,水,食物,水。
最终,由于无法做出任何决定,驴子饿死了。
也许你以前遇到过这个问题。卡在两件(或更多)事情之间,全神贯注于考虑每一件事情,结果什么都没发生。
现在。
有很多方法来看待这个问题。或许,拖延决定会有所帮助。
你等待的时间越长,你就变得越聪明,你就能做出更好的决定。
或者拖延本身是一个信号,没有可行的选择,你应该选择没有。你知道俗话说,如果你不能决定,答案是否定的。
让我们把这个和学习机器学习联系起来。
我被问到的最一致的问题是,“我如何学习机器学习?”。
通常它会伴随着。
“我没有数学经验,还能学吗?”
“我没有统计学或者神经科学的背景,怎么办?”
对此,我的第一反应是“如果每个人在开始做某件事之前都需要背景知识,那么没有人会开始做任何事。”
我不会这样说,当然,我的回答更有礼貌,但在这篇文章中我可以更直接。
这里的驴问题很明显。有人有兴趣学习一个新的话题,但是考虑到摆在他们面前的无限的途径,他就退缩了。
修复?
如果你面前的现有路径都不起作用,你必须自己创造一条。
这里有一个万无一失的方法。
- 使用在线课程和材料(你足够聪明,可以找到这些)来建立知识基础。追求技能,而不是证书。
- 通过创建自己的项目,将你的知识基础转化为具体的知识(无法教授的知识)。
问题。
哪些资源最好?
很多都是入门绰绰有余。看评论。尝试一个,看看它是否能激发你的好奇心,让你继续下去。
如果外面有更好的东西呢?
驴的问题。避免。你会通过尝试一些事情来弄明白这一点,看看它是否适合你,如果不适合就继续前进。记住,你做的比你想的更聪明。
我学过一些入门课程,我应该做什么项目?
你自己的。
如何?
设计一些可能行不通的东西。
制作一个玩具来打动你的顾客、你的粉丝和你自己。不要担心做出什么东西来给竞争对手或你的同行留下深刻印象。
我的努力白费了怎么办?
99%的努力都浪费了。但是如果你从来没有奉献过,你就永远没有机会去成就那 1%不属于你的人。
注意我们所经历的是如何应用于学习几乎任何东西的。
最重要的一点是,在任何给定的时刻(不可能预测),你不是关注什么是正确的,而是关注趋势。
你正在培养学习的习惯(以课程为基础)和创造的习惯(建立自己的项目)。
过一会儿,你会发现一个暗示另一个。很快,你的创造会推动你的学习,而你的学习也会推动你的创造。
你用来学习的工具和资源会随着时间而改变,但是如何培养学习的习惯,培养实验的习惯不会改变。
在学习机器学习的同时改善健康
我承诺这里会包括健康。
健康不会改变。
失去健康,你还有什么?
如果你在学习机器学习,我要给你一个新的规则。
每次你的模型在动,你的身体也在动。
想象一下,你正在训练一个神经网络,或者对一个随机森林进行网格搜索。模特搬家。身体在动。
也许你去散步,做些俯卧撑,或者伸展一下久坐后紧绷的臀部。之后,你回来检查结果。好消息是,尽管你的损失功能一点也没有减少(你忘了加上optimizer.step()
),你的身体感觉很好。
为什么?
缺乏运动导致身体堵塞。当你的身体堵塞时,你的思想也堵塞了。你不想那样。
同样,这可以追溯到学习一个新的话题。
对于任何给定的主题(尤其是机器学习),入门的资源都可能是巨大的。因此很有可能出现驴的问题。
和健康一样,有很多关于饮食、运动的教条,但是没有一个像趋势一样重要。
让我说清楚。
运动的习惯比运动的种类更重要。
学习的习惯和使用你所学的知识去创造比你用来学习的资源更多。
如果你想改善你的健康,你的知识,你分解问题和建立解决方案的能力,最好的方法是以小行动的形式,日积月累。
创建自己的反馈回路
好吧。
你可能会想,“丹尼尔,我被一头驴的问题卡住了,我能做什么?”。
除了我们已经讨论过的,这里有一些你可以采取的步骤。
对事物进行分级
你的健康,你的学习,你的创意,你的人际关系,其他对你很重要的事情。从 1 到 5,它们是如何叠加的?应该首先解决最低的问题。读完这篇文章后,把它们写下来。
30 天
获得评定后,设计 1-3 个步骤,在接下来的 30 天内,你可以采取这些步骤来评定最低的等级。这里少即是多。从尽可能小的行动开始。可能是每天花 10 分钟散步或阅读。或者去掉你收藏的 15 个标签,坚持选择最能激发你好奇心的那一个。
后续
任何互动中被忽略的一点是跟进。不要小看它。在 30 天结束时,重做评级并问自己:
- 我移除了什么?(记住,如果你正在读这篇文章,你的生活可能会通过减法而不是加法得到改善)。
- 我学到了什么?
- 我创造了什么?
- 我是怎么移动的?
- 什么保持不变?
- 未来 30 天有什么变化?
这个活动不需要超过一个小时。但是你正在做的是创造你自己的反馈回路。完全自我驱动。
因为。
如你所知,没有人比你更关心你。无论是学习新的东西还是照顾你的健康,都取决于你。
需要灵感?
我拍了一个我遵循新规则的视频:模特动,身体动。过来跟着走。
这篇文章最初是作为 2020 年 4 月期的吃、动、学、做播出的,这是我大约每月发送一次的时事通讯,面向饥饿、活跃、好奇的创作者。你可能是其中之一。更多类似这样的作品,一定要报名。
2020 年如何学习机器学习和数据科学
从线性回归到神经网络开始的最佳课程
想学习机器学习或数据科学但不确定从哪里开始?我当时就在那里——我还记得那些漫漫长夜,我在互联网的信息海洋中搜索,寻找最能利用我时间的课程。经过一番艰苦的挖掘,我发现了一些关于学习机器学习的优秀资源,我用这些资源进行了面试,并在数据领域获得了一个角色。在这篇文章中,我将分享我最喜欢的机器学习课程,这样你就可以直接投入到学习机器学习中,而不用像我一样花上几个晚上研究相同的主题。
马库斯·温克勒在 Unsplash 上的照片
今天,机器学习经常被吹捧为解决许多世界问题的银弹——它给了我们有效的网络搜索、无人驾驶汽车、实时语音识别,甚至极大地揭开了人类基因组的神秘面纱。它在我们日常生活中的普遍存在反映了它在大规模改善人类生活方面的效用和潜力,这也是机器学习的吸引力所在。
对于对学习它不感兴趣的局外人来说,它只不过是一个笼罩在神秘阴云中的时髦词。对于希望从事机器学习的新人来说,机器学习可能看起来像一个深奥的概念,具有很高的进入门槛。然而,机器学习不必神秘或难以理解。带着开始追求机器学习知识的真诚愿望和一点耐心,你现在正处于开始解决它的最佳位置。
但是什么是机器学习呢*?*
我喜欢把机器学习看作是教会机器自己学习的科学。更严格地说,机器学习之父亚瑟·塞缪尔在 1959 年将其优雅地定义为
这个研究领域赋予计算机无需明确编程就能学习的能力[1]
这与我们定义的传统编程截然不同。在传统编程中,我们给计算机一段程序和一个输入。反过来,我们期望一个输出。例如,如果我们给一个计算器程序提供 1+1 的输入,我们都知道输出是什么。
作者插图
然而,通过机器学习,我们给计算机一些输入和输出。随着时间的推移,机器会更好地学习输入和输出之间的关系。当我们给出一个新的输入时,它能告诉我们预测的输出。
例如,埃隆计划买一辆二手特斯拉。他在 Craigslist 上研究特斯拉汽车的价格,发现一辆接近新车的特斯拉起价约为 4 万美元。他还意识到,随着车龄的增长,特斯拉的价格会下降约 1000 美元。然后,他预测 5 年车龄的汽车——你已经猜到了——是 35,000 美元。
作者插图
换句话说,埃隆只是发明了回归——机器学习中的一个重要概念!在机器学习中,程序识别输入和输出之间的模式,并预测输出。
这辆特斯拉的价格是多少?尼克·科尔曼在 Unsplash 上拍摄的照片
人工智能和深度学习呢?
这些是与机器学习密切相关的术语。他们彼此之间到底是什么关系?这在图表中得到最好的体现—
人工智能、机器学习和深度学习的关系。作者插图
正如你从这张维恩图中看到的,深度学习是机器学习的一个子集,其中的算法模拟了我们大脑传输信息的方式——从神经元到神经元。深度学习通常被视为更复杂的机器学习形式。因此,学习者应该在深入学习之前掌握机器学习的基础知识。
另一方面,机器学习是人工智能(AI)的子集。通俗地说,AI 被定义为机器以各种形式展示的认知智能的模仿,包括但不限于推理、规划和学习。[2]
这些与数据科学有什么关系?
数据科学是一个跨学科的领域,它使用从数学、计算机科学和领域知识中提取的技术和理论。[3]为了说明什么是数据科学,我喜欢使用下面的维恩图。
机器学习与数据科学的关系。作者插图
如您所见,数据科学是不同领域知识的结合,包括数学、计算机科学和领域专业知识。机器学习是数学与计算机科学相遇的地方——计算能力与应用于大型数据集的优雅数学方程的融合。因此,机器学习是数据科学的重要组成部分。
好吧,我现在明白了。我如何学习它?
有太多的机器学习课程来学习机器学习。这涵盖了从机器学习入门到研究生水平的课程,从物理课程到在线课程的所有领域。
在数据科学领域的新手中很受欢迎的一些介绍性机器学习课程包括:
- Udacity 的机器学习入门课
- Datacamp 的/ Dataquest 使用 Python 的机器学习基础
- 哥伦比亚大学在 EdX 上的机器学习
- Udemy 上的机器学习 A-Z
- 哈佛大学的免费机器学习课程
- …
名单还在继续!
就我个人而言,我尝试了列表中的一些机器学习课程,但对其中一些课程提供的深度和严谨性不太满意。
如果你正在寻找一门严格的机器学习课程,将有助于你成为一名数据科学家,你来对地方了。今天,我将分享我个人最喜欢的机器学习入门课程,我从中受益匪浅——这就是 Coursera 上吴恩达(斯坦福大学)的机器学习。我也将分享我的建议,关于什么是需要的知识,在课堂上期待什么,以及如何在课堂上发挥你的最佳水平。
吴恩达在 Coursera 上的机器学习
机器学习中的课程一直被吹捧为初学者最好的机器学习课程。该课程在 370 万名注册者的 15 万个评分中得到 4.9 分,这暗示了它的可信度。
你可以免费听课(审计版)。作为学习者,你可以随时免费注册。然而,如果你是免费注册的,你将没有资格获得证明你已经完成课程的证书。您将无法提交和接收大多数编程练习和测验的反馈。
你可以在 Coursera 上注册 7 天的免费试用,也可以在 7 天结束前的任何时候返回课程。
证书费用为 49 美元。就我个人而言,我发现证书是一个很好的方式来证明我有必要的动力来完成这个课程。有需要的学习者也可以获得经济资助,所以请随时联系 Coursera。这里是如何—
作者插图
这门课的讲师吴恩达几乎不需要介绍。他是斯坦福大学的兼职教授,Coursera 和 Google Brain 的联合创始人,百度的前副总裁,不用说,他是机器学习领域极具影响力的人物。
吴恩达。史蒂夫·杰维特森通过维基共享资源拍摄的图片
为什么我很高兴上了这门课
一年多前,我想从事数据科学,但不知道从哪里开始,我疯狂地在谷歌上搜索’如何学习数据科学’。我很快被铺天盖地的资源和庞大的学习内容——数学、概率、统计、机器学习——淹没了,争先恐后地选择了似乎最受欢迎的课程,那就是吴恩达的机器学习。
我现在可以说,我很高兴我上了这门课。
我仍然记得已经完成了这门机器学习课程,并想去数据科学实习碰碰运气——至少可以说,我绝对吓坏了,但我参加了这门课的事实让我平静了一些。那些最早的数据科学面试告诉我,大多数机器学习从业者都熟悉,或者至少认识这门课程。当我参加这些面试时,当我提到我完成了课程时,招聘经理点头表示同意,这让我很受鼓舞。
我完成了这门课,这为招聘经理提出后续问题提供了一个跳板,比如*“你从这门课中学到了什么”、“这门课最具挑战性的部分是什么”和“你如何在我们公司应用这门课的内容?”*
事后看来,完成课程的行为可能被视为学习动机的标志和机器学习基础知识的展示——这两者都是招聘经理在数据科学职位上寻求的基本素质。
诚然,当我的简历只有这门课程时,我并没有获得数据科学实习。然而,它给了我信心,让我可以开始说该领域专家的语言。有了它,我能够与数据科学专家交流并向他们学习。
这门课是给谁上的
**这门课是为希望在数据分析、数据科学、机器学习或人工智能领域从事技术工作的严肃学生开设的。**它也面向没有机器学习背景的初学者或寻求机器学习概念复习的人。虽然没有明确提到,但这门课的数学严谨性将强烈吸引那些渴望深入了解机器学习的学习者,同时让那些对机器学习的细节不感兴趣的学习者却步。
因此,时间承诺不是微不足道的。完成本课程总共需要大约 60 个小时。假设你每天能投入 2 个小时,这个课程需要一个月。根据你对数学和编程的熟练程度,时间可能会有所不同。
这门课不是给谁上的
记住这一点,这门课不是为寻求对机器学习及其如何解决问题的一般定性理解的非技术学习者开设的,你可能更适合参加同样由吴恩达指导的 AI for everyone 。这门课的目标是希望理解人工智能领域和术语的非技术专业人士。这堂课也短得多,只需要 6 个小时的时间。
还有,如果你没有学习数学和编程的想法,这门课可能不是最容易的课。你可能会发现很难保持你的动力和兴趣。
好吧,数学听起来很难。没有数学可以做机器学习吗?
数学对马丁·路德·金很重要。由杰斯温·托马斯在 Unsplash 上拍摄的照片
不完全是。在不理解数学的情况下进行机器学习会带来严重的缺点。首先,你盲目实现机器学习的技能很容易被自动化的机器学习 AutoML 取代,就像那些由谷歌云实现的。其次,数据科学家的价值在于,在考虑运行时和存储复杂性以及算法对数据集的适用性之后,仔细选择一种性能最佳的适当算法。
想象你是一辆汽车的主人。当然,当汽车行驶时,你能平稳地驾驶汽车。然而,如果有一天你需要从头开始制造一辆汽车,或者如果你需要对一辆有故障的汽车进行故障排除,你将需要了解保持汽车在道路上行驶的齿轮和车轮。如果你不了解汽车的内部运作,这些都是不可能的。现在,汽车是一种数据科学算法——如果你不知道它在内部是如何工作的,你就无法建立一种机器学习算法。
作为数据科学家、分析师和工程师,我们的角色不仅是使用机器学习模型,还要构建、维护和部署它。要做到这一点,你需要知道数学。
好吧,我确实想学,但是我没有扎实的数学或者编码背景…
别担心!Coursera 上的课程没有实际的先决条件——你完全可以在没有我下面提到的任何课程的情况下开始上课。然而,我建议你先修一些课程,这将增加你在这门课上成功的机会。
推荐编码背景
在参加了 Datacamp 和 Dataquest 的 python 和 R 课程后,我对 MATLAB 和 python 有了非常基本的了解,开始了这个课程。本课程很早就对 MATLAB 进行了简要而温和的介绍,因此如果您没有必要的编码经验,也不必担心。这有助于学习者快速掌握所需的编码熟练程度。
如果你熟悉其他编程语言,但不熟悉 MATLAB,我建议你直接进入课程,不要太担心语言。但是,如果您仍然想花一些时间学习 MATLAB,我推荐以下由提供的优秀资源
- 麻省理工学院开放课件(免费)或
- Coursera 上的范德比尔特大学(付费)。
伊利亚·巴甫洛夫在 Unsplash 上拍摄的照片
推荐数学编码背景
本课程假设了高中水平微积分和线性代数的一些知识。你对数学越精通,就越容易轻松通过这门课程,反之亦然。
吴恩达的课确实提供了一些线性代数的复习,所以如果你对线性代数生疏了,也不必担心。
也就是说,我仍然建议你在开始上课之前问自己以下问题
- 我是否自信地知道微分法则?如果没有,可以去看看汗学院的微分学课程。
- 我知道什么是矩阵以及如何对矩阵进行运算(转置、算术、点积)吗?如果没有,查看一下可汗学院的线性代数播放列表。
下图是课堂上遇到的一些数学问题。你对这样的符号感到舒服吗?如果没有,使用上面的链接给自己一个快速复习可能是个好主意。
期待什么
要学习机器学习,通常需要知道
- 可以用机器学习解决的不同类型的问题。
- 解决不同问题的不同类型的算法。
- 每种算法在不同数据集上的优缺点。
- 支撑每个算法的数学和假设。
- 机器学习的权衡(偏差-方差权衡)
- 机器学习的最佳实践。
- 机器学习算法的应用。
为了涵盖这些概念,吴恩达的课程被分成由算法组织的章节。每个类都是有逻辑的:它首先向读者提供算法的简要介绍和它在现实世界中应用的突出例子,从而为读者做好准备。然后,它通过令人信服的图形解释建立读者对算法的直觉。这种直觉减少了理解算法数学的摩擦,这在课程中广泛涉及,但并不过分。
讲座结束后,你可以用小测验来测试你的理解程度。为了内化你的学习,你也将有机会使用基本原理在 Matlab 中从头实现算法。
你将在这堂课上学到的东西
该课程提供了对机器学习前景的广泛鸟瞰视角。这是本课程涵盖的概念的思维导图。
优秀的书籍伴侣
虽然吴恩达的课程没有官方教科书,但我发现当我有疑问时,查阅教科书很有帮助。为此,我推荐教材统计学习入门,这本书也可以在网上免费获得。这本书提供了清晰的解释和插图,以增强你对机器学习算法的数学直觉。一个警告是它使用 R 作为主要的教学语言。
取得进步的技巧和诀窍
- 提问
长时间停留在同一个地方真的很容易。Coursera 为像您这样的学习者提供了一个提问的论坛。如果你确实需要帮助,请随时联系我,我会尽我所能帮助你。
- 慢慢来
本课程涵盖的概念绝不简单。这门课进展缓慢是很自然的,所以一定要慢慢来。
- 小休
当您对某个代码块尝试了足够长的时间,却没有得到想要的输出时,也许是时候后退一步,休息一下了。
- 沿途做笔记。
我发现在纸上做笔记和编码非常有帮助,因为我可以通过绘制图表来可视化概念。我还发现,在我的电脑上实现代码之前,先把代码写在纸上很有启发性,因为这有助于我形成自己的想法。
我发现一路上做笔记非常有帮助。图片作者。
如果你相信,我强烈建议你今天就开始,今天就试一试。
这门课结束后去哪里
恭喜你!现在你已经完成了课程,你渴望更多的知识,你已经有了什么是机器学习及其数学基础的良好基础,你准备好了更多。以下是我对你可以追求什么的一些建议。
- 重温其他数据科学技能 (SQL、python 和 R)
- 创建有趣的项目来展示你的新技能。
- 参加统计学和概率的课程。
- 从 Coursera 上的 deeplearning.ai 上深度学习的课。
- 拿本课的进阶版 CS229 机器学习。这需要(本科生/研究生)对线性代数、统计和概率有深入的了解。
如果你有兴趣成为一名数据科学家…
这是一个关于如何在 2020 年学习数据科学的四部分系列。下面可以参考一下。
- 第 1 部分—使用 SQL、Python 和 R 进行数据处理
- 第 2 部分—数学、概率和统计(即将推出)
- 第 3 部分—计算机科学基础(即将推出)
- 第 4 部分—机器学习(你来了!)
- 第 5 部分—您的个人数据科学顶点项目(即将推出)
结论
作为一个对机器学习一无所知的学习者,在我上了这门课之后,我感到了难以置信的希望。它为我学习其他机器学习和数据科学概念提供了很好的基础。如果你坚持下去,我相信你很快就能完成这门课程,并有同样的感觉。
祝你的学习之旅一切顺利!如有任何建议或问题,请随时通过 LinkedIn 联系我。
www.linkedin.com](https://www.linkedin.com/in/travistang)
结论
[1] 米切尔,汤姆 (1997)。机器学习 。纽约:麦格劳·希尔。ISBN0–07–042807–7。OCLC36417892。
【2】罗素,斯图亚特 j .;彼得·诺维格(2009 年)。 人工智能:一种现代方法 (第三版。).新泽西州上马鞍河:普伦蒂斯霍尔。国际标准书号 978–0–13–604259–4。
[3]达尔,V. (2013 年)。《数据科学与预测》。ACM 的通讯。56(12):64–73。doi:10.1145/2500499。S2CID6107147。于 2014 年 11 月 9 日从原件存档。检索于 2015 年 9 月 2 日。