20240320-2-线性回归+逻辑回归

线性回归于逻辑回归面试题

在这里插入图片描述

1. 简单介绍一下线性回归。

**线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。**这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。

  • 线性:两个变量之间的关系一次函数关系的——图象是直线,叫做线性。
  • 非线性:两个变量之间的关系不是一次函数关系的——图象不是直线,叫做非线性。
  • 回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。

线性回归就是利用的样本$D=(\mathrm{x}_i, \mathrm{y}_i)
, , \mathrm{i}=1,2,3 \ldots \mathrm{N}, \mathrm{x}_i 是特征数据,可能是一个,也可能是多个,通过有监督的学习,学习到由 是特征数据,可能是一个,也可能是多个,通过有监督的学习,学习到由 是特征数据,可能是一个,也可能是多个,通过有监督的学习,学习到由x 到 到 y 的映射 的映射 的映射h ,利用该映射关系对未知的数据进行预估,因为 ,利用该映射关系对未知的数据进行预估,因为 ,利用该映射关系对未知的数据进行预估,因为y$为连续值,所以是回归问题。

2. 线性回归的假设函数是什么形式?

线性回归的假设函数( θ 0 \theta_{0} θ0表示截距项,$ x_{0} = 1$,方便矩阵表达):
f ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 … + θ n x n = θ T X f(x)=\theta_{0} x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2} \ldots+\theta_{n} x_{n} = \theta ^TX f(x)=θ0x0+θ1x1+θ2x2+θnxn=θTX
其中 θ , X \theta,X θ,X都是列向量

3. 线性回归的损失函数是什么形式?

一般使用最小二乘法,真实值 y i y_{i} yi,预测值 h θ ( x ) h_θ(x) hθ(x),则误差平方为 ( y i − h θ ( x i ) ) 2 \left(y_{i}-h_{\theta}\left(x_{i}\right)\right)^{2} (yihθ(xi))2找到合适的参数,使得误差平方和最小
M S E : J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y i − h θ ( x i ) ) 2 MSE: J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(y_{i}-h_{\theta}\left(x_{i}\right)\right)^{2} MSE:J(θ0,θ1)=2m1i=1m(yihθ(xi))2

其中共有 m m m个样本点,乘以1/2是为了方便计算。

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

  • 目的:

    • 解决线性回归出现的过拟合的请况。

    • 解决在通过正规方程方法求解 θ \theta θ的过程中出现的 X T X X^TX XTX不可逆的请况。

  • 本质:

    • 约束(限制)要优化的参数

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

线性回归的损失函数:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ)=2m1i=1m(hθ(x(i))y(i))2

  • 岭回归
    • 损失函数:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2} J(θ)=2m1i=1m(hθ(x(i))y(i))2+λj=1nθj2

  • Lasso回归
    • 损失函数

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n ∣ θ j ∣ J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} |\theta_{j}| J(θ)=2m1i=1m(hθ(x(i))y(i))2+λj=1nθj

  • 补充

    • ElasticNet 回归: 线性回归 + L1正则化 + L2 正则化。

      • ElasticNet在我们发现用Lasso回归太过(太多特征被稀疏为0),而岭回归也正则化的不够(回归系数衰减太慢)的时候,可以考虑使用ElasticNet回归来综合,得到比较好的结果。

      • 损失函数
        J ( θ ) = 1 2 ∑ i m ( y ( i ) − θ T x ( i ) ) 2 + λ ( ρ ∑ j n ∣ θ j ∣ + ( 1 − ρ ) ∑ j n θ j 2 ) J(\theta)=\frac{1}{2} \sum_{i}^{m}\left(y^{(i)}-\theta^{T} x^{(i)}\right)^{2}+\lambda\left(\rho \sum_{j}^{n}\left|\theta_{j}\right|+(1-\rho) \sum_{j}^{n} \theta_{j}^{2}\right) J(θ)=21im(y(i)θTx(i))2+λ(ρjnθj+(1ρ)jnθj2)

    • LWR( 局部加权)回归

      • 局部加权线性回归是在线性回归的基础上对每一个测试样本(训练的时候就是每一个训练样本)在其已有的样本进行一个加权拟合,权重的确定可以通过一个核来计算,常用的有高斯核(离测试样本越近,权重越大,反之越小),这样对每一个测试样本就得到了不一样的权重向量,所以最后得出的拟合曲线不再是线性的了,这样就增加的模型的复杂度来更好的拟合非线性数据。

      • 损失函数
        J ( θ ) = 1 2 ∑ i = 1 m w ( i ) ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2} \sum_{i=1}^{m} w^{(i)}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ)=21i=1mw(i)(hθ(x(i))y(i))2

