图解机器学习算法(4) | 逻辑回归算法详解(机器学习通关指南·完结)

机器学习知识图谱——逻辑回归算法(Logistic Regression) 逻辑回归是一种 用于分类问题的监督学习算法,尽管它名字中有“回归”,但其实是用于解决 二分类或多分类 问题的。 它通过将线性回归结果映射到 (0, 1) 区间上的概率值,来实现分类判断。 阅读详情
AI摘要

本文介绍了逻辑回归的基本概念,包括其核心思想:将线性回归结果通过Sigmoid函数映射到0-1区间,形成决策边界。内容涵盖了梯度下降优化、正则化防止过拟合以及特征变换实现非线性分类。

ShowMeAI研究中心


引言

本篇内容我们给大家介绍机器学习领域最常见的模型之一:逻辑回归。它也是目前工业界解决问题最广泛作为baseline的解决方案。逻辑回归之所以被广泛应用,因为其简单有效且可解释性强。

本文的结构如下:

  • 第1部分:回顾机器学习与分类问题。回顾机器学习中最重要的问题之一分类问题,不同的分类问题及数学抽象。

  • 第2部分:逻辑回归核心思想。介绍线性回归问题及逻辑回归解决方式,讲解逻辑回归核心思想。

  • 第3部分:Sigmoid函数与分类器决策边界。介绍逻辑回归模型中最重要的Sigmoid变换函数,以及不同分类器得到的决策边界。

  • 第4部分:模型优化使用的梯度下降算法。介绍模型参数学习过程中最常使用到的优化算法:梯度下降。

  • 第5部分:模型过拟合问题与正则化。介绍模型状态分析及过拟合问题,以及缓解过拟合问题可以使用的正则化手段。

  • 第6部分:特征变换与非线性切分。介绍由线性分类器到非线性分类场景,对特征可以进行的变换如构建多项式特征,使得分类器得到分线性切分能力。

(本篇逻辑回归算法的部分内容涉及到机器学习基础知识,没有先序知识储备的宝宝可以查看ShowMeAI的文章 图解机器学习 | 机器学习基础知识)。

1.机器学习与分类问题

1)分类问题

分类问题是机器学习非常重要的一个组成部分,它的目标是根据已知样本的某些特征,判断一个样本属于哪个类别。分类问题可以细分如下:

  • 二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。

  • 多类分类(Multiclass Classification)问题:表示分类任务中有多类别。

  • 多标签分类(Multilabel Classification)问题:给每个样本一系列的目标标签。

2)分类问题的数学抽象

从算法的角度解决一个分类问题,我们的训练数据会被映射成n维空间的样本点(这里的n就是特征维度),我们需要做的事情是对n维样本空间的点进行类别区分,某些点会归属到某个类别。

下图所示的是二维平面中的两类样本点,我们的模型(分类器)在学习一种区分不同类别的方法,比如这里是使用一条直线去对2类不同的样本点进行切分。

常见的分类问题应用场景很多,我们选择几个进行举例说明:

  • 垃圾邮件识别:可以作为二分类问题,将邮件分为你「垃圾邮件」或者「正常邮件」。

  • 图像内容识别:因为图像的内容种类不止一个,图像内容可能是猫、狗、人等等,因此是多类分类问题。

  • 文本情感分析:既可以作为二分类问题,将情感分为褒贬两种,还可以作为多类分类问题,将情感种类扩展,比如分为:十分消极、消极、积极、十分积极等。

2.逻辑回归算法核心思想

下面介绍本次要讲解的算法——逻辑回归(Logistic Regression)。逻辑回归是线性回归的一种扩展,用来处理分类问题。

1)线性回归与分类

分类问题和回归问题有一定的相似性,都是通过对数据集的学习来对未知结果进行预测,区别在于输出值不同。

  • 分类问题的输出值是离散值(如垃圾邮件和正常邮件)。

  • 回归问题的输出值是连续值(例如房子的价格)。

既然分类问题和回归问题有一定的相似性,那么我们能不能在回归的基础上进行分类呢?

可以想到的一种尝试思路是,先用线性拟合,然后对线性拟合的预测结果值进行量化,即将连续值量化为离散值——即使用『线性回归+阈值』解决分类问题。

