数据科学是一个跨学科领域,它挖掘原始数据,对其进行分析,并提出用于从中提取有价值的见解的模式。统计学、计算机科学、机器学习、深度学习、数据分析、数据可视化和各种其他技术构成了数据科学的核心基础。
多年来,由于数据的重要性,数据科学获得了广泛的重要性。数据被认为是未来的新石油,如果分析和利用得当,可以证明对利益相关者非常有益。不仅如此,数据科学工程师还可以接触到不同领域的工作,通过利用最优、最新的技术解决现实生活中的实际问题。最常见的实时应用程序比如美团、饿了么等应用程序中送餐最佳路经功能,方法是帮助派送员显示从餐厅到达目的地的最快路线。
数据科学还用于亚马逊、京东、天猫、拼多多等电子商务网站中的项目推荐系统,这些系统根据用户的搜索历史向用户推荐他们可以购买的商品。不仅仅是推荐系统,数据科学在欺诈检测应用程序中越来越受欢迎,以检测基于信用的金融应用程序中涉及的任何欺诈。一个成功的数据科学工程师可以解释数据,执行创新并激发创造力,同时解决有助于推动业务和战略目标的问题。
在本文中,我们将探讨最常见的数据科学技术面试问题,这些问题将对有抱负和经验丰富的数据科学工程师有所帮助。
由各种科学过程、算法、工具和机器学习技术组成的跨学科领域,致力于帮助找到常见模式并使用统计和数学分析从给定的原始输入数据中收集明智的见解,称为数据科学。
下图表示数据科学的生命周期。
数据分析不能一次对整个数据量进行,尤其是当它涉及更大的数据集时。获取一些可用于代表整个人口的数据样本,然后对其进行分析变得至关重要。在执行此操作时,非常有必要从真正代表整个数据集的庞大数据中仔细取出样本数据。
基于统计使用的抽样技术主要分为两类,它们是:
过拟合:该模型仅对样本训练数据表现良好。如果将任何新数据作为模型的输入,则无法提供任何结果。这些条件是由于模型中的低偏差和高方差而发生的。决策树更容易过度拟合。
欠拟合:在这里,模型非常简单,以至于它无法识别数据中的正确关系,因此即使在测试数据上它的表现也不好。这可能是由于高偏差和低方差而发生的。线性回归更容易出现欠拟合。
长格式数据 | 宽格式数据 |
|---|---|
在这里,每一行数据代表一个主题的一次性信息。每个主题的数据将位于不同/多行中。 | 在这里,受试者的重复回答是单独列的一部分。 |
可以通过将行视为组来识别数据。 | 通过将列视为组来识别数据。 |
此数据格式最常用于 R 分析,并在每次试验后写入日志文件。 | 此数据格式很少用于 R 分析,最常用于重复度量方差分析的统计包中。 |
特征向量是长度/量级等于 1 的列向量或单位向量。它们也被称为右向量。特征值是应用于特征向量的系数,特征向量为这些向量提供不同的长度或大小值。
矩阵可以分解为特征向量和特征值,此过程称为特征分解。然后,这些最终用于PCA(主成分分析)等机器学习方法,以从给定矩阵中收集有价值的见解。
p 值是假设原假设正确时,结果等于或大于在特定假设下获得的结果的概率的度量。这表示观察到的差异随机发生的概率。
重采样是一种用于对数据进行抽样以提高准确性和量化总体参数不确定性的方法。这样做是为了通过在数据集的不同模式上训练模型来确保模型足够好,以确保处理变化。在需要使用随机子集验证模型或在执行测试时替换数据点上的标签的情况下,也会执行此操作。
如果数据在不同类别中分布不均,则被称为高度不平衡。这些数据集会导致模型性能错误并导致不准确。
这两者之间没有太多区别,但需要注意的是,它们在不同的上下文中使用。平均值通常是指概率分布,而期望值是指涉及随机变量的上下文。
这种偏见是指逻辑错误,同时专注于在某些过程中幸存下来的方面,而忽略了那些由于缺乏突出性而不起作用的方面。这种偏见可能导致得出错误的结论。
混淆变量也称为混淆器。这些变量是一种外来变量,它们会影响自变量和因变量,导致这些变量之间存在虚假关联和数学关系,这些变量彼此关联但不随意相关。
选择偏差发生在研究人员必须决定研究哪个参与者的情况下。当参与者选择不是随机的时,选择偏差与这些研究有关。选择偏差也称为选择效应。选择偏差是由样本收集方法引起的。
下面解释四种类型的选择偏差:
让我们首先详细了解偏差和方差的含义:
偏差:当 ML 算法过度简化时,这是机器学习模型中的一种错误。当一个模型被训练时,它当时会做出简化的假设,以便它可以很容易地理解目标函数。如一些具有低偏差的算法是决策树、SVM 等。另一方面,如逻辑和线性回归算法则是具有高偏差的算法。
方差:方差也是一种误差。当 ML 算法变得高度复杂时,它会被引入 ML 模型。此模型还从用于训练的数据集中学习噪声。它在测试数据集上的表现进一步不佳。这可能会导致过度提升以及高灵敏度。
当模型的复杂性增加时,可以看到误差减少。这是由模型中较低的偏差引起的。但是,在我们到达称为最佳点的特定点之前,这并不总是发生。在此之后,如果我们继续增加模型的复杂性,它将过度提升,并且会遭受高方差的问题。我们可以借助图表来表示这种情况,如下所示:

