最大似然估计、最大后验概率估计和贝叶斯估计

  本内容主要介绍概率论与统计学相关基础知识,主要涉及 联合概率、边缘概率和条件概率;贝叶斯公式、先验概率、后验概率和似然函数;最大似然估计、最大后验概率估计和贝叶斯估计 等。为机器学习中的贝叶斯分类提供相关基础知识。

一、基础知识

1.1 概率与统计

  概率论(Probability) 和 统计学(Statistics)看似两个相近的概念,其实研究的问题刚好相反。概率论 是集中研究概率及随机现象的数学分支,是研究随机性或不确定性等现象的数学。统计学 是在数据分析的基础上,研究如何测定、收集、整理、归纳和分析反映数据,以便给出正确消息的科学。

  概率论是给定条件(已知模型和参数)下,对要发生的事件(新输入数据)的预测。统计推断是在给定数据(训练数据)下,对数据生成方式(模型和参数)的归纳总结。简单地说,概率论是已知模型和参数,推数据;统计学是已知数据,推模型和参数。概率论是统计学的数学基础,统计学是对概率论的应用

1.2 联合概率、边缘概率和条件概率
1.2.1 联合概率

  假设有随机变量 X X X Y Y Y,此时, P ( X = a , Y = b ) P(X=a,Y=b) P(X=a,Y=b) 用于表示 X = a X=a X=a Y = b Y=b Y=b 的概率。这类包含多个条件且所有条件同时成立的概率称为 联合概率。我们也可以使用 P ( a , b ) P(a,b) P(a,b) P ( a b ) P(ab) P(ab) 表示联合概率。

1.2.2 边缘概率

  边缘概率是与联合概率对应的, P ( X = a ) P(X=a) P(X=a) P ( Y = b ) ​ P(Y=b)​ P(Y=b),这类仅与单个随机变量有关的概率称为 边缘概率

1.2.3 条件概率

  条件概率 表示在条件 Y = b Y=b Y=b 成立的情况下, X = a X=a X=a 的概率,记作 P ( X = a    ∣    Y = b ) P(X=a\;| \; Y=b) P(X=aY=b)。它具有如下性质:在条件 Y = b Y=b Y=b X X X 的条件分布,也是一种 X X X 的概率分布,因此穷举 X X X 的可取值之后,所有这些值对应的概率之和为 1,即 ∑ a P ( X = a    ∣    Y = b ) = 1 \sum_a P(X=a \; | \; Y=b) = 1 aP(X=aY=b)=1

1.2.4 联合概率与边缘概率的关系

(1) P ( X = a ) = ∑ b P ( X = a , Y = b ) P(X=a) = \sum_b P(X=a, Y=b) \tag{1} P(X=a)=bP(X=a,Y=b)(1)

(2) P ( Y = b ) = ∑ a P ( X = a , Y = b ) P(Y=b) = \sum_a P(X=a, Y=b) \tag{2} P(Y=b)=aP(X=a,Y=b)(2)

1.2.5 联合概率、边缘概率与条件概率之间的关系

(3) P ( X = a , Y = b ) = P ( X = a    ∣    Y = b ) P ( Y = b ) = P ( Y = b    ∣    X = a ) P ( X = a ) \begin{aligned} P(X=a,Y=b) &= P(X=a \; | \; Y=b)P(Y=b) \\\\ &= P(Y=b \; | \; X=a)P(X=a) \end{aligned} \tag{3} P(X=a,Y=b)=P(X=aY=b)P(Y=b)=P(Y=bX=a)P(X=a)(3)

(4) P ( X = a    ∣    Y = b ) = P ( X = a , Y = b ) P ( Y = b ) P(X=a \; | \; Y=b) = \frac{P(X=a, Y=b)}{P(Y=b)} \tag{4} P(X=aY=b)=P(Y=b)P(X=a,Y=b)(4)


1.3 全概率公式

  假设随机变量 X ​ X​ X 的所有可能取值为 ( a 1 , a 2 , ⋯   , a n ) ​ (a_1,a_2,\cdots,a_n)​ (a1,a2,,an),它们构成一个完备事件组,即它们两两互斥,其和为全集;并且 P ( X = a i ) ​ P(X=a_i)​ P(X=ai) 大于 0 ​ 0​ 0,则对任意事件 Y = b ​ Y=b​ Y=b