5. 线性回归要求因变量服从正态分布吗?

线性回归的假设前提是噪声服从正态分布,即因变量服从正态分布。但实际上难以达到,因变量服从正态分布时模型拟合效果更好。

参考资料: http://www.julyedu.com/question/big/kp_id/23/ques_id/2914

6. 简单介绍一下逻辑回归

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

7. 简单介绍一下Sigmoid函数

sigmoid函数取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。
函数公式如下:
S ( t ) = 1 1 + e − t S(t)=\frac{1}{1+e^{-t}} S(t)=1+et1

函数中 t t t无论取什么值,其结果都在 [ 0 , 1 ] [0,{1}] [0,1]的区间内,我们假设分类的阈值是0.5,那么超过0.5的归为1分类,低于0.5的归为0分类,阈值是可以自己设定的。

下来我们把线性回归的输出 θ T X + b \theta^T X+b θTX+b 带入 t t t 中就得到了逻辑回归的假设函数

H ( θ , b ) = 1 1 + e ( θ T X + b ) H(\theta, b)=\frac{1}{1+e^{(\theta^T X+b)}} H(θ,b)=1+e(θTX+b)1
结果也可以理解为概率,换句话说概率大于0.5的属于1分类,概率小于0.5的属于0分类,这就达到了分类的目的。

8. 逻辑回归的损失函数是什么

逻辑回归的损失函数是交叉熵损失函数
cost ⁡ ( h θ ( x ) , y ) = { h θ ( x ) y = 1 1 − h θ ( x ) y = 0 \operatorname{cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned} h_{\theta}(x) & \qquad y=1 \\ 1-h_{\theta}(x) & \qquad y=0 \end{aligned}\right. cost(hθ(x),y)={hθ(x)1hθ(x)y=1y=0
两式合并得到概率分布表达式
( P ( y ∣ x , θ ) = h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y ) (P(y|x,\theta ) = h_{\theta}(x)^y(1-h_{\theta}(x))^{1-y}) (P(yx,θ)=hθ(x)y(1hθ(x))1y)
对数似然函数最大化得到似然函数的代数表达式为 :

L ( θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta) = \prod\limits_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} L(θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)
取反得到损失函数表达式——(负对数损失函数)
J ( θ ) = − l n L ( θ ) = − ∑ i = 1 m ( y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) J(\theta) = -lnL(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))) J(θ)=lnL(θ)=i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

9.逻辑回归如何进行多分类?

多分类问题一般将二分类推广到多分类的方式有三种,一对一,一对多,多对多。

  • 一对一:

    • N N N个类别两两配对,产生 N ( N − 1 ) / 2 N(N-1)/2 N(N1)/2个二分类任务,测试阶段新样本同时交给所有的分类器,最终结果通过投票产生。
  • 一对多:

    • 每一次将一个例作为正例,其他的作为反例,训练 N N N个分类器,测试时如果只有一个分类器预测为正类,则对应类别为最终结果,如果有多个,则一般选择置信度最大的。从分类器角度一对一更多,但是每一次都只用了2个类别,因此当类别数很多的时候一对一开销通常更小(只要训练复杂度高于 O ( N ) O(N) O(N)即可得到此结果)。
  • 多对多:

    • 若干各类作为正类,若干个类作为反类。注意正反类必须特殊的设计。

