机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)

一、线性回归

1.线性回归的假设函数

1698827597271.png

2.线性回归的损失函数(Loss Function)

MSE(均方误差)J=12m∑i=1m(yi′−yi)2

通过梯度下降法或正规方程(θ=(xTx)−1xTy)求出使得代价函数最小的参数

两者区别

梯度下降 正规方程
需要选择学习率 不需要
当特征数量较大时也能较好适用(O(kn^2)) 需要计算(X^TX^-1),如果特征数量n较大则运算代价大,通常n小于10000时可接受(O(n^3))
适用于各种类型的模型 只适用于线性模型

3.简述岭回归与Lasso回归以及使用场景

目的:解决线性回归出现过拟合的情况;解决在通过正规方程方法求解 θ 的过程中出现的 XTX不可逆的情况

本质:约束(限制)要优化的参数

这两种回归均通过在损失函数中引入正则化项来达到目的:

(L2) 岭回归损失函数 J(θ)=12m∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2

(L1) Lasso回归损失函数 J(θ)=12m∑i=1m(hθ(x(i))−y(i))2+λ∑j=1n|θj|

L1正则化容易得到稀疏矩阵

4.什么场景下用L1、L2正则化

L2正则化会使参数的绝对值变小,增强模型的稳定性(不会因为数据变化而产生很大的震荡);而L1正则化会使一些参数为0,可以实现特征稀疏,增强模型解释性。

5.什么是ElasticNet回归

综合了L1正则化项和L2正则化项

25e05cca0ab653c4b27b07c22dbc90c.png

6.ElasticNet回归的使用场景

使用Lasso回归太过(太多特征被稀疏为0),而岭回归正则化的不够(回归系数衰减太慢)的时候,可以考虑ElasticNet回归。

L1正则化和L2正则化分别是假设参数服从laplace分布和高斯分布。

线性回归中的残差服从均值为0的正态分布。

L2:权重衰减

7.线性回归要求因变量服从正态分布?(持保留态度)

假设线性回归的噪声服从均值为0的正态分布。 当噪声符合正态分布N(0, δ2 )时,因变量则符合正态分布N(ax(i)+b, δ2 ),其中预测函数y=ax(i)+b。这个结论可以由正态分布的概率密度函数得到。也就是说当噪声符合正态分布时,其因变量必然也符合正态分布。

在用线性回归模型拟合数据之前,首先要求数据应符合或近似符合正态分布,否则得到的拟合函数不正确。

二、逻辑回归(Logistics Regression)

1.本质:极大似然估计

逻辑回归是用来做分类算法的。把线性回归的结果Y代入一个非线性变换的Sigmoid函数中,即可得到[0,1]之间取值范围的数S,S可以把它看成是一个概率值,如果设置概率阈值为0.5,那么S大于0.5可以看成是正样本,小于0.5看成是负样本,就可以进行分类。

2.激活函数:Sigmoid

3.损失函数:对数损失函数(log loss)

公式中的 y=1 表示的是真实值为1时用第一个公式, y=0 表示真实值为0时用第二个公式计算损失。

为什么要加上log函数呢?

当真实样本为1时,但h=0,那么log0=∞,即对模型最大的惩罚力度;当h=1时,那么log1=0,相当于没有惩罚,也就是没有损失,达到最优结果。把上面损失函数写成统一的形式:

4.代价函数:交叉熵(Cross Entropy):

最后按照梯度下降法,求解极小值点,得到想要的模型效果。

5.可以进行多分类吗?

可以 ,从二分类问题过度到多分类问题(one vs rest),思路步骤如下:

  1. 将类型class1看作正样本,其他类型全部看作负样本,可得到样本标记类型为该类型的概率p1。
  2. 然后再将另外类型class2看作正样本,其他类型全部看作负样本,同理得到p2。
  3. 以此循环,我们可以得到该待预测样本的标记类型分别为类型class i时的概率pi,最后取pi中最大的那个概率对应的样本标记类型作为待预测样本类型。


总之还是以二分类来依次划分,并求出最大概率结果。

6.逻辑回归优缺点

  • 能以概率的形式输出结果,而非只是0,1判定。
  • 可解释性强,可控度高,训练快。
  • 因为结果是概率,可以做ranking model(排序模型)。

  • 对模型中自变量多重共线性较为敏感。

7.逻辑回归有哪些应用

  • CTR预估/推荐系统的learning to rank/各种分类场景。
  • 某搜索引擎厂的广告CTR(点击率)预估基线版是LR。
  • 某电商搜索排序/广告CTR预估基线版是LR。
  • 某电商的购物搭配推荐用了大量LR。
  • 某现在一天广告赚1000w+的新闻app排序基线是LR。

8.逻辑回归为什么要对特征进行离散化。

  1. 非线性!逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;
  2. 速度快!稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
  3. 鲁棒性!离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄200岁”会给模型造成很大的干扰;
  4. 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
  5. 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

手推(后续补上)

若要求多分类,需要把sigmoid换成softmax

实战中,设置 α=[0.001,0.003,0.01,0.03,0.1,0.3,1,...]

损失函数、代价函数、目标函数

损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。

代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。对于目标函数来说在有约束条件下的最小化就是损失函数。

机器学习中的最优化方法

1.梯度下降法

优化思想:用当前位置负梯度方向作为搜索方向。

2.牛顿法

使用函数f(x)的泰勒级数的前几项来寻找f(x)的根

优:以本质上看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法更快。

缺:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hesssian矩阵的逆矩阵,计算较复杂。

3.拟牛顿法