我们来看一个例子。假如现在有一个关于肿瘤大小的数据集,需要根据肿瘤的大小来判定是良性(用数字0表示)还是恶性(用数字1表示),这是一个很典型的二分类问题。

如上图,目前这个简单的场景我们得到1个直观的判定:肿瘤的大小大于5,即为恶性肿瘤(输出为1);肿瘤的大小等于5,即为良性肿瘤(输出为0)。
下面我们尝试之前提到的思路,使用一元线性函数 h ( x ) = θ 0 + θ 1 x h(x) = \theta_0+\theta_1x h(x)=θ0​+θ1​x去进行拟合数据,函数体现在图片中就是这条黑色直线。

这样分类问题就可以转化为:对于这个线性拟合的假设函数,给定一个肿瘤的大小,只要将其带入假设函数,并将其输出值和0.5进行比较:

  • 如果线性回归值大于0.5,就输出1(恶性肿瘤)。

  • 如果线性回归值小于0.5,就输出0(良性肿瘤)。

上图的数据集中的分类问题被完美解决。但如果将数据集更改一下,如图所示,如果我们还是以0.5为判定阈值,那么就会把肿瘤大小为6的情况进行误判为良好。

所以,单纯地通过将线性拟合的输出值与某一个阈值进行比较,这种方法用于分类非常不稳定。

2)逻辑回归核心思想

因为「线性回归+阈值」的方式很难得到鲁棒性好的分类器,我们对其进行拓展得到鲁棒性更好的逻辑回归(Logistic Regression,有些地方也叫做「对数几率回归」)。逻辑回归将数据拟合到一个logit函数中,从而完成对事件发生概率的预测。

如果线性回归的结果输出是一个连续值,而值的范围是无法限定的,这种情况下我们无法得到稳定的判定阈值。那是否可以把这个结果映射到一个固定大小的区间内(比如0到1),进而判断呢。

当然可以,这就是逻辑回归做的事情,而其中用于对连续值压缩变换的函数叫做Sigmoid函数(也称Logistic函数,S函数)。

Sigmoid数学表达式为

S ( x ) = 1 1 + e − x S(x) = \dfrac{1}{1+e^{-x}} S(x)=1+e−x1​

可以看到S函数的输出值在0到1之间。

3.Sigmoid函数与决策边界

刚才大家见到了Sigmoid函数,下面我们来讲讲它和线性拟合的结合,如何能够完成分类问题,并且得到清晰可解释的分类器判定「决策边界」。

1)分类与决策边界

决策边界就是分类器对于样本进行区分的边界,主要有线性决策边界(linear decision boundaries)和非线性决策边界(non-linear decision boundaries),如下图所示。

2)线性决策边界生成

那么,逻辑回归是怎么得到决策边界的呢,它与Sigmoid函数又有什么关系呢?

如下图中的例子:

如果我们用函数g表示Sigmoid函数,逻辑回归的输出结果由假设函数 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_{\theta}(x)=g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}\right) hθ​(x)=g(θ0​+θ1​x1​+θ2​x2​)得到。

对于图中的例子,我们暂时取参数 θ 0 、 θ 1 、 θ 2 \theta_{0}、\theta_{1} 、\theta_{2} θ0​、θ1​、θ2​分别为-3、1和1,那么对于图上的两类样本点,我们代入一些坐标到 h θ ( x ) h_{\theta}(x) hθ​(x),会得到什么结果值呢。

  • 对于直线上方的点 ( x 1 , x 2 ) \left ( x_{1}, x_{2} \right ) (x1​,x2​)(例如 ( 100 , 100 ) \left ( 100, 100 \right ) (100,100)),代入 − 3 + x 1 + x 2 -3+ x_{1}+ x_{2} −3+x1​+x2​,得到大于0的取值,经过Sigmoid映射后得到的是大于0.5的取值。

  • 对于直线下方的点 ( x 1 , x 2 ) \left ( x_{1}, x_{2} \right ) (x1​,x2​)(例如 ( 0 , 0 ) \left ( 0, 0 \right ) (0,0)),代入 − 3 + x 1 + x 2 -3+ x_{1}+ x_{2} −3+x1​+x2​,得到小于0的取值,经过Sigmoid映射后得到的是小于0.5的取值。