10.逻辑回归的优缺点

  • 优点

    • LR的可解释性强、可控度高、训练速度快
  • 缺点

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

      例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;

    • 预测结果呈 S S S型,因此从 l o g ( o d d s ) log(odds) log(odds)向概率转化的过程是非线性的,在两端随着 l o g ( o d d s ) log(odds) log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。

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

  • 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合; 离散特征的增加和减少都很容易,易于模型的快速迭代;

  • 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;

  • 方便交叉与特征组合:离散化后可以进行特征交叉,由 M + N M+N M+N个变量变为 M ∗ N M*N MN个变量,进一步引入非线性,提升表达能力;

  • 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。

  • 稳定性:特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人;

  • 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。

    参考资料:https://blog.csdn.net/qq1195365047/article/details/88638809

12. 线性回归与逻辑回归的区别

  • 线性回归主要解决回归任务,逻辑回归主要解决分类问题。

  • 线性回归的输出一半是连续的,逻辑回归的输出一般是离散的。

  • 逻辑回归的输入是线性回归的输出,将Sigmoid函数作用于线性回归的输出得到输出结果。

  • 线性回归的损失函数是 M S E MSE MSE,逻辑回归中,采用的是负对数损失函数

13. 为什么逻辑回归比线性回归要好?

逻辑回归和线性回归首先都是广义的线性回归,其次模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,逻辑回归在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在0,1间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。

14. 逻辑回归有哪些应用

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

15. 如果label={-1, +1},给出LR的损失函数?

假设label={-1,+1},则
p ( y = 1 ∣ x ) = h ω ( x ) p(y=1|x)=h_{\omega}(x) p(y=1∣x)=hω(x)

p ( y = − 1 ∣ x ) = 1 − h ω ( x ) p(y=-1 | x) = 1 - h_{\omega} (x) p(y=1∣x)=1hω(x)

对于sigmoid函数,有以下特性,
h ( − x ) = 1 − h ( x ) h(-x) = 1 - h(x) h(x)=1h(x)
p ( y ∣ x ) = h ω ( y x ) p(y|x) = h_\omega(yx) p(yx)=hω(yx)
同样,我们使用MLE作估计,
L ( ω ) = ∏ i = 1 m p ( y i ∣ x i ; ω ) = ∏ i = 1 m h ω ( y i x i ) = ∏ i = 1 m 1 1 + e − y i w x i \begin{aligned} L(\omega)&= \prod_{i=1}^{m} p(y_i | x_i; \omega) \\ &= \prod_{i=1}^{m} h_\omega(y_i x_i)\\ &= \prod_{i=1}^{m} \frac{1}{1+e^{-y_iwx_i}} \end{aligned} L(ω)=i=1mp(yixi;ω)=i=1mhω(yixi)=i=1m1+eyiwxi1
对上式取对数及负值,得到损失为:
− log ⁡ L ( ω ) = − log ⁡ ∏ i = 1 m p ( y i ∣ x i ; ω ) = − ∑ i = 1 m log ⁡ p ( y i ∣ x i ; ω ) = − ∑ i = 1 m log ⁡ 1 1 + e − y i w x i = ∑ i = 1 m log ⁡ ( 1 + e − y i w x i ) \begin{aligned} -\log L(\omega)&= -\log \prod_{i=1}^{m} p(y_i | x_i; \omega) \\ &= -\sum_{i=1}^{m} \log p(y_i | x_i; \omega) \\ &= -\sum_{i=1}^{m} \log \frac{1}{1+e^{-y_iwx_i}}\\ &= \sum_{i=1}^{m} \log(1+e^{-y_iwx_i})\\ \end{aligned} logL(ω)=logi=1mp(yixi;ω)=i=1mlogp(yixi;ω)=i=1mlog1+eyiwxi1=i=1mlog(1+eyiwxi)
即对于每一个样本,损失函数为:
L ( ω ) = log ⁡ ( 1 + e − y i w x i ) L(\omega)=\log(1+e^{-y_iwx_i}) L(ω)=log(1+eyiwxi)

