算法工程师-机器学习面试题总结(3)

目录

1.线性回归的基本思想是?

2.线性回归适用什么类型的问题?有哪些优缺点?

3.线性回归常用的损失函数有哪些?优化算法有哪些?各有什么优缺点?

4.什么是“广义线性模型”?

5.什么是最小二乘法?

6.逻辑回归相比于线性回归有什么异同?

7.逻辑回归和广义线性模型有何关系?

8.逻辑回归如何处理多标签分类?

9.为什么逻辑回归需要进行归一化或者取对数?

10.为什么逻辑回归把特征离散化之后效果会提升?

11.类别不平衡问题你是如何处理的?什么是过采样,什么是欠采样?举例说明

12.讲解L1和L2正则,它们都有什么作用,解释为什么L1比L2更容易产生稀疏解,对于存在线性相关的一组特征,L1正则如何选择特征?

13.逻辑回归为什么用交叉熵作为损失函数?

14.KNN建模流程是怎样的?优缺点是什么?

15.K近邻(KNN)算法中的k值如何选取?k值过大或过小会有什么影响?

1.线性回归的基本思想是?

线性回归是一种用于建立和预测变量之间线性关系的统计模型。其基本思想是假设自变量(输入)和因变量(输出)之间存在线性关系,通过建立一个线性方程来拟合观测数据,从而进行预测和推断。

线性回归的基本步骤如下:

1. 数据收集:收集包含自变量和因变量的观测数据。自变量是用于预测因变量的输入变量,而因变量是我们希望预测或解释的输出变量。

2. 模型假设:假设自变量和因变量之间存在线性关系,即可以通过一个线性方程来描述二者之间的关系。

3. 模型拟合:根据收集到的观测数据,通过最小化残差平方和的目标函数,估计出模型的参数(斜率和截距),以使得线性方程与观测数据之间的差异最小化。

4. 模型评估:对拟合的线性回归模型进行评估,主要包括检验残差的正态性、检验模型的显著性和拟合优度等。

5. 预测和推断:通过利用得到的线性回归模型,基于新的自变量值进行预测和推断,得到因变量的估计值。

总结来说,线性回归的基本思想是通过建立一个线性关系的模型来解释自变量对因变量的影响,通过拟合观测数据来获得模型的参数,并利用该模型进行预测和推断。

2.线性回归适用什么类型的问题?有哪些优缺点?

1. 预测问题:线性回归可以用于预测目标变量的数值。例如,预测房屋价格、销售量等连续型变量。

2. 关联分析:线性回归可以用于分析变量之间的关联关系。例如,分析广告投入与销售额之间的关系。

3. 趋势分析:线性回归可以用于分析变量随时间的变化趋势。例如,分析气温随季节的变化趋势。

优点:

1. 简单而直观:线性回归模型易于理解和解释,因为它基于线性假设,使得结果能够直观地解释。

2. 训练和推断效率高:线性回归模型具有计算效率高的优点,尤其在大规模数据集上表现良好。

3. 可解释性:线性回归模型可以提供变量之间的权重系数,从而揭示变量对目标变量的影响程度。

缺点:

1. 忽略非线性关系:线性回归假设因变量与自变量之间是线性关系,无法很好地捕捉数据中的非线性关系。

2. 对异常值敏感:线性回归对异常值敏感,异常值有可能对模型产生较大的影响。

3. 依赖于特征选择:线性回归对特征选择较为敏感,需要准确选择关键特征,以避免冗余和多重共线性问题。

4. 不适用于非独立的数据:线性回归对观测数据之间的独立性假设,在面对非独立数据时可能会产生不准确的结果。

总而言之,线性回归适用于一些简单的预测和关联分析问题,优点包括简单直观、高效和可解释性,但它也有一些局限性,如对非线性关系的处理较差、对异常值敏感等。

3.线性回归常用的损失函数有哪些?优化算法有哪些?各有什么优缺点?