如果我们以0.5为判定边界,则线性拟合的直线 − 3 + x 1 + x 2 = 0 -3+ x_{1}+ x_{2} = 0 −3+x1​+x2​=0变换成了一条决策边界(这里是线性决策边界)。

3)非线性决策边界生成

其实,我们不仅仅可以得到线性决策边界,当 h θ ( x ) h_{\theta}(x) hθ​(x)更复杂的时候,我们甚至可以得到对样本非线性切分的非线性决策边界(这里的非线性指的是无法通过直线或者超平面把不同类别的样本很好地切分开)。

如下图中另外一个例子:如果我们用函数g表示Sigmoid函数,逻辑回归的输出结果由假设函数 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) h_{\theta}(x)=g\left(\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2}\right) hθ​(x)=g(θ0​+θ1​x1​+θ2​x2​+θ3​x12​+θ4​x22​)得到。

对于图中的例子,我们暂时取参数 θ 0 、 θ 1 、 θ 2 、 θ 3 、 θ 4 \theta_{0} 、\theta_{1} 、\theta_{2} 、\theta_{3} 、\theta_{4} θ0​、θ1​、θ2​、θ3​、θ4​分别为-1、0、0、1和1,那么对于图上的两类样本点,我们代入一些坐标到
h θ ( x ) h_{\theta}(x) hθ​(x),会得到什么结果值呢。

  • 对于圆外部的点 ( x 1 , x 2 ) \left ( x_{1}, x_{2} \right ) (x1​,x2​)(例如 ( 100 , 100 ) \left ( 100, 100 \right ) (100,100)),代入 θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 \theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2} θ0​+θ1​x1​+θ2​x2​+θ3​x12​+θ4​x22​,得到大于0的取值,经过Sigmoid映射后得到的是大于0.5的取值。

  • 对于圆内部的点 ( x 1 , x 2 ) \left ( x_{1}, x_{2} \right ) (x1​,x2​)(例如 ( 0 , 0 ) \left ( 0, 0 \right ) (0,0)),代入 θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 \theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2} θ0​+θ1​x1​+θ2​x2​+θ3​x12​+θ4​x22​,得到小于0的取值,经过Sigmoid映射后得到的是小于0.5的取值。

如果我们以0.5为判定边界,则线性拟合的圆曲线 − 1 + x 1 2 + x 2 2 = 0 -1+x_{1}^2+x_{2}^2=0 −1+x12​+x22​=0变换成了一条决策边界(这里是非线性决策边界)。

4.梯度下降与优化

1)损失函数

前一部分的例子中,我们手动取了一些参数θ的取值,最后得到了决策边界。但大家显然可以看到,取不同的参数时,可以得到不同的决策边界。

哪一条决策边界是最好的呢?我们需要定义一个能量化衡量模型好坏的函数——损失函数(有时候也叫做「目标函数」或者「代价函数」)。我们的目标是使得损失函数最小化。

我们如何衡量预测值和标准答案之间的差异呢,最简单直接的方式是数学中的均方误差。它的计算方式很简单,对于所有的样本点 x i x_{i} xi​,预测值 h θ ( x i ) h_{\theta}(x_{i}) hθ​(xi​)与标准答案 y i y_{i} yi​作差后平方,求均值即可,这个取值越小代表差异度越小。

M S E = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 MSE=\frac{1}{m} \sum_{i=1}^{m}\left(f\left(x_{i}\right)-y_{i}\right)^{2} MSE=m1​i=1∑m​(f(xi​)−yi​)2

均方误差对应的损失函数:均方误差损失(MSE)在回归问题损失定义与优化中广泛应用,但是在逻辑回归问题中不太适用。sigmoid函数的变换使得我们最终得到损失函数曲线如下图所示,是非常不光滑凹凸不平的,这种数学上叫做非凸的损失函数(关于损失函数与凸优化更多知识可以参考ShowMeAI的文章 图解AI数学基础 | 微积分与最优化),我们要找到最优参数(使得函数取值最小的参数)是很困难的。

