机器学习笔记——LDA线性判别分析

前言

机器学习的东西真是又多又杂啊,之前刷吴恩达就见过主成分分析,即PCA(Principle Component Analysis),没见过线性判别分析,即LDA(Linear Discriminant Analysis)。才知道前者是对无标签数据作压缩的,而后者可以对有标签的二分类、多分类任务的数据作压缩。

本文主要讲述了LDA算法的推导,以及展示了LDA算法的代码实现和应用。

参考资料:

周志华《机器学习》,人称西瓜书

更详细的算法推导:机器学习算法推导&手写实现03------线性判别分析 - 知乎 (zhihu.com)

一、算法推导

由前言可知,LDA相比于PCA,是用来处理有标签数据 的,为了使压缩后的数据仍然能表示分类的情况,我们应该让同类的样本尽可能靠近,异类的样本尽可能远离

数学表示为:给定数据集 <math xmlns="http://www.w3.org/1998/Math/MathML"> D = { x i , y i } i = 1 m D = \{x_i, y_i\}_{i=1}^m </math>D={xi,yi}i=1m,该数据集共有 <math xmlns="http://www.w3.org/1998/Math/MathML"> m m </math>m个样本,每个样本包含一个数据,即一个 <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n维的向量 <math xmlns="http://www.w3.org/1998/Math/MathML"> x i x_i </math>xi,以及一个标签,即一个数 <math xmlns="http://www.w3.org/1998/Math/MathML"> y i y_i </math>yi,代表该数据点所在的类别。

当 <math xmlns="http://www.w3.org/1998/Math/MathML"> y i ∈ { 0 , 1 } y_i \in \{0, 1\} </math>yi∈{0,1},说明这是一个二分类任务,我们先从简单的二分类开始讨论。

1. 二分类

1.1 优化目标

接下来,我们要用数学语言来表示同类的样本尽可能靠近,异类的样本尽可能远离这两个任务。

同类的样本尽可能靠近 ,也就是同类之间的方差要尽可能小

设压缩前,两个类的协方差矩阵分别为 <math xmlns="http://www.w3.org/1998/Math/MathML"> Σ 0 \Sigma_0 </math>Σ0和 <math xmlns="http://www.w3.org/1998/Math/MathML"> Σ 1 \Sigma_1 </math>Σ1

那么,压缩后的两个类的协方差矩阵为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T Σ 0 ω \omega^T \Sigma_0 \omega </math>ωTΣ0ω和 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T Σ 1 ω \omega^T \Sigma_1 \omega </math>ωTΣ1ω

定义"类内散度矩阵"(with-class scatter matrix)为

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) T S_{\omega} = \Sigma_0 + \Sigma_1 = \sum \limits_{x \in X_0} (x - \mu_0)^T + \sum \limits_{x \in X_1} (x - \mu_1)^T </math>Sω=Σ0+Σ1=x∈X0∑(x−μ0)T+x∈X1∑(x−μ1)T

那么,同类之间的方差要尽可能小,就是要最小化 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T S ω ω \omega^T S_{\omega} \omega </math>ωTSωω

异类的样本尽可能远离 ,也就是异类样本的均值的差值要尽可能大

设压缩前,两个类的均值分别为 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 0 \mu_0 </math>μ0和 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 1 \mu_1 </math>μ1

那么,压缩后的两个类的均值为 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T μ 0 \omega^T \mu_0 </math>ωTμ0和 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T μ 1 \omega^T \mu_1 </math>ωTμ1

定义"类间散度矩阵"(between-class scatter matrix)为

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T </math>Sb=(μ0−μ1)(μ0−μ1)T

那么,异类的样本尽可能远离,就是要最大化 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T S b ω \omega^T S_b\omega </math>ωTSbω

将上述两条件统一到一个式子,我们的优化目标就变为了

最大化 <math xmlns="http://www.w3.org/1998/Math/MathML"> J = ω T S b ω ω T S ω ω J = \frac{\omega^T S_b\omega}{\omega^T S_{\omega} \omega} </math>J=ωTSωωωTSbω

1.2 数学推导

由于 <math xmlns="http://www.w3.org/1998/Math/MathML"> J = ω T S b ω ω T S ω ω J = \frac{\omega^T S_b\omega}{\omega^T S_{\omega} \omega} </math>J=ωTSωωωTSbω分子分母都是关于 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω \omega </math>ω的二次项,因此,求解上述问题与 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω \omega </math>ω的大小无关,只与 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω \omega </math>ω的的方向有关。