1. 均方误差(Mean Squared Error,MSE):MSE是最常用的线性回归损失函数,它计算预测值与真实值之间的平均平方差。

2.根均方误差(Root Mean Squared Error,RMSE):将均方误差的平方根作为损失函数。

3. 平均绝对误差(Mean Absolute Error,MAE):MAE计算预测值与真实值之间的平均绝对误差。

4. Huber损失:Huber损失是介于MSE和MAE之间的一种损失函数,它在离群值的处理上比较鲁棒,平衡了对误差较小和较大样本的影响。

优化算法用于找到使损失函数最小化的模型参数,常见的优化算法包括

1. 梯度下降(Gradient Descent):梯度下降是最基本的优化算法之一,通过计算损失函数关于参数的梯度方向进行参数更新。优点是简单易懂,缺点是可能陷入局部最优解,并且需要选择合适的学习率。

2. 随机梯度下降(Stochastic Gradient Descent,SGD):SGD每次迭代只使用一个样本来计算梯度和更新参数,因此计算速度更快。缺点是更新的方向不一定是损失函数的最速下降方向,可能会引入更多的噪声。

3. 批量梯度下降(Batch Gradient Descent):与SGD相反,批量梯度下降每次迭代使用所有样本来计算梯度和更新参数。优点是收敛速度相对较快,缺点是运算成本较高。

4. L-BFGS:L-BFGS是一种拟牛顿优化算法,根据梯度和目标函数的二阶导数来调整模型参数。优点是收敛速度快,缺点是对于大规模数据和高维参数空间可能计算开销过大。

5. 坐标下降法(Coordinate Descent):每次迭代只优化一个参数,其他参数保持固定,循环遍历所有参数直到收敛。

6. 共轭梯度法(Conjugate Gradient):基于线性方程求解的方法,通过迭代的方式寻找精确的步长,收敛速度较快。

4.什么是“广义线性模型”?

广义线性模型(Generalized Linear Model,GLM)是一种统计学习方法,可以用于建立描述响应变量和预测变量之间关系的模型。与传统的线性回归模型相比,广义线性模型拓展了线性模型的适用范围,可以处理更广泛的数据类型和响应变量的分布特性。

在广义线性模型中,响应变量不再局限于连续的数值型数据,也可以是二元数据、计数数据、多分类数据等。同时,广义线性模型引入了称为“联系函数”(Link Function)的函数来建立预测变量和响应变量之间的关系。联系函数在将线性组合转换为响应变量上起到了关键作用。

广义线性模型的基本形式如下:

y = g(β₀ + β₁x₁ + β₂x₂ + ... + βₚxₚ)

其中,y是响应变量,x₁,x₂,...,xₚ是预测变量,g()是联系函数,β₀,β₁,β₂,...,βₚ是模型的参数。

对于不同的预测变量和响应变量的特性,可以选择不同的联系函数和概率分布族。常见的联系函数包括:恒等函数(identity function)、对数函数(logarithmic function)、逻辑函数(logistic function)、反正切函数(atan function)等。常见的概率分布族包括正态分布、伯努利分布、泊松分布、多项分布等。

通过选择适当的联系函数和概率分布族,广义线性模型可以适应不同类型的数据和应用场景,并且可以通过最大似然估计等方法来估计模型的参数。广义线性模型在统计学、机器学习和数据分析等领域中广泛应用,具有很强的灵活性和可解释性。

5.什么是最小二乘法?

最小二乘法是一种常用的参数估计方法,最小二乘法通过计算观测值与预测值之间的差异,并求得其平方和的最小值,来确定最佳的拟合参数。具体而言,最小二乘法通过最小化误差平方和,将观测数据与一个线性模型相拟合,并找到使得拟合效果最好的参数值。

具体步骤如下:

1. 假设我们有一个拟合模型,其中包含待估计的参数。例如,在线性回归中,模型可以表示为 y = β0 + β1x1 + β2x2 + ... + βnxn,其中 β0, β1, β2, ..., βn 表示待估计的系数,x1, x2, ..., xn 表示自变量,y 表示因变量。