解释:在逻辑回归模型场景下,使用MSE得到的损失函数是非凸的,数学特性不太好,我们希望损失函数如下的凸函数。凸优化问题中,局部最优解同时也是全局最优解,这一特性使得凸优化问题在一定意义上更易于解决,而一般的非凸最优化问题相比之下更难解决。

我们更希望我们的损失函数如下图所示,是凸函数,我们在数学上有很好优化方法可以对其进行优化。

在逻辑回归模型场景下,我们会改用对数损失函数(二元交叉熵损失),这个损失函数同样能很好地衡量参数好坏,又能保证凸函数的特性。对数损失函数的公式如下:

J ( θ ) = − 1 m [ ∑ i = 1 m y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] J(θ)=−m1​[i=1∑m​y(i)loghθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]

其中 y ( i ) y^{(i)} y(i)表示样本取值,在其为正样本时取值为1,负样本时取值为0,我们分这两种情况来看看:

Cost ⁡ ( h θ ( x ) , y ) = { − log ⁡ ( 1 − h θ ( x ) )  if  y = 0 − log ⁡ ( h θ ( x ) )  if  y = 1 \operatorname{Cost}\left(h_{\theta}(x), y\right)=\left\{\begin{array}{ll} -\log \left(1-h_{\theta}(x)\right) & \text { if } y=0\\ -\log \left(h_{\theta}(x)\right) & \text { if } y=1 \end{array}\right. Cost(hθ​(x),y)={−log(1−hθ​(x))−log(hθ​(x))​ if y=0 if y=1​

  • y ( i ) = 0 y^{(i)}=0 y(i)=0:当一个样本为负样本时,若 h θ ( x ) h_{\theta}(x) hθ​(x)的结果接近1(即预测为正样本),那么 − log ⁡ ( 1 − h θ ( x ) ) - \log \left(1-h_{\theta}\left(x\right)\right) −log(1−hθ​(x))的值很大,那么得到的惩罚就大。

  • y ( i ) = 1 y^{(i)}=1 y(i)=1:当一个样本为正样本时,若 h θ ( x ) h_{\theta}(x) hθ​(x)的结果接近0(即预测为负样本),那么 − log ⁡ ( h θ ( x ) ) - \log \left(h_{\theta}\left(x\right)\right) −log(hθ​(x))的值很大,那么得到的惩罚就大。

2)梯度下降

损失函数可以用于衡量模型参数好坏,但我们还需要一些优化方法找到最佳的参数(使得当前的损失函数值最小)。最常见的算法之一是「梯度下降法」,逐步迭代减小损失函数(在凸函数场景下非常容易使用)。如同下山,找准方向(斜率),每次迈进一小步,直至山底。

梯度下降(Gradient Descent)法,是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。

上图中,α称为学习率(learning rate),直观的意义是,在函数向极小值方向前进时每步所走的步长。太大一般会错过极小值,太小会导致迭代次数过多。

(关于损失函数与凸优化更多知识可以参考ShowMeAI的文章 图解AI数学基础 | 微积分与最优化https://www.showmeai.tech/article-detail/165,关于监督学习的更多总结可以查看ShowMeAI总结的速查表手册 AI知识技能速查 | 机器学习-监督学习)

5.正则化与缓解过拟合

1)过拟合现象

在训练数据不够多,或者模型复杂又过度训练时,模型会陷入过拟合(Overfitting)状态。如下图所示,得到的不同拟合曲线(决策边界)代表不同的模型状态:

  • 拟合曲线1能够将部分样本正确分类,但是仍有较大量的样本未能正确分类,分类精度低,是「欠拟合」状态。

  • 拟合曲线2能够将大部分样本正确分类,并且有足够的泛化能力,是较优的拟合曲线。

  • 拟合曲线3能够很好的将当前样本区分开来,但是当新来一个样本时,有很大的可能不能将其正确区分,原因是该决策边界太努力地学习当前的样本点,甚至把它们直接「记」下来了。

拟合曲线中的「抖动」,表示拟合曲线不规则、不光滑(上图中的拟合曲线3),对数据的学习程度深,过拟合了。

2)正则化处理

过拟合的一种处理方式是正则化,我们通过对损失函数添加正则化项,可以约束参数的搜索空间,从而保证拟合的决策边界并不会抖动非常厉害。如下图为对数损失函数中加入正则化项(这里是一个L2正则化项)

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

其中 λ \lambda λ表示正则化系数,表示惩罚程度, λ \lambda λ的值越大,为使 J ( θ ) J(\theta) J(θ)的值小,则参数 θ \theta θ的绝对值就得越小,通常对应于越光滑的函数,也就是更加简单的函数,因此不易发生过拟合的问题。我们依然可以采用梯度下降对加正则化项的损失函数进行优化。

6.特征变换与非线性表达

1)多项式特征