偏差和方差的权衡: 因此,正如我们所知,偏差和方差都是机器学习模型中的错误,因此任何机器学习模型都具有低方差和低偏差非常重要,这样它才能获得良好的性能。
让我们看一些例子。K-最近邻算法是具有低偏差和高方差的算法的一个很好的例子。这种权衡可以通过增加k值轻松逆转,这反过来又导致邻居数量的增加。这反过来又导致偏差增加并减少方差。
另一个例子可以是支持向量机的算法。该算法还具有高方差,显然具有低偏差,我们可以通过增加参数 C 的值来扭转权衡。因此,增加 C 参数会增加偏差并减小方差。
因此,权衡很简单。如果我们增加偏差,方差就会减小,反之亦然。
它是一个有 2 行和 2 列的矩阵。它有 4 个二进制分类器提供给它的输出。它用于得出各种度量,如特异性、错误率、准确性、精度、灵敏度和召回率。

来自混淆矩阵的用于计算基本度量的公式为:
在这些公式中:
FP = 假阳性 FN = 假阴性 TP = 真阳性 RN = 真阴性
灵敏度是真阳性率的衡量标准。它也被称为召回。 特异性是真阴性率的量度。 精度是正预测值的度量。 F 分数是精度和召回率的调和平均值。
逻辑回归也称为 logit 模型。它是一种从变量的线性组合(称为预测变量)预测二进制结果的技术。
例如,假设我们想预测特定美国或其欧洲国家政治某领导人的选举结果。想知道这位领导人是否会赢得选举。因此,结果是二进制的,即赢(1)或输(0)。但是,输入是线性变量的组合,例如花在广告上的钱,领导人和所在党过去所做的工作等。
线性回归是一种使用预测变量 X 的分数预测变量 Y 的分数的技术。线性回归的一些缺点如下:
分类在机器学习中非常重要。了解观察属于哪个类非常重要。因此,我们在机器学习中拥有各种分类算法,如逻辑回归、支持向量机、决策树、朴素贝叶斯分类器等。一种接近分类层次结构顶部的分类技术是随机森林分类器。
因此,首先我们需要先了解决策树,然后才能理解随机森林分类器及其工作原理。因此,假设我们有一个如下所示的字符串:


