本文转载自公众号“读芯术”(ID:AI_Discovery)。
我们生活在充满数据的世界里,人类每天制造超过2.5兆字节的数据,仅过去两年产生的数据就占全世界数据的90%,基于此,数据相关的领域也应运而生。这样的大趋势,引发了许多人对于学习数据科学的热情。
但攻克这一领域并不容易,你可能会遇到千奇百怪的问题。即使有许多知名大学的优秀教授开设了令人惊叹的课程,你仍然会犯错误。刚开始的时候,我对很多事情一无所知,也走过不少弯路。现在,我整理了一些人们在开始在线学习数据科学之前就必须要了解的要点。
在线课程不会传授领域知识
解决任何问题之前,你都需要有一定的领域知识。恰当的领域知识将帮助你更好地理解数据集的特性,并帮助你构建分析数据集的方法,从而从数据集中得出结论。大多数年轻人忽视了这一点。
领域知识是最容易被忽视的技能,但对初学者来说却是至关重要的。人们应该意识到,他们有必要花时间了解该领域和他们想解决的问题。领域知识是解决问题的基础。
了解数据集
在忙着寻找丢失的值或开始清理数据之前,请正确查看数据集并尝试理解它。可以使用pandas库中的describe()方法来提取关于数据的更多信息,比如平均值、标准差、四分位数。从数据集中取任何特定的例子,并使用特性来理解它。
不要急于创建机器学习模型
许多初学者在预处理数据之前直接应用ML算法。所有人都可以写两到三行代码来训练算法并预测结果,而数据科学家则会先花费80%的时间准备和管理数据,寻找离群值和相关性,以及填充缺失的值并了解哪个特性影响最大。
例如,如果你想解决一个分类问题,那么就要检查类的不平衡。通俗来说,如果类不包含相同数量的示例,那么数据集就是不平衡。再如,在一个二进制分类任务中,类A占数据总数的99%,类B占数据总数的1%。数据不平衡可能导致所谓的过度拟合。
花时间准备和管理数据及进行预处理是非常有必要的。
图源:unsplash
不要自欺欺人
做作业或测验时,不要抄袭网络资源。不必急于完成任务,慢慢来,作业和测验只是手段,学会如何解决问题才是目的,你不能不仅仅是为了拿到证书。我学到的大部分东西都是在遇到问题时学到的。
在完成分配任务之前,理解好已编写的代码
对于许多初学者来说,只回顾近一周所学并将其应用到数据中是很常见的事情。例如,如果一个学生正在学习支持向量机(分类算法之一)。在作业中,如果学生必须训练和测试模型,大多数学生只会完成这个任务,他们不会注意到之前编写的关于数据预处理的代码。
编码和数学的背景知识非常有益
有人认为学习一些数据科学课程不需要编程,我不同意这一点,编程方面的基本知识有助于更好地学习。
也许之后会教Python / R,但如果你正在学习一门课程,建议你在HackerRank、HackerEarth等平台解决问题,以在学习一个特定的语言中获得更多的经验,这样以后如果你使用类似matplotlib、NumPy这样的库,就可以随意编写代码。
不懂基础数学也不用担心,YouTube上有很好的学习资源。如果你想学习微积分,推荐学习3Blue1Brown的微积分、线性代数和统计学的Stat Quest。对于那些希望从数学开始学习数据科学的初学者来说,这都是不错的选择。
图源:unsplash
随意提问,不要害羞
论坛是问问题的好平台,大胆提出你的疑问,不要有丝毫疑虑。在这里,没有人会因为问问题而感到尴尬。正如爱因斯坦所说:不停质疑至关重要。好奇心的存在有它自己的道理。
如果不理解算法,那么就从头开始实现它
如果你在理解某个算法方面有问题,那么最好的方法是自己编写这个算法。在这个过程中,你会了解它并理解scikit-learn这类的库的运作方式。
不要满足于ML算法的初始结果
你可以通过调整各种算法的值来改进模型。不要满足于模型的初始结果,要经常使用超参数调优来优化结果。你可以改变许多算法的超参数值,比如K最近邻算法可以改变可能改善结果的邻值的数量。
完成在线课程不是终点,而是起点。在线课程将帮助你建立牢固的基础,但你必须不断学习,不断寻找各种数据集并实践,实践是做好所有工作的关键。你要继续浏览各种博客文章、笔记、视频、研究论文来了解更多知识,永远不要把自己限制在什么事情上。
图源:unsplash
作为一名数据科学家,你需要不断学习新技术,追寻永无止境。