对于输入的特征,如果我们直接进行线性拟合再给到Sigmoid函数,得到的是线性决策边界。但添加多项式特征,可以对样本点进行多项式回归拟合,也能在后续得到更好的非线性决策边界。

多项式回归,回归函数是回归变量多项式。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。

在实际应用中,通过增加一些输入数据的非线性特征来增加模型的复杂度通常是有效的。一个简单通用的办法是使用多项式特征,这可以获得特征的更高维度和互相间关系的项,进而获得更好的实验结果。

2)非线性切分

如下图所示,在逻辑回归中,拟合得到的决策边界,可以通过添加多项式特征,调整为非线性决策边界,具备非线性切分能力。

  • Z θ ( x ) Z_{\theta}(x) Zθ​(x)中 θ \theta θ是参数,当 Z θ ( x ) = θ 0 + θ 1 x Z_{\theta}(x) = \theta_{0} + \theta_{1}x Zθ​(x)=θ0​+θ1​x时,此时得到的是线性决策边界;

  • Z θ ( x ) = θ 0 + θ 1 x + θ 2 x 2 Z_{\theta}(x) = \theta_{0} + \theta_{1}x + \theta_{2}x^2 Zθ​(x)=θ0​+θ1​x+θ2​x2时,使用了多项式特征,得到的是非线性决策边界。

目的是低维线性不可分的数据转化到高维时,会变成线性可分。得到在高维空间下的线性分割参数映射回低维空间,形式上表现为低维的非线性切分。

更多监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-监督学习。

视频教程

可以点击 B站 查看视频的【双语字幕】版本

【双语字幕+资料下载】MIT 6.036 | 机器学习导论(2020·完整版)

【双语字幕+资料下载】MIT 6.036 | 机器学习导论(2020·完整版)

https://www.bilibili.com/video/BV1y44y187wN?p=4

ShowMeAI图解机器学习算法系列(完整版)

ShowMeAI系列教程精选推荐

图解机器学习算法 | 从入门到精通系列教程(机器学习通关指南·完结) 本篇内容是ShowMeAI组织的「图解机器学习算法」系列教程入口,本教程尽量以生动可视化的方式,帮助大家理解机器学习的核心知识和重要的系列模型,并配以相关的代码实现帮助大家了解应用方法。(对机器学习实战感兴趣的同学,可以关注ShowMeAI的另外一个系列[机器学习应用实践])...... 阅读详情

相关推荐

CAIE人工智能证书:从零构建AI知识体系与实战能力的完整指南

在人工智能技术快速发展的今天,系统化学习路径与权威能力认证成为构建核心竞争力的关键。机器学习与深度学习作为AI领域的基石,其原理在于通过算法让计算机从数据中学习规律,实现从感知到决策的智能。掌握这些技术不仅能理解智能系统的运作机制,更能为解决图像识别、自然语言处理等复杂问题提供工程化方案。对于在校学生和转行人士而言,如何高效学习并证明自身能力是一大挑战。CAIE人工智能证书课程提供了一个从数学基础、编程实践到项目实战的完整学习框架,其权威背书为求职和深造提供了高可信度的凭证。通过结合Python、Tenso

wjxbj的博客 557

机器学习(四)

机器学习(四) 2.5 逻辑回归 逻辑回归,用于估计某种事物的可能性,现实中常用于广告预测、疾病诊断预测等场景。 2.5.1 逻辑回归原理 常用的分类方法,最常见的是用于处理二分类问题,即分类为0或1(逻辑值),用一条直线将实例分类。 2.5.2 Sigmoid()函数 Sigmoid()函数,简称S型函数,是数值和逻辑值的一个转化函数工具,作用是将x从负无穷到正无穷的取值范围映射到y的0~1的取值范围,0,1分类不是连续的,所以用一个平滑的函数拟合逻辑值。 2.5.3 逻辑回归算法 逻辑回归算法:发

