数据科学是一个爆炸领域。根据这一点 linkedin. Workforce报告 ,2018年对数据科学家的需求取消了图表。
数据科学是一种多学科领域,使用科学方法,流程,算法和系统从结构化和非结构化数据中提取知识和见解。 (维基百科)
朝着人工智能和数据科学的民主化存在巨大的运动。这意味着它现在比以往任何时候都更容易接受相关技能,越来越多的人试图闯入这一领域。这是一个积极的趋势,但同时,它是一把双刃剑。它使得招聘数据科学家由于需求量高,新人进入该领域的恒定涌入而更加困难。
此数据科学招聘指南应帮助您为工作选择合适的人选。
数据科学家是否真正需要?
在我们潜入之前 如何 ,你真的需要回答 为什么 。数据科学家是否真的需要什么?随着数据科学的民主化,有多次工具和解决方案,可以用作黑匣子。 Google Vision API等工具和 云自动化 帮助您实现很多,而无需担心幕后发生的事情。
在您开始全面搜索数据科学家之前,了解您的需求,并搜索是否有一种方法来使用现有的API和工具来获得相同的(并且在某些情况下更好)结果而不是内部自定义解决方案。在这种情况下,古老的谚语“不要重新发明轮子”是非常相关的。
招聘数据科学家的挑战
雇用数据科学家的挑战之一是判断候选人是否有深入的知识,或者只是依赖于为您提供所有工作的黑盒库。这些工作,但如果候选人没有了解它是如何工作的,调试任何问题都将是一个问题。
其他挑战是了解您需要数据科学家的数据,因为数据科学的伞下存在许多问题(例如,大数据,自然语言处理(NLP),计算机视觉(CV)等)。招聘数据科学人才之前的第一步是定义您试图解决的问题的范围。
寻找候选人
显然,寻找候选人的传统方式仍然存在 - 如Linkedin或Stack溢出等各种网站上的口腔或发布 - 但是一个新的地方寻找良好的经验丰富的数据科学家 kaggle. .
kaggle.是一个关于数据科学家和ML从业者的在线社区。但是,这不是一种尺寸适合的所有类型的推荐。有候选人在卡格尔伟大,但可能对你的组织不对。翻转方也是如此,因为有候选人是伟大的数据科学家,但不是在kaggle上。
选择合适的候选人
您需要做的第一件事是定义数据科学家将为您解决的问题,然后尝试找到其流入的数据科学桶。如果您有语言任务,例如关键字分类或构建文本摘要,则需要一个NLP专家。如果任务更多地处理图片和照片,则需要计算机视觉专家。同样,如果工作涉及处理标记的数据(面部识别,垃圾邮件分类等),则需要有人在监督学习中具有专业知识。如果工作沿统计线更多,例如A / B测试或分析受控试验的结果,您需要在统计数据中具有强大技能的人(理想情况下,所有数据科学候选人都应该具有统计知识)。
该图提供了对数据科学的不同分支的良好概括:
公平,这是一个概括;实际上,线条是模糊的,有一些重叠,所以技能图表看起来像这样:
笔记: 一个良好的数据科学家应该了解所有这些技能和分支机构,并在其中一个或多个中具有专业知识。
数据科学家难以技巧和经验
任何数据科学家都应该具有统计分析知识,数据分析经验,以及对他们使用的算法背后的数学的真实理解。除此之外,Python,R,Matlab或Octave中的软件开发和编码体验是必须的。 Hadoop和Spark的经验总是很重要。
如果您想聘请NLP专家,候选人应该具有理想的是使用NLTK,Stanford NLP等的NLP软件包。
对于计算机愿景,他们应该有经验与CNN(卷积神经网络),OpenCV等合作。
还需要与随机林,决策树,天真贝叶斯,线性回归或SVM(支持向量机)等算法的体验。
如果工作更加在使用深度学习和神经网络的方面,他们应该拥有带有TensoRFlow,Pytorch,Theano,火炬,十四行列网,Keras和Mxnet的神经网络的经验。
询问正确的问题
1)监督和无监督机器学习有什么区别?
在 监督 机器学习,算法在标记的数据集上培训,任务是算法将找到新数据的标签。
在 无监督 学习,数据未标记。
2)您能否提供有监督和无人监督的ML算法的一些例子?
监督 :随机森林,决策树,天真贝叶斯,线性回归,SVM,KNN(K-CORMELBORS)。
无监督 :K-Mean Clustering,AutoEncoders,DBSCAN,分层群集。
3)什么是“爆炸梯度”?
梯度是在训练神经网络时计算的更新的幅度和方向。
一个 爆炸梯度 当渐变累积时发生的问题,并且该值变得如此大,即它导致溢出,梯度变为NaN,导致训练停止。
4)什么是混乱的矩阵?
混淆矩阵是一个2x2表,其中包含判断二进制分类器的性能的指标。
真正的积极 :属于正类的值,以及正确标记的分类器。
假阴性 :属于正类的值,但分类器标记为否定。
误报 :属于负类的值,但分类器标记为正数。
真正的否定 :属于否定类的值,以及正确标记的分类器。
5)ROC曲线是什么?它是如何工作的?
ROC曲线是一个图表,以各种阈值告诉我们真正的阳性率(TPR)和假阳性率(FPR)。它用于在TPR(敏感度)和FPR(1特异性)之间讲述权衡。
6)什么是决策树和它是如何工作的?
决策树是一种分类/回归算法,它使用树状结构来学习数据中的结构。
树中的每个节点代表一个测试。例如,一个节点可以是资产的输入是否低,并且根据答案(是或否),将输出决策树 风险不好 或者 良好的风险 .
7)随机林算法如何工作?
随机森林算法 是一个集合学习技术,它创造了多个决策树并在给定的数据上培训它们。最终预测是在分类问题的情况下由决策树预测的所有类别的模式,并且在回归问题的情况下所有值的平均值。
8)什么是过度装备和磨损?
过度装满 是一种现象,机器学习算法适合训练数据集,这会对训练集的高精度/低损耗引起,但在测试/验证集上的精度/高损失低。
施工 是一种现象,其中机器学习算法无法学习数据集的结构,因此这导致低精度/高损耗。
9)如何防止在决策树中过度装备?
有两种方法可以防止在决策树中过度装备: 预修剪 和 后修剪 .
在 预修剪 ,我们在成为一个完整的树之前停止决策树。
以下是节点的典型停止条件:
如果所有实例属于同一类,则停止。
如果所有属性值都相同,则停止。
在 后修剪 ,我们让决策树长到全长,然后以自下而上的方式修剪树的节点。
10)什么是正常分布?
数据通常以偏向左侧或右侧的偏差分布。当数据围绕平均值对称时,即更频繁地靠近均值和更少,所以从平均值开始,然后数据遵循a 正常分布 .
11)在深神经网络中的学习率太高,以及为什么?为什么?
如果学习率太高,损失可以跳过最小值。由于学习率决定了对网络权重的更新有多大,因此高学习率可能导致大更新,这反过来导致不同的行为。
12)在进行数据集时,您发现两个变量具有可忽略的Pearson相关值。这是否意味着两个变量彼此独立?为什么/为什么不呢?
相关性 被定义为两个变量之间的关系。正相关是当变量增加时,提示其他变量也增加。类似地,负相关是当变量减少但另一个增加。
Pearson相关性 是两个变量之间线性关系的衡量标准。仅仅因为两个变量接近零皮子相关并不意味着它们是独立的;这只是意味着它们之间没有线性关系,但仍然存在高阶的关系。
13)存在具有15个隐藏层的深神经网络,所有这些都具有相同的激活功能,即,Tanh。虽然培训,但您注意到培训损失保持不变。什么似乎是问题,最简单的变化是为了解决这个问题?
这是一个消失的渐变问题。神经网络通常采用基于梯度的培训方法和背部化培训。基本上,我们将每次重量发送比例的更新与相对于当前权重的误差的部分导数。有时,此更新变得如此之小,因为错误的恢复传播该权重不会改变,因此,训练损失保持不变。
要解决此问题,我们可以减少图层的数量并用Relu激活功能替换Tanh。
14)您正在培训一个简单的RNN网络,以预测句子中的新单词,但在训练的同时,准确性并不好。调试后,您发现RNN无法遵循超出几个单词的上下文。您使用哪种深入学习模型来解决这个问题?
A 经常性神经网络(RNN) 是一个深度神经网络,具有这样的结构,它们能够使用它们的内部状态来记住先前的输入。与前馈神经网络不同,在RNN中,前一步骤的输出被馈送为电流步骤。这形成了允许信息持续存在的循环。
这个数字说明了一个简单的RNN看起来像什么。
由于结构简单,RNNS遭受了问题,他们无法“记住”很多数据。使用LSTM(长短期内存)这样的东西可以帮助解决这个问题。
LSTMS是一种特殊的RNN,能够学习长期依赖性。
在LSTM中,存在一种明确的存储器状态,可以使用精心控制的栅极由LSTM单元更新。此内存状态允许LSTM保持更长时间的内存,因此,它可以遵循更长的序列的上下文。
15)在培训对二进制数据集进行培训期间,您发现算法的准确性很高,但在分析数据集时,您发现一个类的样本之间存在非常高的不平衡。例如,正样本占数据集的近99%。你还能相信准确度指标吗?如果没有,你应该使用什么度量?
在处理不平衡的数据集时,准确性不是最佳性能的度量,因为如果在这种情况下,算法将所有数据标记为正数,则仍将获得99%的答案,因此将具有99%的准确性。在这种情况下,使用平衡准确度,F1分数等度量。
精确 :真实阳性的价值/(真正的正面+误报)
记起 :真实阳性的价值/(真正的积极+假否定)
F1得分 :精度和召回的谐波平均值
平衡准确性 :数据集中每种类的平均召回
16)您正在进行群集问题,您有一个高维数据集。在培训数据上培训基本的K-means聚类算法时,您会注意到,无论您在缩小超级计量,群集都会在运行之间保持更改。为什么你认为这是这种情况?你能做些什么来克服这个问题?
K-Means聚类基于距离的指标工作。在高维数据集上工作的同时,通过维度的诅咒几乎无用的基于距离的度量,因为数据集中的所有数据点由于大量维度而似乎是等距。因此,在多个运行中,算法无法获得一致的结果。要解决此问题,您应该尝试应用PCA / T-SNE或一些其他维度减少算法。
17)在使用大量参数的优化问题上使用随机梯度下降时,您发现该算法正在振荡,并且无法实现全局最优。为什么是这样?你将如何解决它?
随机梯度下降(SGD)的最大缺点之一是所有参数的学习率都是相同的。因此,如果其中一个参数需要较小的学习率,并且一些其他参数需要更大的学习率,则SGD无法在这种情况下表现良好。
随着具有大量参数的优化问题,这个问题被放大,因为这种情况产生的可能性也很大。在这种情况下,您应该使用与ADAM Optimizer这样的自适应学习速率的算法。
注意事项
这些是招聘数据科学家的一些常见问题,您应该尽可能避免它们。
不要问“GOTCHA问题”。
Gotcha问题是否则很难解决,除非您知道特定技术。这些问题似乎很诱人,但自从知道或不了解这种问题的解决方案以来避开它们不是候选人知识的良好指标。
不要以面值占据项目。
项目很棒,但现在比以往任何时候都更容易在几行代码中进行机器学习。虽然这是一个很好的消息,但它也意味着一些候选人可能只是使用预建Python库而没有真正了解它的工作。您必须提出问题并使候选人解释他们所做的工作。
不要坚持认为候选人应该知道你的确切技术堆栈。
您应该探讨候选人才能愿意和学习新技术和方法的能力,而不是坚持他们知道你已经使用了什么。您可能会找到一个不了解您的技术堆栈的伟大候选人,但能够快速了解它。
包起来
组织中越来越多的数据为数据科学家,数据分析师和数据工程师创造了不断增长的需求。
随着机器学习的民主化,现在比以往任何时候都更容易获得这个领域的相关技能。但是在寻找团队的正确候选人时也存在挑战 - 仿佛在干草堆中寻找自己的针。
我们选择的提示和问题可以帮助为您的团队雇用正确的数据科学家;但是,它意味着您的整体招聘策略是唯一的,因为只有你知道你团队的正确候选人是谁。本指南旨在帮助您解决决策过程,并希望上述问题和提示将帮助您确定组织和项目的合适候选人。