2. 收集观测数据,包括自变量和对应的因变量。这些数据可以用来检验模型的拟合效果,以及用于最小二乘法的参数估计。

3. 使用观测数据计算模型的预测值。根据模型的形式和待估计的系数,计算预测的因变量值。

4. 计算观测数据与预测数据的误差。将观测数据中的因变量值与对应的预测值做差,得到每个观测数据点的误差。

5. 计算误差的平方和。将所有观测数据点的误差平方相加,得到误差的平方和。

6. 最小化误差的平方和。通过调整待估计的系数,使误差的平方和最小化。这可以通过最小二乘法的优化算法(如梯度下降)来实现。

7. 求解最小化误差的平方和的方程组。根据待估计的参数,求解使误差平方和最小化的方程组,得到最优的参数估计值。

8. 进行模型评估。使用估计的参数值更新模型,并进行拟合效果的评估,以确定模型的准确性和可信度。

最小二乘法的应用非常广泛,例如在线性回归中,它用于找到最佳拟合直线;在非线性回归中,它可用于找到最佳拟合曲线。此外,最小二乘法也常用于数据拟合、参数估计以及解决最优化问题等。

6.逻辑回归相比于线性回归有什么异同?

逻辑回归和线性回归都是常见的回归分析方法,但它们在模型的形式和应用场景上有一些异同之处。

相同之处:

1. 都是用于预测或建立一个连续因变量与一个或多个自变量之间的关系的统计模型。

2. 都可以使用最小二乘法来估计模型参数。

异同之处:

1. 模型形式:线性回归是一种直接预测连续数值的模型,它基于线性假设,使用直线或超平面来近似目标变量;而逻辑回归用于分类问题,它基于逻辑函数(如sigmoid函数)来将输入映射为概率值,并将概率值转化为类别标签。

2. 因变量类型:线性回归用于预测连续的实数型因变量,如预测房价、销售额等;逻辑回归用于预测二分类或多分类的离散型因变量,如预测一个人是否患病、是否购买某个产品等。

3. 模型输出:线性回归给出一个连续的数值作为预测结果,可以是负数、零或正数;逻辑回归给出的是一个概率值,通常在0和1之间,可以通过设定一个阈值将其转化为二分类或多分类的标签。

4. 模型评估:对于线性回归,可以使用均方误差(MSE)、R平方等指标来评估模型拟合程度;对于逻辑回归,通常使用准确率、精确率、召回率等指标来评估分类性能。

需要注意的是,逻辑回归虽然叫"回归",但实际上是一种分类算法。虽然逻辑回归和线性回归在形式和应用上有一些差异,但它们的基本原理都是利用最小二乘法来估计参数,且都属于统计学和机器学习中的重要方法。

7.逻辑回归和广义线性模型有何关系?

逻辑回归是广义线性模型(Generalized Linear Model,GLM)的一种特殊形式。广义线性模型是一种灵活的统计模型,将线性回归扩展到更广泛的应用领域,逻辑回归便是其中之一。

广义线性模型的一般形式为:

g(μ) = β0 + β1x1 + β2x2 + ... + βpxp

其中,g(·) 是连接函数(link function),μ 是期望的响应变量(即因变量),β0, β1, β2, ..., βp 是待估计的系数,x1, x2, ..., xp 是自变量。

逻辑回归是广义线性模型的一个特例,其连接函数是逻辑函数(logistic function)或称为sigmoid函数,形式为:

g(μ) = log(μ / (1 - μ))

在逻辑回归中,因变量是二分类或多分类的离散型变量,且用一个概率值来表示每个类别的发生概率。所以,逻辑回归使用逻辑函数将线性组合的结果映射到[0, 1]区间内的概率值,然后可以根据设定的阈值将概率转化为二分类或多分类的标签。