本质思想:改善牛顿法内次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian(黑塞)矩阵的逆,从而简化运算的复杂度。

4.共轭梯度法

仅需利用一阶导数信息,但克服了梯度下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵的逆的特点。

三、支持向量机(SVM)

一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

函数间隔

给定一个超平面(w,b),定义该超平面关于样本点 (xi,yi) 的函数间隔为: γ=yi(wTxi+b) ,定义该超平面关于训练集T的函数间隔为:

几何间隔(geometrical margin)

1.损失函数:合页损失函数(Hinge loss)

SVM的损失函数就是合页损失函数+正则项

minw,b∑i=1N[1−yi(wTxi+b)]++λ||w||2

2.为什么要将求解SVM的原始问题转换为其对偶问题?

  1. 对偶问题更容易求解,
  2. 可以自然引入核函数,进而推广到非线性分类问题。

若原问题与对偶问题均存在可行解,则两者均存在最优解)。

3.支持向量

距离超平面最近的且满足一定条件的几个样本点。

4.带核的SVM为什么能分类非线性问题

核函数的本质是两个函数的内积,通过核函数将其映射到高维空间,在高维空间非线性问题转换为线性问题,SVM得到超平面是高维空间的线性分类平面,其分类结果也视为低维空间的非线性分类结果。

5.SVM的应用

SVM在很多诸如文本分类,图像分类,生物序列分析和生物数据挖掘,手写字符识别等领域有很多的应用

6. 如何选择核函数?

  • 如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
  • 如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
  • 如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况。

7.LR和SVM的联系与区别

相同点

  • 如果不考虑核函数,都是线性分类器。
  • 都是监督学习算法。
  • 都是判别模型。判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。

不同点

  • (本质区别):目标函数不同,逻辑回归是log loss,SVM采用的是hinge loss(铰链损失函数),这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  • LR是参数模型,svm是非参数模型。
  • 与SVM相比,LR对异常数据更加敏感。
  • SVM的目标是结构风险最小化,逻辑回归目标函数是最小化先验概率。
  • 在训练集较小时,SVM较适用(基于距离分类),需要对数据先做归一化;LR则需要更多的样本(基于概率分类)
  • SVM只考虑支持向量(support vectors),也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。

8.加入松弛变量的SVM的训练误差可以为0吗?

使用SMO(序列最小优化算法)算法训练的线性分类器并不一定能得到训练误差为0的模型。这是由于优化目标改变了,并不再是使训练误差最小。

相关文章
|
1月前
|
SQL Java
java面试题笔试常见选择题大全含答案
java面试题笔试常见选择题大全含答案
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第27天】在数据科学和人工智能的领域中,支持向量机(SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原理。本文将详细介绍SVM的工作原理、核心概念以及如何在实际问题中应用该算法进行分类和回归分析。我们还将讨论SVM面临的挑战以及如何通过调整参数和核技巧来优化模型性能。
|
2月前
|
存储 算法 C语言
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
19 5
|
1月前
|
机器学习/深度学习 算法 Windows
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
【阿旭机器学习实战】【34】使用SVM检测蘑菇是否有毒--支持向量机
|
2月前
|
网络安全 Windows
PentestGPT-V0(1),网络安全面试题2024笔试
PentestGPT-V0(1),网络安全面试题2024笔试
|
2月前
|
机器学习/深度学习 数据采集 算法
深入理解并应用机器学习算法:支持向量机(SVM)
【5月更文挑战第13天】支持向量机(SVM)是监督学习中的强分类算法,用于文本分类、图像识别等领域。它寻找超平面最大化间隔,支持向量是离超平面最近的样本点。SVM通过核函数处理非线性数据,软间隔和正则化避免过拟合。应用步骤包括数据预处理、选择核函数、训练模型、评估性能及应用预测。优点是高效、鲁棒和泛化能力强,但对参数敏感、不适合大规模数据集且对缺失数据敏感。理解SVM原理有助于优化实际问题的解决方案。
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第6天】在数据科学和人工智能的广阔天地中,支持向量机(SVM)以其强大的分类能力与理论深度成为机器学习领域中的一个闪亮的星。本文将深入探讨SVM的核心原理、关键特性以及实际应用案例,为读者提供一个清晰的视角来理解这一高级算法,并展示如何利用SVM解决实际问题。
163 7
|
2月前
|
机器学习/深度学习 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第31天】 在数据科学的广阔天地中,支持向量机(SVM)以其卓越的性能和强大的理论基础脱颖而出。本文将深入剖析SVM的工作原理、核心概念以及实际应用,旨在为读者提供一个清晰的理解视角,并通过实例演示其在分类问题中的有效性。我们将从线性可分的情况出发,逐步过渡到非线性问题的处理方法,并探讨如何通过调整参数来优化模型的性能。
262 0
|
2月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的支持向量机(SVM)算法
【5月更文挑战第28天】 在数据科学与人工智能的领域中,支持向量机(Support Vector Machines, SVM)是一种强大的监督学习模型,它基于统计学习理论中的VC维理论和结构风险最小化原则。本文将深入探讨SVM的数学原理、关键概念以及实际应用案例。我们将透过SVM的镜头,理解其在分类和回归问题中的应用,并讨论如何通过核技巧克服维度灾难,提高模型的泛化能力。文章还将展示使用SVM解决实际问题的步骤和注意事项,为读者提供一个清晰的SVM应用指南。
|
2月前
|
机器学习/深度学习 人工智能 算法
深入解析机器学习中的支持向量机(SVM)
深入解析机器学习中的支持向量机(SVM)
154 0