16. 逻辑回归在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响?

如果在损失函数最终收敛的情况下,有很多特征高度相关也不会影响分类器的效果。对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。

17. LR为什么使用sigmoid函数?

  • 线性模型的输出都是在 [ − ∞ , + ∞ ] [-∞,+∞] [,+]之间的,而Sigmoid能够把它映射到 [ 0 , 1 ] [0,1] [0,1]之间。正好这个是概率的范围。

  • Sigmoid是连续光滑的。

  • 根据Sigmoid函数,最后推导下来逻辑回归其实就是最大熵模型,根据最大似然估计得到的模型的损失函数就是logloss。这让整个逻辑回归都有理可据。

  • Sigmoid也让逻辑回归的损失函数成为凸函数,这也是很好的性质。

  • 逻辑回归的损失函数是二元分类的良好代理函数,这个也是Sigmoid的功劳。

18. LR如何进行并行计算?

19.LR和SVM有什么不同吗

  • LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
  • 两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。
    区别:
  • LR是参数模型,SVM是非参数模型。
  • 从目标函数来看,区别在于逻辑回归采用的是交叉熵损失函数,SVM采用的是hinge loss,这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  • SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
  • 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  • LR能做的 SVM能做,但可能在准确率上有问题,SVM能做的LR有的做不了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/494424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

V R社交平台的用处|虚拟现实体验馆加盟|V R设备在线价格

VR(虚拟现实)社交平台的用处可以体现在以下几个方面: VR社交平台不仅可以丰富用户的社交体验,还可以在教育、艺术、商务等领域发挥重要作用,为用户提供更加多样化、互动性强的社交平台体验。 VR游乐设备|VR娱乐设备|VR…

SEO 的未来:GPT 和 AI 如何改变关键词研究

谷歌Gemini与百度文心一言:AI训练数据的较量 介绍 想象一下,有一个工具不仅可以理解错综复杂的关键字网络,还可以预测搜索引擎查询的变化趋势。 这就是生成式预训练 Transformer (GPT) 和其他人工智能技术发挥作用的地方,以我们从…

37.网络游戏逆向分析与漏洞攻防-游戏网络通信数据解析-解码器细化类的实现

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:36.数据解码器的…

高阶SQL语句(二)

一 子查询 也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语 句。子查询语句 是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。 ①子语句可以与主语句所查询的表相同,也可以是不…

29---Nor Flash电路设计

视频链接 Nor Flash硬件电路设计01_哔哩哔哩_bilibili NOR FLASH电路设计 1、NOR FLASH介绍 NOR Flash最早是由Intel公司于1988年开发出的。 NOR Flash虽容量小但速度快,最大特点是支持芯片内执行(XIP),即程序可以直接在NOR flash的片内…

mac-git上传至github(ssh版本,个人tokens总出错)

第一步 git clone https://github.com/用户名/项目名.git 第二步 cd 项目名 第三步 将本地的文件移动到项目下 第四步 git add . 第五步 git commit -m "添加****文件夹" 第六步 git push origin main 报错: 采用ssh验证 本地文件链接公钥 …

Day23:事务管理、显示评论、添加评论

