Math, Probability, Statistics如何刷题?
数学,概率,统计为将来工作理论的基础,且面试必备环节。
主要知识点包括:
Random exampling随机选样、distribution等。统计方面的话,前面提到的分布就是统计的基础,概率的知识也是统计的基础,比如条件概率,联系概率等相关概念和知识点。统计方面最主要的就是实验设计。早期统计就是拿来给制药行业应用的,需要的知识点有A/B testing, 统计显著性的评估,p value,如何设计A/B testing等。在统计之上,有些是和机器学习重合的,比如线性回归,分类等。同学们可以根据自己知识点的欠缺来选择性的刷题。
Machine learning 如何刷题
机器学习是近些年才火起来的,主要有下面几个原因:
大数据提供了大量数据基础
分布式的机器学习提供了算力
算法方面的精进。
但是作为entry-level数据科学家,主要应该掌握包括统计里的线性回归,decision tree,SVM,基于basin的classification,聚类,以及机器学习中使用到的知识,例如降维算法等。
理论上来说,ML有三种考法,第一种讲解算法基本原理,第二种讲解算法的本身,第三种给一个真正的问题,让你使用机器学习方法来解 法由深度优先改为广度优先会带来什么后果。
除此之外,把关于data challenge的内容刷一遍对于机器学习也有很大提升。
需要刷算法题吗?如何刷
编程为数据科学家求职的必备技能。为什么大数据在近10年发展十分迅速,其实统计模型以及概率东西存在很长时间了,是因为分布式机器使得大数据成为了一种可能。
因此,想要处理大数据,编程就成为了必不可少的技能。一个程序员编程的好坏最核心的内容就是对数据结构算法的理解以及应用。面试的时候可能不需要过多的工作经验,只需要会使用Python以及SQL就足够。但是在工作以后,如果想要在工作中有比较好的提升,沟通以及story telling技巧也是十分重要,需要让非技术人员理解编程的内容。
如果想要提升自己的编程能力, leetcode是众所周知的绝佳资源之一,到网站上面后,第一个需要做的是理解数据结构的原理,支持的方法,以及效率如何。了解这些原理之后,可以多尝试一些网站开始刷题,刷题难度从简单开始。如果基础薄弱,一开始刷题数量不需要过多,50-100道题目即可。但是如果想要从事数据工程师工作的话,那么刷题就要从200道题目起。Leetcode上面题目的数量一直在陆续增加,如果想要全部刷完,那么时间可能需要半年到一年。
因此,刷题时可以选择性的选择题目,不需要每一道题目都做一遍。面试官在面试时,不仅要考编程技巧,行业知识,还要对数据结构的基本理解。作为一个数据科学家,机器学习,分析,以及数据库技能的优先值可能要高过算法题目,首先需要搞定优先值较高的技能,再选择性刷题。同时还要根据自己工作岗位的title来选择刷题的数量。比如如果从事偏IT行业的工作,则需要多刷一点。反之就可以少刷一点。
SQL如何刷题
SQL刷题可以分为三个层次。
第一个层次为在w3网站上刷题,练习SQL基本语法,或者就是购买SQL官网的指南。这个层次需要把基本的编程东西概念做好。掌握比较高级的编程工具。同时如果是leetcode的付费用户,上面有40-50道可以刷的题目供大家考虑。
第二个层次就是在真正商业运用的场景下写出SQL。第二个层次需要注意一些比较小的细节,比如使用unique,是否需要去做重复项的考量。
第三个等级就是,在面试时,在面试者写完SQL后,大部分面试官会问,你觉得你写的SQL在performance上会有什么样的提高呢。面试官之所以问这种问题是为了拉开各个应征者的层次,会的话就加分,反之没有分。在最后评估时,分高的候选者被录取的机率也就随之提高。
Big Data会考吗?怎么刷题呢?
首先了解大数据的来源以及数据的挖掘——大数据从哪里来。在了解大数据的来源后,下一步需要注意的就是数据的清理与整合。最后一步就是数据的存储,例如SQL, NoSQL等。除了应用之外,还需要知道原理。在存储过后,还需要对数据进行计算。比如在过去半年什么商品卖的最好,价格如何调整等。大数据对于入门级的面试者来说,难度不会过高。一般情况下来说就是给予你一个文件来做建模。平常在学校可能只需要一层就足够,但是这种时候可能需要做2-3层。
做这一方面的题目需要有一定的基础,首先了解什么是分布式系统,然后利用分布式系统的思维方式去讨论。大数据需要多做小项目,培养自己分布式的思维方式。在实际情况中,我们平常碰到的大部分为数据库,数据放在那里,老板给你命题,自己选择需要什么数据或者不需要什么数据。在这种情况下,对大数据的挖掘是最基本的要求。