我们不妨假设 <math xmlns="http://www.w3.org/1998/Math/MathML"> ω T S ω ω = 1 \omega^T S_{\omega} \omega = 1 </math>ωTSωω=1,问题转化为

<math xmlns="http://www.w3.org/1998/Math/MathML"> m i n ω − ω T S b ω min_{\omega} \space -\omega^T S_b\omega </math>minω −ωTSbω

<math xmlns="http://www.w3.org/1998/Math/MathML"> s t . ω T S ω ω = 1 st. \space \omega^T S_{\omega} \omega = 1 </math>st. ωTSωω=1

由拉格朗日乘子法,得

<math xmlns="http://www.w3.org/1998/Math/MathML"> L ( ω ) = − ω T S b ω + λ ( ω T S ω ω − 1 ) L(\omega) = -\omega^T S_b\omega + \lambda (\omega^T S_{\omega} \omega - 1) </math>L(ω)=−ωTSbω+λ(ωTSωω−1)

令 <math xmlns="http://www.w3.org/1998/Math/MathML"> ∂ L ( ω ) ∂ ω = − 2 S b ω + 2 λ S ω ω = 0 \frac{\partial L(\omega)}{\partial \omega} = -2 S_b \omega + 2 \lambda S_{\omega} \omega = 0 </math>∂ω∂L(ω)=−2Sbω+2λSωω=0

得 <math xmlns="http://www.w3.org/1998/Math/MathML"> S b ω = λ S ω ω 1 ◯ S_b \omega = \lambda S_{\omega} \omega \space \space \textcircled{1} </math>Sbω=λSωω 1◯

又 <math xmlns="http://www.w3.org/1998/Math/MathML"> S b ω = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T ω S_b \omega = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T \omega </math>Sbω=(μ0−μ1)(μ0−μ1)Tω,其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( μ 0 − μ 1 ) T ω (\mu_0 - \mu_1)^T \omega </math>(μ0−μ1)Tω可看作是个标量,因此 <math xmlns="http://www.w3.org/1998/Math/MathML"> S b ω S_b \omega </math>Sbω的方向恒与 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ 0 − μ 1 \mu_0 - \mu_1 </math>μ0−μ1相同,不妨令

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b ω = λ ( μ 0 − μ 1 ) 2 ◯ S_b \omega = \lambda (\mu_0 - \mu_1) \space \space \textcircled{2} </math>Sbω=λ(μ0−μ1) 2◯

由 <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 ◯ 2 ◯ \textcircled{1} \textcircled{2} </math>1◯2◯得

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω ω = μ 0 − μ 1 S_{\omega} \omega = \mu_0 - \mu_1 </math>Sωω=μ0−μ1

<math xmlns="http://www.w3.org/1998/Math/MathML"> ω = S ω − 1 ( μ 0 − μ 1 ) \omega = S_{\omega}^{-1} (\mu_0 - \mu_1) </math>ω=Sω−1(μ0−μ1)

在实践中,常常对 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω S_{\omega} </math>Sω做奇异值分解: <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω = U Σ V T S_{\omega} = U \Sigma V^T </math>Sω=UΣVT,故有 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 = V Σ − 1 U T S_{\omega}^{-1} = V \Sigma^{-1} U^T </math>Sω−1=VΣ−1UT,从而得到 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 S_{\omega}^{-1} </math>Sω−1

2. 多分类

2.1 问题求解

将问题扩展到多分类,定义所有样本的均值为 <math xmlns="http://www.w3.org/1998/Math/MathML"> μ \mu </math>μ,每个类对应的样本数量为 <math xmlns="http://www.w3.org/1998/Math/MathML"> m i m_i </math>mi,那么重新定义"类间散度矩阵"为

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T S_b = \sum\limits_{i=1}^N m_i (\mu_i - \mu) ( \mu_i - \mu )^T </math>Sb=i=1∑Nmi(μi−μ)(μi−μ)T

设总共由 <math xmlns="http://www.w3.org/1998/Math/MathML"> N N </math>N个类,重新定义"类内散度矩阵"为

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω = ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S_{\omega} = \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x - \mu_i) (x - \mu_i )^T </math>Sω=i=1∑Nx∈Xi∑(x−μi)(x−μi)T