事务管理 事务的定义 什么是事务 事务是由N步数据库操作序列组成的逻辑执行单元,这系列操作要么全执行,要么全放弃执行。 事务的特性(ACID) 原子性(Atomicity):事务是应用中不可再分的最小执行体(事务中部分执行失败就会回滚 。一致性(C…

AWS基础网络产品及协同架构-Networking

简介 一个完整的AWS网络架构图,包含了如下能力: Users (用户): 表示使用AWS服务的用户或系统。 SaaS (软件即服务): 表示在AWS上运行的软件服务,如企业微信可能作为SaaS提供。 example.com?: 这可能是一个示例域名,用于展示如何…

[2021]Zookeeper getAcl命令未授权访问漏洞概述与解决

今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题,即使是非zookeeper的节点,或者是非集群内部节点,也可以通过nc扫描2181端口,获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述:CVE-2018-8012: A…

KPCA-GWO-LSSVM,基于KPCA核主成分分析优化灰狼优化算法GWO结合最小二乘支持向量机LSSVM回归预测

基于KPCA核主成分分析优化灰狼优化算法(KPCA-GWO)结合最小二乘支持向量机(LSSVM)回归是一种用于回归分析的混合优化算法。下面我将简要介绍这个方法的步骤: 核主成分分析(KPCA): KPC…

小米HyperOS 澎湃os机型免答题 免社区等级 秒接bl锁操作步骤解析

小米机型解锁bl 绕过社区等级5才可以解锁的限制的教程_没有五级社区怎么解锁bl-CSDN博客 上次解析了小米有些出厂不是HyperOS系统的机型绕社区等级接bl锁的操作。目前有更新出厂为HyperOS系统的机型免社区登录等级限制 免答题解锁bl的操作。而且有网友在米14 平板6sp k70这些新…

解决kubesphere流水线docker登陆错误http: server gave HTTP response to HTTPS client

kubesphere DevOps流水线中,在登录私有的harbor仓库时,报以下错误 docker login 111.230.19.120:80 -u admin -p test123. WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://…

Android JNI SO库和对应的CPU架构详解

Android JNI SO库和对应的CPU架构详解 文章目录 Android JNI SO库和对应的CPU架构详解一、前言二、Android CPU架构1、Android系统支持的CPU架构2、如查查看手机的CPU架构(1)Android13 大屏AML厂商的cpu信息:(2)电脑An…

前缀和算法(1)

目录 一维前缀和[模板] 一、题目描述 二、思路解析 三、代码 二维前缀和[模板] 一、题目描述 二、思路解析 三、代码 724.寻找数组的中心下标 一、题目描述 二、思路解析 三、代码 238.除自身以外数组的乘积 一、题目描述 二、思路解析 三、代码 一维前缀和[模…

数据结构——二叉搜索树详解

一、二叉搜索树定义 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 1.非空左子树上所有节点的值都小于根节点的值。 2.非空右子树上所有节点的值都大于根节点的值。 3.左右子树也都为二叉搜索树。 如下图所示&#xff1a…

上位机图像处理和嵌入式模块部署(qmacvisual区域提取)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在图像处理中,有两部分比较重要,一个是区域分割,一个是区域提取。区域分割,比较好理解,…

IDEA的使用(概念,安装,配置,)以及什么是字符集,模版

目录 Intellij IDEA IDE的概念 IntelliJ IDEA的安装 IntelliJ IDEA的使用 基本配置 JDK配置 创建Module 基本用法 字体配置 主题配置 字符集 设置IDEA默认字符集 注释模板 字符集 字符集简介 常见字符集 Intellij IDEA 我们不可能一直使用记事本之类变成&#…

BUG定位---一起学习吧之测试

判断一个BUG是前端还是后端的,通常需要根据BUG的具体表现、发生的环境以及相关的技术栈来进行分析。以下是一些常用的判断方法: 错误发生的位置: 如果BUG涉及的是页面的布局、样式、交互效果等,那么很可能是前端的BUG。如果BUG与…

计算机网络:物理层 - 信道复用

计算机网络:物理层 - 信道复用 频分复用时分复用统计时分复用波分复用码分复用 计算机网络中,用户之间通过信道进行通信,但是信道是有限的,想要提高网络的效率,就需要提高信道的利用效率。因此计算机网络中普遍采用信道…

python学习12:python中的字符串格式化-数字精度控制

python中的字符串格式化-数字精度控制 1.使用辅助符号"m.n"来进行数据的宽度和精度的控制 m,控制宽度,要求是数字(一般是很少使用的),设置的宽度小于数字自身,不生效 n,控制小数点精度,要求是数…