尽管逻辑回归是广义线性模型的特例,但广义线性模型还可以包括其他的连接函数和分布。通过选择不同的连接函数和分布,广义线性模型能够适应各种类型的响应变量,如连续型变量、二项分布、泊松分布等。

总结来说,逻辑回归是广义线性模型的一种特殊形式,它在分类问题中具有广泛的应用。广义线性模型提供了一种灵活的框架,可以根据不同的数据类型和分布选择合适的连接函数和处理方式。

8.逻辑回归如何处理多标签分类?

逻辑回归最常用于处理二分类问题,即将样本分为两个类别。但是,逻辑回归也可以进行多标签分类,即将样本分为多个不同的类别。

有两种常见的方法可以处理多标签分类问题:

1. 一对多(One-vs-Rest)方法:对于具有K个不同类别的问题,可以为每个类别训练一个二分类的逻辑回归模型。在每个模型中,将一个类别作为正例,将其余的类别作为负例。最终,对于一个新的样本,将其输入到所有的逻辑回归模型中进行预测,选择概率值最大的类别作为最终的标签。

2. 多项式逻辑回归(Multinomial Logistic Regression):多项式逻辑回归是一种扩展的逻辑回归方法,可以直接处理多标签分类问题。在多项式逻辑回归中,使用多个类别的概率分布的组合来建模。在这种方法中,将输入特征与所有类别之间建立一个线性模型,并使用一个softmax函数将结果转化为概率值。最终,选择概率最大的类别作为最终的标签。

9.为什么逻辑回归需要进行归一化或者取对数?

逻辑回归在进行预测时,常常需要对自变量进行某种预处理,如归一化或取对数变换。这是因为归一化或取对数能够带来以下几个好处:

1. 特征缩放:归一化能够将不同特征之间的数值范围进行统一,使得模型的训练过程更加稳定和准确。如果不进行归一化,数值范围较大的特征可能会对模型的学习过程产生较大影响,而数值范围较小的特征可能会被忽略。

2. 梯度下降的效率:逻辑回归常常使用梯度下降算法来优化模型参数。而梯度下降算法对于特征数值范围较大的情况可能收敛较慢,甚至可能无法收敛。通过归一化可以使得各个特征的尺度在一个比较小的范围内,提高梯度下降算法的效率。

3. 解决非线性关系:在一些情况下,逻辑回归可能需要解决自变量与因变量之间的非线性关系。通过取对数变换,可以将非线性的关系转化为线性的关系,使得模型更容易拟合。

10.为什么逻辑回归把特征离散化之后效果会提升?

在某些情况下,将特征进行离散化可以提升逻辑回归的效果。这主要是因为离散化能够处理以下几个方面的问题:

1. 非线性关系:逻辑回归是基于线性假设的模型,离散化可以将非线性关系转化为线性关系,从而更好地适应模型。某些特征可能存在与因变量之间的非线性关系,当进行离散化后,可以更容易地探索和建模这种关系。

2. 异常值和噪声:离散化可以一定程度上减少异常值和噪声的影响。当特征离散化之后,可以将异常值或噪声分到一个特定的离散值中,从而减小其对模型的影响。

3. 解释能力:离散化后的特征更易于解释,可以通过具体的分类值来理解特征对因变量的影响。这对于解释模型的结果和得出相应的策略和决策非常有用。

4. 处理缺失值:离散化可以有效处理特征中的缺失值。当存在缺失值时,可以将其作为另一个特定的离散值进行处理,并在模型中进行相应的处理。

需要注意的是,离散化也可能带来一些问题,比如可能损失一部分信息,或者引入过多的离散变量导致模型复杂度增加。因此,在使用离散化来提升逻辑回归效果时,需要综合考虑问题的特点、数据的分布以及业务需求,并进行实验验证。

11.类别不平衡问题你是如何处理的?什么是过采样,什么是欠采样?举例说明

在处理类别不平衡问题时,可以采取以下两种常见的方法:过采样和欠采样。

