DAL 今日职位讨论快报 118
#18 2018-10-08
今天分享的职位是一个 Data Scientist 的岗位,很特别,它是一个 contractor 的 position,之前我们小群里同学提出来想让 Jason 老师分析一下,所以我们今天安排了这次职位分析。
职位介绍:
Data Scientist | Pleasanton, CA | Long Term
Data scientist with excellent python skills
Junior data scientists with at least 2+ years’ experience writing codes in python.
must have the onsite interview for 3 case interviews.
must bring own laptop.
must have fully installed python library, have good python knowledge and business sense to answer the questions
must have at least 1 year of industrial experience。
背景介绍:
这个工作本身是一个 contractor 的工作。在美国这边大概分为,contractor 和 full-time 两种工作。这个工作的 title 是数据科学家。但其实我们从 JD 里面看不到太多的信息,所以我们待会会从怎么去申请这个职位来给大家具体分析。但首先,让我们来了解一下 contractor 这种 position。其实美国的求职市场和中国的求职市场是完全不一样的,可能在国内更多地说大学毕业以后,找一份很稳定的工作然后长期做下去。在美国这边,其实是不太一样的。关于 full-time 员工,有很多的好处,比较稳定,有固定的工资,有社保,有医保;但是其实并不会有太长 (5年 10年 20年)的合同,一般是 ongoing 的合同,没有固定的结束时间。关于 contractor,一般会出现在以下几个工作职位中,比如 软件工程师,数据分析师,会计。为什么他们需要临时工?因为他们可能是处在一个 project 间关于具体 topic 的转接。说说 contractor 的好处与坏处。好处的话,比较自由,公司方面的开销比较小不会为你付太多的保险类的钱,所以相对而言你更自由。坏处是,可能, contractor 在工作中压力会更大一点,相比于 full-time 的话,contractor 的培训会少一点。另一个坏处是身份上的问题,对于 opt 其实是没什么问题的,但是对于 h1b 的身份就相对比较麻烦。但其实现在 contractor 通常很多留学生是以另一种形式来做,一个 hire 你的 staffing 公司帮你去解决身份问题,然后他们会把你分配到不同的 contractor 的岗位去做相应的工作。
今天这个岗位,JD 已经很明确地说了是一个合同的岗位,是有大概的时间的 range 的。同学们肯定最好奇的问题是关于自己身份的疑惑,我们到底能不能去申请。首先,我们肯定要说的是,full time 肯定是首选,但是在你有 opt / opt-extension 的情况,大胆去申请 contractor,不要放弃任何一个机会。或者你完全可以去找一个 staffing 的公司去帮你解决身份上的问题。
职位分析:
简历怎么修改呢?这个公司是一个创业公司,用人比较急,然后我们看到他们对 python 的要求特别高,所以你有 python 相关的经验一定要仔细把它写好。然后在 JD 里面,他提到了一个面试的方法,我们这里要重点提一下。我们先来介绍一下几个常见的面试方法:behavior interview,technology interview,case interview。关于 case interview,其实 case interview 是想看到什么,是想看到你根据他给的固定场景能不能得出一些他们想听到的结论,或者说去展示你的思维方式和方法。比如,我们之前给学生说的 facebook 的一个很经典的 case interview 的题目,我们的用户日活率降低了百分之五,我们应该怎么分析?那首先,我们就要去做关于 data quality 的分析,看看数据本身有没有问题。然后去看看竞争对手的 competitor analysis。
这个 JD 里面主要提到的是 case study,这个其实我们行话叫做 data challenge。这个是希望我们来面试的 candidate 可以在 onsite 面试的过程中来直接写出他们给到的三个题目的数据处理与数据分析。这个很类似于软件工程师的白板面试。给大家具体介绍一些 data challenge 的具体步骤:首先是要给你一个 data set,然后他会给你一个很类似他们正常工作中可能会遇到的一个问题。你要去 fully understand 这个 data,然后你要去搞清楚他们的 business process。之后你要去做一些 exploring data,就是我们常说的 DEP(data exploring processing),去看数据的各个特征。然后你要去做 feature engineering,根据这些特征去分类产生结论。接下来你们就要通过机器学习去研究出这些购买的的 user 都有什么特别的 user behavior。之后你可能还有一个 validation 的过程,去做一个校验。最后,你还会需要做一个 data visualization 的过程,让你的老板去看到你最终的结论是什么样的。在这个过程中,你需要有以下几个展示的方式:1. Presentation 2. Clear comments in Code 3. Report about the project.
比如说给你一个游戏数据集,后台每当 user 开始玩这个游戏的时候就会产生一个 log,这样就有一个有效的数据集,给了你以后,他的问题可能就是,如何提升 IAP (In App Purchase)?然后你首先要去了解这些 data,具体的 structure 是什么样的?然后你要去了解他们的 business process,怎么去 get 这个 IAP。接下来你就要去研究这些数据,他们的中位数啊,离散值啊,等等都是什么样的。之后你就要去做 feature engineering,看看这些数据都是有什么规律的?用户在购买的时候都有哪些习惯,之后我们就可以推送给 marketing 和 sales department 去做具体有效的推广和推销。之后就是按照我们前面说的方法去做一个最后的 validation,visualization 和 presentation。
在这个面试的过程中可能还会出现一个“公式推导”的面试方法,比如在 machine learning 中希望你去做关于 SVM 的公式推导,但是在这个工作岗位中并没有提到,说明这个用人单位是非常着急需要一个可以迅速上手的人,不想通过非常冗长和复杂的面试去过多过细地筛选,而是希望可以直接 hire 到一个可以迅速去帮他们解决相应问题的人。
Q & A
Q:关于 Feature Engineering
A: feature engineering 在机器学习中,我们不会用 raw data 去做这个训练。我们要去把一些处理过的 raw data 拿来做这个机器学习。那就要去设计一些 feature,其实就是在 raw data 的基础上去做一些 computation。比如,我们刚刚那个例子,number of actions 就可以是一个 feature,我们通过看他每个小时或者每天的一个 number of action,我们就能知道用户的活跃度。这样不仅可以知道一个 quantity 还能知道一些 frequency。除此之外,FE 还有一个很重要的东西,就是 feature selection,有的时候两个 features,或者多个 features 之间是有很强的相关性的,所以有的时候我们要通过一些选择来选出一个最有代表性的 feature。在选择的时候,我们一来可以通过一个基本的分析去看谁更相关,二来是可以通过算法去看谁才是更合适的 feature。