菜鸟08哥的微博(记录个人学习点滴,与君共勉) 1388

逻辑回归 (Logistic Regression)

逻辑回归,分类算法,线性模型,sigmoid函数,概率预测,机器学习 1. 背景介绍 在机器学习领域,分类问题占据着重要地位。分类问题旨在将数据点划分为预定义的类别。例如,判断电子邮件是否为垃圾邮件,识别图像中的物体,预测客户是否会购买商品等。 逻辑回归作为一种经典的分

AI架构师小马 1491

【机器学习】逻辑回归算法

逻辑回归算法学习目标1. 逻辑回归的介绍1.1 逻辑回归的应用场景1.2 逻辑回归的原理1.2.1 输入1.2.2 激活函数1.3 损失以及优化1.3.1 损失1.3.2 优化1.4 小结2. 逻辑回归api介绍3. 案例:癌症分类预测-良/恶性乳腺癌肿瘤预测3.1 背景介绍3.2 案例分析3.3 代码实现4. 分类评估方法4.1 分类评估方法4.1.1 精确率与召回率4.1.1.1 混淆矩阵4.1.1.2 精确率(Precision)与召回率(Recall)4.1.2 F1-score4.1.3 分类评估

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 7146

KITTI数据集下载及解析

KITTI数据集下载及解析 版本 更新时间 更新内容 作者 1 V 1.0 xxx 完成主体内容 W. Xiao 2 文章目录KITTI Dataset1 简介1.1 数据采集平台1.2 坐标系2 数据解析2.1 image文件2.2 velodyne文件2.3 calib文件2.4 label文件3 KITTI可视...

u013086672的博客 5万+

springboot + netty 实现多客户端登录 超出设备 并下线

本文档旨在详细描述多平台登录控制的需求和实现方案。当前系统仅支持单设备登录,需扩展为支持多设备同时在线,并提供多种登录策略。文档详细列出四种策略:单平台登录、双平台登录、三平台登录和多平台同时在线,每种策略的具体限制和支持平台。技术实现方案包括数据结构设计、NettyUtils 工具类方法、WebSocketHandler 修改,以及相应的测试方案

Likefr 1880

机器学习算法--逻辑回归原理介绍

本博文针对逻辑回归的原理进行了介绍:逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)回归模型中,y是一个定性变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率

chibangyuxun的博客 13万+

MATLAB新手必看:SVPWM七段式算法仿真全流程解析(附完整代码)

本文为MATLAB新手和电机控制初学者提供了SVPWM七段式算法的完整仿真与代码实现指南。文章详细解析了从扇区判断、矢量作用时间计算到PWM波形生成的全流程,并附带了可直接运行的MATLAB代码,帮助读者在理解FOC控制核心算法的基础上,快速掌握工程仿真与调试技巧。

weixin_29074295的博客 283

图解机器学习算法(5) | 朴素贝叶斯算法详解(机器学习通关指南·完结)

朴素贝叶斯是一个非常直观的模型。本文讲解朴素贝叶斯算法的核心思想、贝叶斯公式、条件独立假设、平滑出等重要知识点,并图解多项式贝叶斯和伯努利贝叶斯等多种形态。

ShowMeAI研究中心 2万+

Unity 调用安卓内部安装apk

一、申请权限 应用内安装其他应用的权限属于特殊权限,需要在特殊申请。 Uri packageURI = Uri.parse("package:" + mContext.getPackageName()); Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI); startA...

BDDNH的博客 1247

利用LATX技术在龙芯安同AOCS OS上部署坚果云:跨架构文件同步实战

本文详细介绍了如何在龙芯安同AOCS OS上,利用LATX指令翻译技术部署坚果云客户端,实现跨架构文件同步。通过安装LATX环境、解压x64安装包、运行安装脚本三步,成功在loongarch64架构上运行仅支持x86_64的软件,解决了国产平台办公协同的痛点,并分享了性能实测与优化建议。