过采样(Oversampling)是指增加少数类样本的数量,使得少数类样本比例与多数类样本接近。常用的过采样方法包括复制样本、合成新样本等。举个例子,假设有一个二分类问题,其中正例(少数类)有100个样本,负例(多数类)有1000个样本。通过过采样,可以对正例进行复制或合成新样本,使得正例的样本数量增加到1000个,从而使得正例和负例的比例接近1:1。

欠采样(Undersampling)是指减少多数类样本的数量,使得多数类样本比例与少数类样本接近。常用的欠采样方法包括随机欠采样、聚类欠采样等。举个例子,假设有一个二分类问题,其中正例(少数类)有100个样本,负例(多数类)有1000个样本。通过欠采样,可以随机删除一部分负例样本,使得负例的样本数量减少到100个,从而使得正例和负例的比例接近1:1。

过采样和欠采样各有优缺点,需要根据具体情况选择使用。过采样可以增加少数类样本的信息量,使得模型更容易学习到少数类的特征;然而,在样本复制或合成过程中,可能会引入噪声或过拟合的风险。欠采样可以减少多数类样本的干扰,使得模型更注重少数类的特征;但是,欠采样可能会带来信息丢失的问题,可能无法充分利用多数类样本的信息。

在实际应用中,还可以结合过采样和欠采样方法,采用混合采样的策略,或者使用其他的类别不平衡处理方法,如阈值调整、代价敏感学习等,以根据具体情况获得更好的效果。

12.讲解L1和L2正则,它们都有什么作用,解释为什么L1比L2更容易产生稀疏解,对于存在线性相关的一组特征,L1正则如何选择特征?

L1和L2正则化是常用的正则化方法,可以应用于机器学习和统计学习中的模型训练过程中。它们的作用是控制模型的复杂度,防止过拟合,并在模型中引入稀疏性。

L1正则化(也称为L1范数或Lasso正则化)通过在损失函数中添加参数的绝对值之和,惩罚模型的复杂度。L1正则化鼓励模型参数稀疏化,即将一些特征的权重置为0,从而使得模型可以自动选择最重要的特征进行预测。

相比之下,L2正则化(也称为L2范数或Ridge正则化)通过在损失函数中添加参数的平方和,惩罚模型的复杂度。L2正则化倾向于使所有特征的权重尽量都保留在模型中,但通过对高权重进行衰减,减少过拟合的风险。

L1正则化比L2正则化更容易产生稀疏解的原因在于L1范数具有稀疏性推动因素。当求解L1正则化问题时,优化过程中发生了目标函数与L1正则项交叉的情况,这会导致一些较小的特征权重被惩罚为0,从而被剔除出模型。换句话说,L1正则化具有特征选择的效果,可以自动发现和选择与目标变量最相关的特征。

对于存在线性相关的一组特征,L1正则化可能会选择其中一个特征并将其权重置为较大值,将其他具有相似影响的特征的权重置为0。这是因为L1范数的几何形状是棱角状的,容易遇到向量空间的尖点,从而选择其中一个特征。这种特性使得L1正则化在特征选择和模型解释方面具有优势。

总的来说,L1正则化和L2正则化都可以控制模型的复杂度和防止过拟合,但L1正则化对于产生稀疏解、特征选择和处理具有线性相关的特征方面更具优势。

13.逻辑回归为什么用交叉熵作为损失函数?

逻辑回归使用交叉熵作为损失函数是由于其在最大似然估计下的合理性。

在逻辑回归中,我们使用sigmoid函数将模型的线性输出转化为概率值,表示为h(x) = 1 / (1 + exp(-z)),其中z是模型的线性输出(即z = w^T * x)。我们希望通过训练过程来调整模型的参数w,使得预测概率h(x)能够很好地拟合真实标签y。