(5) P ( Y = b ) = P ( Y = b    ∣    X = a 1 ) P ( X = a 1 ) + ⋯ + P ( Y = b    ∣    X = a n ) P ( X = a n ) = ∑ i = 1 n P ( Y = b    ∣    X = a i ) P ( X = a i ) \begin{aligned} P(Y=b) &= P(Y=b \; | \; X=a_1)P(X=a_1) + \cdots + P(Y=b \; | \; X=a_n)P(X=a_n) \\\\ &= \sum_{i=1}^{n} P(Y=b \; | \; X=a_i)P(X=a_i) \end{aligned} \tag{5} P(Y=b)=P(Y=bX=a1)P(X=a1)++P(Y=bX=an)P(X=an)=i=1nP(Y=bX=ai)P(X=ai)(5)
上面的公式称为 全概率公式。它将对复杂事件 Y = b ​ Y=b​ Y=b 的概率问题 转化为在不同情况下发生的简单事件的概率的求和问题 。

1.4 贝叶斯公式

(6) P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)} \tag{6} P(YX)=P(X)P(XY)P(Y)(6)

上面的公式称为 贝叶斯公式,也叫做 贝叶斯定理贝叶斯法则

1.5 先验概率、后验概率和似然函数

  先验概率(Prior Probability)是指根据以往经验和分析得到的概率。

  后验概率(Posterior Probability)是指在得到 “结果” 的信息后重新修正的概率。

  在统计学中,似然函数(Likelihood Function)是一种关于统计模型参数的函数。给定输出 X ​ X​ X 时,关于参数 θ ​ \theta​ θ 的似然函数 L ( θ ∣ X ) ​ L(\theta|X)​ L(θX) (在数值上)等于给定参数 θ ​ \theta​ θ 后变量 X ​ X​ X 的概率: L ( θ ∣ X ) = P ( X ∣ θ ) ​ L(\theta|X) = P(X|\theta)​ L(θX)=P(Xθ)

二、概率模型参数估计方法

  假如我们现在有一组观测数据(即数据集,样本),并且我们知道它们是从某一种分布中随机取出来的,但是我们并不知道这个分布的具体参数,即 “模型已定,参数未知”。那我们应该如何去估计参数呢?

  对于参数估计,统计学界的两个学派分别提供了不同的解决方案:频率学派 认为参数虽然未知,但却是客观存在的固定值,因此,可通过优化似然函数等准则来确定参数值;贝叶斯学派 则认为参数是未观察到的随机变量,其本身也可有分布,因此,可假定参数服从一个先验分布,然后基于观测到的数据来计算参数的后验分布。

  下面将介绍三种概率模型参数估计方法,分别为 源自频率学派的最大似然估计,以及源自贝叶斯学派的最大后验概率估计和贝叶斯估计

2.1 最大似然估计

  最大似然估计(Maximum Likelihood Estimation,MLE,也叫极大似然估计)是建立在极大似然原理的基础上的一个统计方法,是概率论在统计学中的应用。其核心思想是:认为当前发生的事件(即观测数据)是概率最大的事件,则使得当前发生的事件发生概率最大的参数就是最好的参数。

  在最大似然估计中,认为参数为固定的值,只是其值未知;然后基于观测数据,通过最大化似然函数来求解参数。

  注意:对一个独立同分布的数据集来说,总体的似然就是每个样本似然的乘积。

2.1.1 示例一:二项分布的最大似然估计(抛硬币)

  针对抛硬币的例子,抛 10 次的结果为: 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 ​ 0,0,0,1,0,0,0,1,0,0​ 0001000100,,其中正面朝上为 1 ​ 1​ 1,反面朝上为 0 ​ 0​ 0,求这个硬币正面朝上的概率是多大?

  我们知道每次抛硬币都是一次二项分布,设正面朝上的概率为 θ ​ \theta​ θ,那么似然函数为:

(7) L ( X ; θ ) = ∏ i = 1 n P ( x i , θ ) = ∏ i = 1 n θ x i ( 1 − θ ) 1 − x i L(X; \theta) = \prod_{i=1}^{n} P(x_i, \theta) = \prod_{i=1}^{n}\theta^{x_i}(1-\theta)^{1-x_i} \tag{7} L(X;θ)=i=1nP(xi,θ)=i=1nθxi(1θ)1xi(7)

其中,正面朝上时, x i = 1 ​ x_i =1​ xi=1;反面朝上时, x i = 0 ​ x_i=0​ xi=0

  为了求解方便,我们通常会将似然函数转成对数似然函数,然后再求解(可以转成对数似然函数的主要原因是对数函数并不影响函数的凹凸性。)。则有
(8) ln ⁡ L ( X ; θ ) = ln ⁡ ∏ i = 1 n θ x i ( 1 − θ ) 1 − x i = ∑ i = 1 n ln ⁡ ( θ x i ( 1 − θ ) 1 − x i ) = ∑ i = 1 n ( ln ⁡ θ x i + ln ⁡ ( 1 − θ ) 1 − x i ) = ∑ i = 1 n ( x i ln ⁡ θ + ( 1 − x i ) ln ⁡ ( 1 − θ ) ) \begin{aligned} \ln L(X; \theta) &= \ln \prod_{i=1}^{n}\theta^{x_i}(1-\theta)^{1-x_i} \\ &= \sum_{i=1}^{n} \ln (\theta^{x_i}(1-\theta)^{1-x_i}) \\ &= \sum_{i=1}^{n} (\ln \theta^{x_i} + \ln (1-\theta)^{1-x_i}) \\ &= \sum_{i=1}^{n} (x_i \ln \theta + (1-x_i)\ln (1-\theta)) \end{aligned} \tag{8} lnL(X;θ)=lni=1nθxi(1θ)1xi=i=1nln(θxi(1θ)1xi)=i=1n(lnθxi+ln(1θ)1xi)=i=1n(xilnθ+(1xi)ln(1θ))(8)

对其求导,得

(9) ∂ ∂ θ ln ⁡ L ( X ; θ ) = ∑ i = 1 n ∂ ∂ θ ( x i ln ⁡ θ + ( 1 − x i ) ln ⁡ ( 1 − θ ) ) = ∑ i = 1 n x i ∂ ∂ θ ln ⁡ θ + ∑ i = 1 n ( 1 − x i ) ∂ ∂ θ ln ⁡ ( 1 − θ ) = 1 θ ∑ i = 1 n x i − 1 1 − θ ∑ i = 1 n ( 1 − x i ) \begin{aligned} \frac{\partial}{\partial \theta} \ln L(X; \theta) &= \sum_{i=1}^{n} \frac{\partial}{\partial \theta}(x_i \ln \theta + (1-x_i)\ln (1-\theta)) \\ &= \sum_{i=1}^{n} x_i \frac{\partial}{\partial \theta} \ln \theta + \sum_{i=1}^{n} (1-x_i) \frac{\partial}{\partial \theta} \ln (1-\theta) \\ &= \frac{1}{\theta} \sum_{i=1}^{n} x_i - \frac{1}{1-\theta} \sum_{i=1}^{n} (1-x_i) \end{aligned} \tag{9} θlnL(X;θ)=i=1nθ(xilnθ+(1xi)ln(1θ))=i=1nxiθlnθ+i=1n(1xi)θln(1θ)=θ1i=1nxi1θ1i=1n(1xi)(9)

令导数为 0 0 0,可求得

(10) θ ^ = 1 n ∑ i = 1 n x i \hat{\theta} = \frac{1}{n}\sum_{i=1}^{n} x_i \tag{10} θ^=n1i=1nxi(10)

将上面的观测数据代入,可求得 θ ^ = 0.2 \hat{\theta} = 0.2 θ^=0.2

2.1.2 实例二:正态分布的最大似然估计

  假设样本服从正态分布 N   ( μ , σ 2 ) N ~ (\mu, \sigma^2) N (μ,σ2),则其似然函数为