在上述二分类中,我们将样本投影到一维空间,也就是一条直线上,而在多分类中,我们将样本投影到 <math xmlns="http://www.w3.org/1998/Math/MathML"> N − 1 N - 1 </math>N−1维空间,记投影矩阵 <math xmlns="http://www.w3.org/1998/Math/MathML"> W ∈ R d × ( N − 1 ) W \in R^{d \times (N -1)} </math>W∈Rd×(N−1),其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> d d </math>d表示原样本的维度数。

同理可得

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b W = λ S ω W S_b W = \lambda S_{\omega} W </math>SbW=λSωW

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 S b W = λ W S_{\omega}^{-1} S_b W = \lambda W </math>Sω−1SbW=λW

因此 <math xmlns="http://www.w3.org/1998/Math/MathML"> W W </math>W的解是 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 S b S_{\omega}^{-1} S_b </math>Sω−1Sb的最大 <math xmlns="http://www.w3.org/1998/Math/MathML"> N − 1 N - 1 </math>N−1个特征值所对应特征向量所组成的矩阵

2.2 全局散度矩阵

除了使用 <math xmlns="http://www.w3.org/1998/Math/MathML"> S b S_b </math>Sb和 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω S_{\omega} </math>Sω作为度量的标准,多分类LDA还可以有多种不同的实现,引入"全局散度矩阵"

<math xmlns="http://www.w3.org/1998/Math/MathML"> S t = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T S_t = \sum \limits_{i=1}^m (x_i - \mu)(x_i - \mu)^T </math>St=i=1∑m(xi−μ)(xi−μ)T

可以证明 <math xmlns="http://www.w3.org/1998/Math/MathML"> S t = S b + S ω S_t = S_b + S_{\omega} </math>St=Sb+Sω,如下:

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T = ∑ i = 1 N m i ( μ i μ i T − μ μ i T − μ i μ T + μ μ T ) \begin{aligned} S_b &= \sum\limits_{i=1}^N m_i (\mu_i - \mu) ( \mu_i - \mu )^T \\ &= \sum\limits_{i=1}^N m_i (\mu_i \mu_i^T - \mu \mu_i^T - \mu_i \mu^T + \mu \mu^T) \end{aligned} </math>Sb=i=1∑Nmi(μi−μ)(μi−μ)T=i=1∑Nmi(μiμiT−μμiT−μiμT+μμT)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> m i μ μ i T = = ∑ x ∈ X i μ x T m_i \mu \mu_i^T == \sum\limits_{x \in X_i} \mu x^T </math>miμμiT==x∈Xi∑μxT, <math xmlns="http://www.w3.org/1998/Math/MathML"> m i μ i μ T = ∑ x ∈ X i X μ T m_i \mu_i \mu^T = \sum\limits_{x \in X_i} X \mu^T </math>miμiμT=x∈Xi∑XμT,那么有

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b = ∑ i = 1 N ∑ x ∈ X i ( μ i μ i T − μ x T − x μ T + μ μ T ) S_b = \sum\limits_{i=1}^N \sum\limits_{x \in X_i} (\mu_i \mu_i^T -\mu x^T - x \mu^T + \mu \mu^T) </math>Sb=i=1∑Nx∈Xi∑(μiμiT−μxT−xμT+μμT)

又有

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω = ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T = ∑ i = 1 N ∑ x ∈ X i ( x x T − μ i x T − x μ i T + μ i μ i T ) \begin{aligned} S_{\omega} &= \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x - \mu_i) (x - \mu_i )^T \\ &= \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x x^T - \mu_i x^T - x \mu_i^T + \mu_i \mu_i^T) \end{aligned} </math>Sω=i=1∑Nx∈Xi∑(x−μi)(x−μi)T=i=1∑Nx∈Xi∑(xxT−μixT−xμiT+μiμiT)

那么,

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b + S ω = ∑ i = 1 N ∑ x ∈ X i ( x x T − μ x T − x μ T + μ μ T − μ i x T − x μ i T + 2 μ i μ i T ) S_b + S_{\omega} = \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x x^T -\mu x^T - x \mu^T + \mu \mu^T - \mu_i x^T - x \mu_i^T + 2 \mu_i \mu_i^T) </math>Sb+Sω=i=1∑Nx∈Xi∑(xxT−μxT−xμT+μμT−μixT−xμiT+2μiμiT)