因此,我们首先从颜色开始,因为我们只对红色观察感兴趣,我们将红色和绿色字符分开。之后,“No”分支,即具有所有绿色字符的分支没有进一步扩展,因为我们只需要红色下划线字符。因此,我们扩展了“是”分支,并根据字符是否带有下划线的事实再次获得了“是”和“否”分支。
所以,这就是我们绘制典型决策树的方式。然而,现实生活中的数据并不那么干净,这只是为了给出一个关于决策树工作的想法。现在让我们转到随机森林。
随机森林
它由大量作为集合运行的决策树组成。基本上,森林中的每棵树都给出了一个类预测,而投票数最大的那棵树成为我们模型的预测。例如,在下面的示例中,4 个决策树预测 1,2 个预测 0。因此,将考虑预测 1。

假设 Prob 是我们在 15 分钟内至少看到一颗流星的概率。
因此,概率 = 0.2
现在,我们在 15 分钟的持续时间内可能看不到任何流星的概率是 = 1 - 概率
1-0.2 = 0.8
我们可能一个小时看不到任何流星的概率是:
= (1 概率)(1 概率)(1 概率)*(1 概率)= 0.8 * 0.8 * 0.8 * 0.8 = (0.8)⁴≈ 0.40
因此,我们在一小时的时间间隔内看到一颗流星的概率是 = 1-0.4 = 0.6
因此,我们大约有60%的机会在一个小时内看到流星。
深度学习是机器学习的一种范式。在深度学习中,为了从数据中提取高特征,涉及多层处理。神经网络的设计方式是试图模拟人脑。
近年来,深度学习表现出令人难以置信的性能,因为它与人脑有很大的相似之处。
机器学习和深度学习之间的区别在于,深度学习是机器学习的一种范式或一部分,其灵感来自人脑的结构和功能,称为人工神经网络。了解更多。
梯度: 梯度是属性的度量,该属性相对于输入的微小变化发生了多大的变化。换句话说,我们可以说它是相对于误差变化的权重变化的度量。梯度可以在数学上表示为函数的斜率。

梯度下降: 梯度下降是一种最小化算法,可最小化激活函数。好吧,它可以最小化提供给它的任何功能,但它通常只提供激活功能。
梯度下降,顾名思义,意味着下降或某物的减少。梯度下降的类比通常被视为一个人爬下山/山。以下是描述梯度下降含义的等式:
因此,如果一个人正在爬下山坡,那么登山者必须到达的下一个位置在这个等式中用“b”表示。然后,有一个减号,因为它表示最小化(因为梯度下降是一种最小化算法)。伽马称为等待因子,剩余的项即梯度项本身显示最陡的下降方向。
RMSE:RMSE 代表 均方根误差。在线性回归模型中,RMSE 用于测试机器学习模型的性能。它用于评估分布在最佳拟合线周围的数据。因此,简而言之,它用于测量残差的偏差。
RMSE 使用以下公式计算:

MSE:均方误差用于查找线与实际数据的接近程度。因此,我们对数据点与线的距离进行差值,并且差值是平方的。这是针对所有数据点完成的,并且提交平方差除以数据点总数得到均方误差(MSE)。
那么,如果我们取 N 个数据点的平方差并将总和除以 N,这意味着什么?是的,它表示数据点与线的平方差的平均值,即实际值和预测值之间的平方差的平均值。查找MSE的公式如下:

因此,RMSE是MSE的平方根。

在上图中,我们可以看到细线标记了从分类器到最近数据点(变暗的数据点)的距离。这些称为支持向量。因此,我们可以将支持向量定义为最接近(最接近)超平面的数据点或向量。它们会影响超平面的位置。由于它们支持超平面,因此它们被称为支持向量。
在这类问题中,我们首先需要询问我们必须训练什么 ML 模型。之后,这取决于我们是否必须训练基于神经网络或 SVM 的模型。
神经网络的步骤如下:
SVM 的步骤如下:
现在,如果您在项目中或在机器学习/数据科学中遇到过此类问题,您可以描述情况。
在人脑中,存在不同的神经元。这些神经元组合并执行各种任务。深度学习中的神经网络试图模仿人脑神经元。神经网络从数据中学习模式,并利用从各种模式中获得的知识来预测新数据的输出,而无需任何人工帮助。
感知器是最简单的神经网络,它包含一个执行 2 个功能的神经元。第一个函数是执行所有输入的加权和,第二个函数是激活函数。