在最大似然估计中,我们希望找到一组参数w,使得给定样本集下,模型的预测概率能够最大程度地接近真实标签的概率。而针对每个样本,模型的预测概率可以表示为二分类情况下的伯努利分布,即P(y=1|x; w) = h(x),P(y=0|x; w) = 1 - h(x)。因此,样本集的似然函数可以表示为:

L(w) = ∏[h(x)^y * (1 - h(x))^(1-y)]

为了简化计算,我们通常取对数变换,转化为对数似然函数:

l(w) = ∑[y * log(h(x)) + (1-y) * log(1 - h(x))]

而在最大化对数似然函数(最小化损失函数)的过程中,等价于最小化交叉熵损失函数的负数形式:

L(w) = -(1/m) * ∑[y * log(h(x)) + (1-y) * log(1 - h(x))]

因此,逻辑回归使用交叉熵作为损失函数是为了使模型在训练过程中最大程度地逼近真实标签的概率。通过最小化交叉熵损失函数,可以优化模型的参数,使得预测的概率分布与真实标签的概率分布尽可能地接近,从而提高模型的性能。同时,交叉熵损失函数在数学上也具备良好的性质,便于求解和优化。

14.KNN建模流程是怎样的?优缺点是什么?

     1. KNN建立过程:

    a. 给定测试样本,计算它与训练集中的每个样本的距离;

    b. 找到距离最近的K个训练样本,作为测试样本的K近邻;

    c. 根据K近邻归属的类别来确定该测试样本的类别(少数服从多数)。

  2. 类别的判定

    a. 投票决定,少数服从多数,取样本数最对的类别最为测试样本的类别

    b. 加权投票法:依据计算得出距离的函数作为权重,对不同近邻的投票进行加权;一般函数取距离平方的倒数

  3. 应用:即能做分类又能做回归, 还能用来做数据预处理的缺失值填充

  4. 原理:

  分类问题进行表决投票;

  回归问题使用加权平均或者直接平均的方法。

  knn算法中我们最需要关注两个问题:k值的选择和距离的计算。kNN中的k是一个超参数,需要我们进行指定,一般情况下这个k和数据有很大关系,都是交叉验证进行选择,但是建议使用交叉验证的时候,k∈[2,20],使用交叉验证得到一个很好的k值。

  k值还可以表示我们的模型复杂度,当k值越小意味着模型复杂度变大,更容易过拟合,(用极少数的样例来绝对这个预测的结果,很容易产生偏见,这就是过拟合)。我们有这样一句话,k值越大学习的估计误差越小,但是学习的近似误差就会增大。

  近似误差:可以理解为对现有训练集的训练误差,太小更容易过拟合。

  估计误差:可以理解为对测试集的测试误差。

优点

(1)理论成熟简单,易于理解及算法实现;

(2) 可以用于多分类分类、回归等;

缺点

(1)需要计算待分类样本与所有已知样本的距离,计算量大;

(2)样本容量小或样本分布不均衡时,容易分类错误,后者可通过施加距离权重进行改善;

15.K近邻(KNN)算法中的k值如何选取?k值过大或过小会有什么影响?

k值是指用于决策的邻居数目。选择合适的k值对于KNN算法的性能至关重要。通常的做法是通过交叉验证来选择最优的k值。

选取k值过大或过小都可能会对KNN算法的性能产生影响:

1. k值过小:当k值较小时,模型会更加复杂,容易受到噪声数据的干扰。这可能导致过拟合,使得模型过于敏感,忽略了数据的整体趋势,容易受到离群点的影响。

2. k值过大:当k值较大时,模型变得简单,容易受到数据中的噪声和不相关特征的干扰。这可能导致欠拟合,使得模型过于保守,丧失了对局部细节的判断能力。

因此,选择合适的k值需要在准确性和复杂性之间进行权衡。一般来说,较小的k值适用于复杂数据集,而较大的k值适用于简单数据集。此外,还可以通过网格搜索等方法在交叉验证过程中尝试不同的k值,找到在给定数据集上表现最佳的k值。
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学术菜鸟小晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值