其中, <math xmlns="http://www.w3.org/1998/Math/MathML"> ∑ i = 1 N ∑ x ∈ X i ( − μ i x T − x μ i T + 2 μ i μ i T ) = 0 \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (- \mu_i x^T - x \mu_i^T + 2 \mu_i \mu_i^T) = 0 </math>i=1∑Nx∈Xi∑(−μixT−xμiT+2μiμiT)=0

则有

<math xmlns="http://www.w3.org/1998/Math/MathML"> S b + S ω = ∑ i = 1 N ∑ x ∈ X i ( x x T − μ x T − x μ T + μ μ T ) = ∑ i = 1 N ∑ x ∈ X i ( x − μ ) ( x − μ ) T = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T = S t \begin{aligned} S_b + S_{\omega} &= \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x x^T -\mu x^T - x \mu^T + \mu \mu^T) \\ &= \sum\limits_{i=1}^N \sum \limits_{x \in X_i} (x - \mu) (x - \mu)^T \\ &= \sum\limits_{i=1}^m (x_i - \mu) (x_i - \mu)^T = S_t \end{aligned} </math>Sb+Sω=i=1∑Nx∈Xi∑(xxT−μxT−xμT+μμT)=i=1∑Nx∈Xi∑(x−μ)(x−μ)T=i=1∑m(xi−μ)(xi−μ)T=St

证毕

3. 等价模型表示

以上的算法推导是基于 <math xmlns="http://www.w3.org/1998/Math/MathML"> m a x ω ω T S b ω ω T S ω ω max_{\omega} \frac{\omega^T S_b\omega}{\omega^T S_{\omega} \omega} </math>maxωωTSωωωTSbω,或者说,基于 <math xmlns="http://www.w3.org/1998/Math/MathML"> m a x W t r ( W T S b W ) t r ( W T S ω W ) max_W \frac{ tr(W^T S_b W) }{ tr(W^T S_{\omega} W) } </math>maxWtr(WTSωW)tr(WTSbW),我们称之为LDA的除法模型。

实际上,LDA还有多种等价的模型表示,比如

(1) 减法模型:

<math xmlns="http://www.w3.org/1998/Math/MathML"> m a x W t r ( W T S b W ) − t r ( W T S ω W ) max_W tr(W^T S_b W) - tr(W^T S_{\omega} W) </math>maxWtr(WTSbW)−tr(WTSωW)

<math xmlns="http://www.w3.org/1998/Math/MathML"> s t . t r ( W T W ) = 1 st. \space \space tr(W^T W) = 1 </math>st. tr(WTW)=1

求解得到

<math xmlns="http://www.w3.org/1998/Math/MathML"> ( S ω − S b ) W = λ W (S_{\omega} - S_b) W = \lambda W </math>(Sω−Sb)W=λW

即 <math xmlns="http://www.w3.org/1998/Math/MathML"> W W </math>W是 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − S b S_{\omega} - S_b </math>Sω−Sb前 <math xmlns="http://www.w3.org/1998/Math/MathML"> N − 1 N-1 </math>N−1个最大特征值对应的特征向量组成的矩阵

(2) 除法正则模型:

<math xmlns="http://www.w3.org/1998/Math/MathML"> m a x W t r ( W T S b W ) t r ( W T S ω W ) + λ t r ( W T W ) max_W \frac{ tr(W^T S_b W) }{ tr(W^T S_{\omega} W) } + \lambda tr(W^T W) </math>maxWtr(WTSωW)tr(WTSbW)+λtr(WTW)

<math xmlns="http://www.w3.org/1998/Math/MathML"> s t . t r ( W T S ω W ) = 1 st. \space \space tr(W^T S_{\omega} W) = 1 </math>st. tr(WTSωW)=1

由拉格朗日乘子法,得

<math xmlns="http://www.w3.org/1998/Math/MathML"> L = t r ( W T S b W ) + λ t r ( W T W ) + β ( t r ( W T S ω W ) − 1 ) L = tr(W^T S_b W) + \lambda tr(W^T W) + \beta (tr(W^T S_{\omega} W) - 1) </math>L=tr(WTSbW)+λtr(WTW)+β(tr(WTSωW)−1)

<math xmlns="http://www.w3.org/1998/Math/MathML"> ∂ L ∂ W = 2 S b W + 2 λ W + 2 β S ω W = 0 \frac{\partial L}{\partial W} = 2 S_b W + 2 \lambda W + 2 \beta S_{\omega} W = 0 </math>∂W∂L=2SbW+2λW+2βSωW=0