weixin_29305337的博客 458

图解机器学习算法(7) | 随机森林分类模型详解(机器学习通关指南·完结)

随机森林是一种由决策树构成的(并行)集成算法。本文讲解随机森林算法涉及的模型集成、Bagging、算法特点及优缺点等重要知识点,最后介绍关键参数和参数调优。

ShowMeAI研究中心 3万+

嵌入式工程师成长之路(3)——PCB设计

带有目的的学:要知道,PCB板子做出来需要我们给厂家哪些东西,我们设计板子的时候,需要遵循哪些设计规范,防止画好也是块废板子。然后再逐步开始学习画板。

云轩阁 8万+

图解机器学习算法(12) | 支持向量机模型详解(机器学习通关指南·完结)

SVM是机器学习领域非常知名的模型。本文讲解SVM的最大间隔分类器、模型原理、核函数与核技巧等重要知识点,并附上线性核函数、多项式核函数和高斯核函数的Python代码实践。

ShowMeAI研究中心 2万+

嵌入式工程师必学(52):储能系统ESS

能量存储系统(ESS,Energystoragesystems)存在于各种各样的尺寸、形状和技术中。储能系统的技术,即基本的储能机制,自然会影响其重要特性,包括成本、安全性、性能、可靠性和寿命。然而,尽管基础技术很重要,但一个成功的储能项目依赖于对该技术的彻底和深思熟虑的实施,以实现项目的目标。成功的实施取决于储能系统的架构和组装情况。系统的体系结构可以决定其性能和可靠性,与它所使用的技术一致,甚至与之无关。

码农17年的博客 1444

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

图解机器学习算法(10) | XGBoost模型最全解析(机器学习通关指南·完结)

XGBoost一个非常强大的Boosting算法工具包,本文讲解XGBoost的算法原理和工程实现,包括监督学习、回归树、集成、Gradient Boosting详细步骤,以及XGBoost的并行列块涉及、缓存访问等工程优化知识。

ShowMeAI研究中心 2万+

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

大模型面试通关指南:12个核心问题详解,助你轻松拿下高薪offer!| 程序员必藏

这篇文章整理了大模型/机器学习面试中的12个核心问题及详细解答,涵盖偏差方差、模型评估、逻辑回归、决策树、XGBoost、反向传播、过拟合缓解、CNN、PEFT技术、推理优化、小样本学习及应用设计等内容。从基础概念到高级技术,全面覆盖大模型领域关键知识点,适合求职者和系统学习。

2401_84494441的博客 1126

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习求职通关秘籍:Deep-Learning-Interview-Book开源项目深度解析与实战使用指南

例如,在目标检测章节,详细分析了预训练网络微调(Fine-tuning)的策略、模型压缩与加速方法(如TensorRT、剪枝、蒸馏),以及MobileNet、ShuffleNet等轻量级网络的设计准则。如果你发现了文档中的错误,或者有新的面试题想要分享,可以通过GitHub的Pull Request机制提交你的修改。该项目不仅系统梳理了从数学基础到前沿应用的庞大知识体系,更通过社区协作的方式,为AI从业者提供了一条清晰的职业进阶之路。项目内容涵盖了深度学习领域的方方面面,形成了严密的逻辑闭环。

wulechun的博客 366

Python深度学习:从入门到实战

亲爱的读者,欢迎您翻开这本书。我们即将探索的,是深度学习的宇宙——一个由数据、算法与算力构筑的奇妙世界。它既是严谨的科学,也是创造的艺术,更是一条通往未来智慧的修行之路。本书将带您从最基础的数学原理出发,亲手搭建神经网络,驾驭Transformer等前沿模型,最终将智慧转化为现实世界的价值。请放下畏惧,保持好奇。这不仅是一次知识的学习,更是一场思维的远行。来,随我一起,开启这趟非凡的旅程吧。

weixin_45747731的博客 300
上一篇: 图解机器学习算法(3) | KNN算法及其应用(机器学习通关指南·完结)
下一篇: 图解机器学习算法(5) | 朴素贝叶斯算法详解(机器学习通关指南·完结)
ShowMeAI
博客等级 码龄5年 6514粉丝 672原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

ShowMeAI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值