还有其他一些更复杂的神经网络。此类网络由以下三层组成:
神经网络图像示例如下所示:

这种方法可以用葡萄酒卖家的著名例子来理解。假设有一个葡萄酒卖家拥有自己的商店。这位葡萄酒销售商从经销商那里购买葡萄酒,经销商以低成本向他出售葡萄酒,以便他可以以高成本将葡萄酒出售给客户。现在,让我们假设他购买葡萄酒的经销商正在向他出售假酒。他们这样做是因为假酒的成本比原酒低得多,而假酒和真酒对普通消费者(在这种情况下是客户)来说是无法区分的。店主有一些葡萄酒专家的朋友,他每次都会把他的葡萄酒寄给他们,然后再把库存放在他的商店里出售。所以,他的朋友,葡萄酒专家,给他反馈说葡萄酒可能是假的。由于葡萄酒销售商长期以来一直在从同一经销商那里购买葡萄酒,他希望在向经销商投诉之前确保他们的反馈是正确的。现在,让我们说经销商也从某个地方得到了一个提示,即葡萄酒卖家对他们持怀疑态度。
因此,在这种情况下,经销商会尽力出售假酒,而葡萄酒卖家会尽力识别假酒。让我们借助下图来了解这一点:

从上图中可以清楚地看出,噪声矢量正在进入生成器(经销商),他生成假酒,鉴别器必须区分假酒和真酒。这是一个生成对抗网络(GAN)。
在 GAN 中,有 2 个主要组件,即。生成器和鉴别器。因此,生成器是一个不断产生图像的 CNN,鉴别器试图从假图像中识别真实图像。
计算图也称为“数据流图”。著名的深度学习库TensorFlow中的所有内容都基于计算图。Tensorflow中的计算图有一个节点网络,每个节点在其中运行。此图的节点表示操作,边缘表示张量。
自动编码器是学习网络。它们以尽可能小的误差将输入转换为输出。所以,基本上,这意味着我们想要的输出应该几乎等于或接近输入,如下所示。
在输入层和输出层之间添加多个层,并且输入层和输出层之间的层小于输入层。它收到了未标记的输入。对此输入进行编码,以便稍后重建输入。
P 值是一个介于 0 到 1 之间的数字。在统计学的假设检验中,p 值有助于告诉我们结果的强度。保留用于实验或试验的声明称为零假设。
Tensorflow是深度学习中一个非常著名的库。原因其实很简单。它提供了C++以及Python API,这使得它更容易工作。此外,与Keras和Torch(其他著名的深度学习库)相比,TensorFlow具有更快的编译速度。除此之外,Tenserflow还支持GPU和CPU计算设备。因此,这是一个重大的成功,是一个非常受欢迎的深度学习库。
根据数据集的大小,我们遵循以下方法:
mean = df.mean()df.fillna(mean)交叉验证是一种用于提高模型性能的统计技术。在这里,将使用训练数据集的不同样本对模型进行轮换训练和测试,以确保模型在未知数据中表现良好。训练数据将被分成不同的组,并针对这些组轮流运行和验证模型。
最常用的技术是:
尽管这两个术语用于建立任意两个随机变量之间的关系和依赖关系,但它们之间的区别如下:
在数学上,考虑 2 个随机变量,X 和 Y,其中均值表示为��和��分别和标准差由下式表示��和��分别和 E 表示期望值运算符,则:


因此,correlation(X,Y) = covariance(X,Y)/(covariance(X) covariance(Y))基于上述公式,我们可以推断出相关性是无量纲的,而协方差以由两个变量的单位相乘获得的单位表示。
通常,我们遵循以下步骤:
我们不想定期更新和更改算法,因为算法是解决任何问题的明确定义的步骤过程,如果步骤不断更新,则不能再说定义良好。此外,这给已经实现该算法的系统带来了很多问题,因为很难引入连续和定期的更改。因此,我们应该仅在以下任何一种情况下更新算法:
选择偏差发生在在选择数据集的一部分进行分析时没有专门实现随机化的情况下。这种偏差表明,所分析的样本并不代表要分析的整个总体。
在对任何数据运行算法时,为了收集适当的见解,非常有必要拥有仅包含相关信息的正确和干净的数据。脏数据通常会导致糟糕或不正确的见解和预测,这可能会产生破坏性影响。
例如,在启动任何大型活动来营销产品时,如果我们的数据分析告诉我们要定位实际上没有需求的产品,并且如果活动启动,它必然会失败。这导致公司收入的损失。这就是拥有适当和干净的数据的重要性所在。
在数据科学或机器学习算法中使用数据集时,碰巧并非所有变量对于构建模型都是必要和有用的。需要更智能的特征选择方法来避免冗余模型,以提高模型的效率。以下是功能选择中的三种主要方法:
要识别缺失值的范围,我们首先必须识别具有缺失值的变量。假设识别了一种模式。分析师现在应该专注于它们,因为它可能会带来有趣和有意义的见解。但是,如果没有识别模式,我们可以用中值或平均值替换缺失值,或者我们可以简单地忽略缺失值。
如果变量是分类变量,则为平均值、最小值和最大值分配默认值。缺失值将分配给默认值。如果我们有一个数据的分布,对于正态分布,我们给出平均值。
如果特定变量缺少 80% 的值,那么我们将删除该变量而不是处理缺失值。
是的!分类变量是可以分配给两个或多个类别的变量,没有明确的类别排序。有序变量类似于具有正确和明确的排序定义的分类变量。因此,如果变量是有序变量,则将分类值视为连续变量将产生更好的预测模型。
在确定哪种变量具有缺失值后,可以知道缺失值的影响。
ROC(受试者工作特性)曲线是不同阈值下假阳性率和真阳性率之间对比度的图形表示。该曲线用作敏感性和特异性之间权衡的代理。
ROC 曲线是通过绘制真阳性率(TPR 或灵敏度)值与假阳性率(FPR 或(1 特异性))来创建的,TPR 表示正确预测为阳性的观测值占总体阳性观测值的比例。FPR 表示错误预测的观测值占总体负面观测值的比例。
统计分析根据给定时间处理的变量数量进行分类。
单变量分析 | 双变量分析 | 多变量分析 |
|---|---|---|
此分析一次只解决一个变量。 | 该分析涉及给定时间两个变量的统计研究。 | 该分析涉及两个以上变量的统计分析并研究响应。 |
示例:基于区域的销售饼图。 | 示例:销售额和支出量分析研究的散点图。 | 示例:研究人类的社交媒体习惯与自尊之间的关系,这取决于年龄、花费的小时数、就业状况、关系状况等多种因素。 |
测试集用于测试或评估已训练模型的性能。它评估模型的预测能力。 验证集是训练集的一部分,用于选择参数以避免模型过度拟合。
核函数是广义的点积函数,用于计算高维特征空间中向量 xx 和 yy 的点积。核技巧法用于通过使用线性分类器来解决非线性问题,方法是将线性不可分的数据转换为更高维度的可分离数据。
箱形图和直方图都是用于显示数据分布以实现有效信息通信的可视化。 直方图是信息的条形图表示形式,表示数值变量值的频率,这些数值变量值可用于估计概率分布、变异和异常值。 箱线图用于传达数据分布的不同方面,其中看不到分布的形状,但仍然可以收集见解。这些对于同时比较多个图表很有用,因为与直方图相比,它们占用的空间更少。
有不同的技术可以纠正/平衡不平衡的数据。这可以通过增加少数民族阶级的样本数量来完成。对于具有极高数据点的类,可以减少样本数。以下是平衡数据的一些方法:
例如,请考虑下图来说明训练数据:
在这里,如果我们用得到“0”来衡量模型的准确性,那么模型的准确性将非常高 -> 99.9%,但模型不能保证任何有价值的信息。在这种情况下,我们可以应用上述不同的评估指标。
随机森林比多个决策树更好,因为随机森林更健壮、更准确,并且更不容易过度拟合,因为它是一种集成方法,可确保多个弱决策树强学习。
We know that,
Probability of finding atleast 1 shooting star in 15 min = P(sighting in 15min) = 30% = 0.3
Hence, Probability of not sighting any
shooting star in 15 min = 1-P(sighting in 15min)
= 1-0.3
= 0.7
Probability of not finding shooting star in 1 hour
= 0.7^4
= 0.1372
Probability of finding atleast 1
shooting star in 1 hour = 1-0.1372
= 0.8628所以概率是 0.8628 = 86.28%
我们知道有两种类型的硬币 - 公平和双头。因此,有两种可能的方法可以选择硬币。第一种是选择一枚公平的硬币,第二种是选择一枚有2个头的硬币。
P(选择公平硬币) = 999/1000 = 0.999 P(选择双头硬币) = 1/1000 = 0.001
使用贝叶斯规则,
P(selecting 10 heads in row) = P(selecting fair coin)* Getting 10 heads + P(selecting double headed coin)
P(selecting 10 heads in row) = P(A)+P(B)
P (A) = 0.999 * (1/2)^10
= 0.999 * (1/1024)
= 0.000976
P (B) = 0.001 * 1 = 0.001
P( A / (A + B) ) = 0.000976 / (0.000976 + 0.001) = 0.4939
P( B / (A + B)) = 0.001 / 0.001976
= 0.5061
P(selecting head in next toss) = P(A/A+B) * 0.5 + P(B/A+B) * 1
= 0.4939 * 0.5 + 0.5061
= 0.7531所以,答案是0.7531或75.3%。
在引用实例之前,让我们了解什么是误报和假阴性。
误报比漏报重要的一些示例包括:
在银行领域:贷款是银行的主要收入来源。但如果还款率不好,那么就有巨额损失而不是任何利润的风险。因此,向客户发放贷款是一场赌博,因为银行不能冒失去好客户的风险,但同时,他们又负担不起获得坏客户的费用。此案例是在误报和假阴性场景中同等重要的经典示例。
如果特征数大于观测值,则执行降维可改善 SVM(支持向量模型)。
线性回归是在以下假设下完成的:
极端违反上述假设会导致冗余结果。越不违反这些规定,估计值的方差或偏差越大。
正则化方法需要在机器学习模型中的不同参数中添加惩罚,以减少模型的自由度,以避免过度拟合的问题。 有多种正则化方法可用,例如线性模型正则化、Lasso/L1 正则化等。线性模型正则化对乘以预测变量的系数应用惩罚。Lasso/L1 正则化具有将一些系数缩小到零的特征,从而使其有资格从模型中删除。
为此,我们进行如下假设检验:
根据零假设,如果正面抛硬币的概率为50%,则硬币是无偏的。执行以下步骤:
1)抛硬币500次
2)计算假定值。
3)将p值与双尾检验的alpha ->结果进行比较(0.05/2 = 0.025)。可能出现以下两种情况:
p值> alpha:则零假设成立,硬币是无偏的。
p值< alpha:则拒绝原假设,硬币有偏。
降维过程包括减少数据集中的特征数量,以避免过度拟合并减少方差。此过程主要有 4 个优点:
调优策略用于查找正确的超参数集。超参数是在数据集上测试或训练模型之前固定且特定于模型的属性。网格搜索和随机搜索调整策略都是找到有效超参数的优化技术。
数据科学是一个非常广阔的领域,包括许多主题,如数据挖掘、数据分析、数据可视化、机器学习、深度学习,最重要的是,它建立在线性代数和统计分析等数学概念的基础上。由于成为一名优秀的专业数据科学工程师有很多先决条件,因此福利和好处非常大。如今,数据科学工程师已成为最受欢迎的工作角色。