<math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 ( S b + λ I ) W = − β W S_{\omega}^{-1}(S_b + \lambda I) W = -\beta W </math>Sω−1(Sb+λI)W=−βW

即 <math xmlns="http://www.w3.org/1998/Math/MathML"> W W </math>W是 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − 1 ( S b + λ I ) S_{\omega}^{-1}(S_b + \lambda I) </math>Sω−1(Sb+λI)前 <math xmlns="http://www.w3.org/1998/Math/MathML"> N − 1 N-1 </math>N−1个最大特征值对应的特征向量组成的矩阵

(3) 减法正则模型:

<math xmlns="http://www.w3.org/1998/Math/MathML"> m a x W t r ( W T S b W ) − t r ( W T S ω W ) − λ t r ( W T W ) max_W tr(W^T S_b W) - tr(W^T S_{\omega} W) - \lambda tr(W^T W) </math>maxWtr(WTSbW)−tr(WTSωW)−λtr(WTW)

<math xmlns="http://www.w3.org/1998/Math/MathML"> s t . t r ( W T W ) = 1 st. \space \space tr(W^T W) = 1 </math>st. tr(WTW)=1

求得问题的解仍然是 <math xmlns="http://www.w3.org/1998/Math/MathML"> S ω − S b S_{\omega} - S_b </math>Sω−Sb前 <math xmlns="http://www.w3.org/1998/Math/MathML"> N − 1 N-1 </math>N−1个最大特征值对应的特征向量组成的矩阵

二、代码示例

大半都是gpt写的(

python 复制代码
X, y = read_data(PATH)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)

accuracy_pca = []
accuracy_lda = []

n_components_range = range(1, 35, 2)
for n_components in n_components_range:
    # PCA
    pca = PCA(n_components=n_components)
    X_train_pca = pca.fit_transform(X_train)
    X_test_pca = pca.transform(X_test)
    knn_pca = KNeighborsClassifier()
    knn_pca.fit(X_train_pca, y_train)
    y_pred_pca = knn_pca.predict(X_test_pca)
    accuracy_pca.append(accuracy_score(y_test, y_pred_pca))

    # LDA
    lda = LinearDiscriminantAnalysis(n_components=n_components)
    X_train_lda = lda.fit_transform(X_train, y_train)
    X_test_lda = lda.transform(X_test)
    knn_lda = KNeighborsClassifier()
    knn_lda.fit(X_train_lda, y_train)
    y_pred_lda = knn_lda.predict(X_test_lda)
    accuracy_lda.append(accuracy_score(y_test, y_pred_lda))

fig, ax = plt.subplots()
ax.plot(n_components_range, accuracy_pca, label='PCA')
ax.plot(n_components_range, accuracy_lda, label='LDA')
ax.set_xlabel('n_components')
ax.set_ylabel('Accuracy')
ax.legend()
plt.show()

在ORL数据集的测试结果如下:

其实可以再探讨一下减法模型还有正则模型的性能,但是sklearn貌似不支持(?),得手搓,急着交作业就没再搞了。。

相关推荐
WPG大大通6 分钟前
有奖直播 | onsemi IPM 助力汽车电气革命及电子化时代冷热管理
大数据·人工智能·汽车·方案·电气·大大通·研讨会
百锦再8 分钟前
AI对汽车行业的冲击和比亚迪新能源汽车市场占比
人工智能·汽车
ws20190712 分钟前
抓机遇,促发展——2025第十二届广州国际汽车零部件加工技术及汽车模具展览会
大数据·人工智能·汽车
Zhangci]15 分钟前
Opencv图像预处理(三)
人工智能·opencv·计算机视觉
新加坡内哥谈技术33 分钟前
口哨声、歌声、boing声和biotwang声:用AI识别鲸鱼叫声
人工智能·自然语言处理
wx74085132644 分钟前
小琳AI课堂:机器学习
人工智能·机器学习
FL16238631291 小时前
[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别
人工智能·yolo·目标检测
YesPMP平台官方1 小时前
AI+教育|拥抱AI智能科技,让课堂更生动高效
人工智能·科技·ai·数据分析·软件开发·教育
Data-Miner1 小时前
196页满分PPT | 集团流程优化及IT规划项目案例
大数据·数据分析
鸽芷咕1 小时前
【Python报错已解决】ModuleNotFoundError: No module named ‘paddle‘
开发语言·python·机器学习·bug·paddle