(11) L ( μ , σ 2 ) = ∏ i = 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 L(\mu, \sigma^2) =\prod_{i=1}^{n} \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x_i - \mu)^2}{2\sigma^2}} \tag{11} L(μ,σ2)=i=1n2π σ1e2σ2(xiμ)2(11)

对其求对数得

(12) ln ⁡ L ( μ , σ 2 ) = ∑ i = 1 n ln ⁡ 1 2 π σ e − ( x i − μ ) 2 2 σ 2 = ∑ i = 1 n ln ⁡ 1 2 π σ − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 = ∑ i = 1 n ln ⁡ 1 2 π + ∑ i = 1 n ln ⁡ 1 σ − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 = n ln ⁡ 1 2 π − n 2 ln ⁡ σ 2 − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \begin{aligned} \ln L(\mu, \sigma^2) &= \sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x_i - \mu)^2}{2\sigma^2}} \\ &= \sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}\sigma} - \sum_{i=1}^{n} \frac{(x_i - \mu)^2}{2\sigma^2} \\ &= \sum_{i=1}^{n} \ln \frac{1}{\sqrt{2\pi}} + \sum_{i=1}^{n} \ln \frac{1}{\sigma} - \sum_{i=1}^{n} \frac{(x_i - \mu)^2}{2\sigma^2} \\ &= n \ln \frac{1}{\sqrt{2\pi}} - \frac{n}{2} \ln \sigma^2 - \frac{1}{2\sigma^2} \sum_{i=1}^{n} (x_i - \mu)^2 \end{aligned} \tag{12} lnL(μ,σ2)=i=1nln2π σ1e2σ2(xiμ)2=i=1nln2π σ1i=1n2σ2(xiμ)2=i=1nln2π 1+i=1nlnσ1i=1n2σ2(xiμ)2=nln2π 12nlnσ22σ21i=1n(xiμ)2(12)

分别对 μ \mu μ σ 2 \sigma^2 σ2 求偏导,并令偏导数为 0,得

(13) { ∂ ∂ μ ln ⁡ L ( μ , σ 2 ) = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 1 σ 2 ( ∑ i = 1 n x i − n μ ) = 0 ∂ ∂ σ 2 ln ⁡ L ( μ , σ 2 ) = − n 2 σ 2 + 1 2 σ 4 ∑ i = 1 n ( x i − μ ) 2 = 0 \left \{ \begin{array}{cc} \begin{aligned} &\frac{\partial}{\partial \mu} \ln L(\mu, \sigma^2) =\frac{1}{\sigma^2} \sum_{i=1}^n(x_i - \mu) =\frac{1}{\sigma^2} (\sum_{i=1}^n x_i - n\mu) =0 \\\\ &\frac{\partial}{\partial \sigma^2} \ln L(\mu, \sigma^2) =-\frac{n}{2\sigma^2} + \frac{1}{2\sigma^4}\sum_{i=1}^{n} (x_i - \mu)^2 =0 \end{aligned} \end{array} \right. \tag{13} μlnL(μ,σ2)=σ21i=1n(xiμ)=σ21(i=1nxinμ)=0σ2lnL(μ,σ2)=2σ2n+2σ41i=1n(xiμ)2=0(13)

求得

(14) { μ ^ = 1 n ∑ i = 1 n x i = x ˉ σ 2 ^ = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 \left \{ \begin{array}{cc} \begin{aligned} &\hat{\mu} = \frac{1}{n} \sum_{i=1}^{n}x_i = \bar{x} \\\\ &\hat{\sigma^2} = \frac{1}{n} \sum_{i=1}^{n} (x_i - \bar{x})^2 \end{aligned} \end{array} \right. \tag{14} μ^=n1i=1nxi=xˉσ2^=n1i=1n(xixˉ)2(14)

2.1.3 求解步骤

  最大似然估计的求解步骤:

  1. 确定似然函数。

  2. 将似然函数转换为对数似然函数。

  3. 求导数,并令其为 0 0 0

  4. 求解得到模型中参数的最优值。

  极大似然估计只关注当前的观测数据,也就是只关注当前发生的事件,不考虑事件的先验情况。由于计算简单,而且不需要关注先验知识,因此在机器学习中的应用非常广,最常见的就是 Logistic 回归。

2.2 最大后验概率估计

  在最大似然估计中,是求使似然函数最大的参数。现在问题稍微复杂一点点,假如这个参数有一个先验概率呢?比如,上面的抛硬币的例子,我们的经验告诉我们,硬币一般都是匀称的,也就是 θ = 0.5 \theta = 0.5 θ=0.5 的概率最大, θ = 0.2 ​ \theta = 0.2​ θ=0.2 的概率比较小。这个时候我们应该怎么估计参数呢?这就是 最大后验概率估计(Maximum a Posteriori Estimation,MAP)要考虑的问题。

  通过前面的介绍,我们了解到在最大似然估计中,认为参数为固定的值,只是其值未知,通过最大化似然函数来求解参数。但是在最大后验概率估计中,认为参数是一个随机变量,其本身也具有某种概率分布,称为先验分布。在求解时,除了要考虑似然函数 P ( X ∣ θ ) ​ P(X|\theta)​ P(Xθ) 之外,还要考虑 θ ​ \theta​ θ 的先验分布 P ( θ ) ​ P(\theta)​ P(θ),因此其认为是 P ( X ∣ θ ) P ( θ ) ​ P(X|\theta) P(\theta)​ P(Xθ)P(θ) 取最大值的 θ ​ \theta​ θ 就是最好的 θ ​ \theta​ θ。此时要最大化的函数变为 P ( X ∣ θ ) P ( θ ) ​ P(X|\theta) P(\theta)​ P(Xθ)P(θ),由于 X ​ X​ X 的先验分布 P ( X ) ​ P(X)​ P(X) 是固定的,因此最大化函数可变为 P ( X ∣ θ ) P ( θ ) / P ( X ) ​ {P(X|\theta)P(\theta)} / {P(X)}​ P(Xθ)P(θ)/P(X),根据贝叶斯公式可知,实际上要最大化的函数是 P ( θ ∣ X ) ​ P(\theta|X)​ P(θX),其为 θ ​ \theta​ θ 的后验概率。最大化后验概率估计可以看作是正则化的最大似然估计,当然机器学习或深度学习中的正则化通常是加法,而在最大后验概率估计中采用的是乘法, P ( θ ) ​ P(\theta)​ P(θ) 是正则项。在最大似然估计中,由于认为 θ ​ \theta​ θ 是固定的,因此 P ( θ ) = 1 ​ P(\theta) = 1​ P(θ)=1

2.2.1 示例一:参数 θ \theta θ 的先验分布为 Beta 分布

  我们继续使用上面的抛硬币的例子,假设参数 θ ​ \theta​ θ 的先验分布为 Beta 分布。则

(15) P ( X ∣ θ ) P ( θ ) = ∏ i = 1 n θ x i ( 1 − θ ) 1 − x i 1 B ( α , β ) θ α − 1 ( 1 − θ ) β − 1 P(X|\theta)P(\theta) = \prod_{i=1}^{n}\theta^{x_i}(1-\theta)^{1-x_i} \frac{1}{B(\alpha, \beta)} \theta^{\alpha-1} (1-\theta)^{\beta-1} \tag{15} P(Xθ)P(θ)=i=1nθxi(1θ)1xiB(α,β)1θα1(1θ)β1(15)

对其求对数得

(16) ln ⁡ P ( X ∣ θ ) P ( θ ) = ∑ i = 1 n ln ⁡ ( θ x i ( 1 − θ ) 1 − x i ) + ln ⁡ 1 B ( α , β ) + ln ⁡ θ α − 1 + ln ⁡ ( 1 − θ ) β − 1 = ln ⁡ θ ∑ i = 1 n x i + ln ⁡ ( 1 − θ ) ∑ i = 1 n ( 1 − x i ) − ln ⁡ B ( α , β ) + ( α − 1 ) ln ⁡ θ + ( β − 1 ) ln ⁡ ( 1 − θ ) \begin{aligned} \ln P(X|\theta)P(\theta) &= \sum_{i=1}^{n} \ln \left(\theta^{x_i}(1-\theta)^{1-x_i}\right) + \ln \frac{1}{B(\alpha, \beta)} + \ln \theta^{\alpha-1} + \ln (1-\theta)^{\beta-1} \\\\ &= \ln \theta \sum_{i=1}^{n} x_i +\ln(1-\theta)\sum_{i=1}^{n} (1-x_i) \\ &\quad\quad-\ln B(\alpha, \beta) +(\alpha-1) \ln \theta +(\beta - 1) \ln (1-\theta) \end{aligned} \tag{16} lnP(Xθ)P(θ)=i=1nln(θxi(1θ)1xi)+lnB(α,β)1+lnθα1+ln(1θ)β1=lnθi=1nxi+ln(1θ)i=1n(1xi)lnB(α,β)+(α1)lnθ+(β1)ln(1θ)(16)

对参数求导,得

(17) ∂ ∂ θ ln ⁡ P ( X ∣ θ ) P ( θ ) = 1 θ ∑ i = 1 n x i − 1 1 − θ ∑ i = 1 n ( 1 − x i ) + α − 1 θ − β − 1 1 − θ \begin{aligned} \frac{\partial}{\partial \theta} \ln P(X|\theta)P(\theta) &= \frac{1}{\theta} \sum_{i=1}^{n} x_i -\frac{1}{1-\theta}\sum_{i=1}^{n}(1-x_i) +\frac{\alpha-1}{\theta} -\frac{\beta-1}{1-\theta} \end{aligned} \tag{17} θlnP(Xθ)P(θ)=θ1i=1nxi1θ1i=1n(1xi)+θα11θβ1(17)

令其为 0 0 0,求得

(18) θ ^ = ∑ i = 1 n x i + α − 1 n + α + β − 2 \hat{\theta} = \frac{\sum_{i=1}^{n}x_i + \alpha-1}{n+\alpha + \beta - 2} \tag{18} θ^=n+α+β2i=1nxi+α1(18)

  假设 Beta 分布的参数分别为 α = 3 \alpha=3 α=3 β = 3 \beta = 3 β=3,将上面的观测数据代入,可求得

(19) θ ^ = 2 + 3 − 1 10 + 3 + 3 − 2 = 4 14 = 0.2857 \hat{\theta} = \frac{2 + 3 - 1}{10 + 3 + 3 - 2} = \frac{4}{14} = 0.2857 \tag{19} θ^=10+3+322+31=144=0.2857(19)

2.2.2 求解步骤

  最大后验概率估计的求解步骤:

  1. 确定参数的先验分布以及似然函数。
  2. 确定参数的后验分布函数。
  3. 将后验分布函数转换为对数函数。
  4. 求对数函数的最大值(求导,解方程)

  最大后验概率估计不只是关注当前的观测数据,还关注已经发生过的先验知识。

  最大后验估计和最大似然估计的区别:最大后验估计允许我们把先验知识加入到估计模型中,这在样本很少的时候是很有用的(因此朴素贝叶斯在较少的样本下就能有很好的表现),因为样本很少的时候我们的观测结果很可能出现偏差,此时先验知识会把估计的结果“拉”向先验,实际的预估结果将会在先验结果的两侧形成一个顶峰。通过调节先验分布的参数,比如beta分布的α,β,我们还可以调节把估计的结果“拉”向先验的幅度,α,β越大,这个顶峰越尖锐。这样的参数,我们叫做预估模型的“超参数”。

2.3 贝叶斯估计

  贝叶斯估计是最大后验概率估计的进一步扩展,贝叶斯估计同样假定参数是一个随机变量,但贝叶斯估计并不是直接估计出参数的某个特定值,而是估计参数的分布,这是贝叶斯估计与最大后验概率估计不同的地方。在贝叶斯估计中,先验分布是不可忽略的。

待添加……

参考:

[1] 周志华《机器学习》
[2] 李航《统计学习方法》
[3] 贝叶斯估计、最大似然估计、最大后验概率估计
[4] 最大似然估计、最大后验估计、贝叶斯估计的对比
[5] 最大似然估计 (MLE) 最大后验概率(MAP)
[6] 极大似然估计详解

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值