线性回归深度理解

本文详细介绍了线性回归,包括基本公式、损失函数、参数优化和多角度理解,如概率和几何角度。接着讨论了带正则项的线性回归,如Lasso、Ridge和Elastic Net,分析了它们的特点和应用场景。最后探讨了多项式回归和带核函数的线性回归,强调了选择合适映射维度的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  线性回归模型是一种确定变量之间的相关关系的一种数学回归模型。一般用来处理变量之间满足一定线性关系的问题
在这里插入图片描述

一、经典的线性回归

1.简单介绍

其基本公式为 Y i ^ = β 0 + β 1 X i 1 + β 2 X i 2 + . . . + β p X i p , i = 1 , . . . , n \hat{Y_i}=\beta_0+\beta_1X_{i1}+\beta_2X_{i2}+...+\beta_pX_{ip},\quad\quad i=1,...,n Yi^=β0+β1Xi1+β2Xi2+...+βpXip,i=1,...,n
矩阵表达形式为: Y ^ = β T X \hat Y=\beta^TX Y^=βTX

其中 Y ^ \hat Y Y^是所有数据的预测标签,为一个列向量
Y ^ = ( Y ^ 1 Y ^ 2 . . . Y ^ n ) \hat Y = \left( {\begin{array}{cc} \hat Y_1 \\ \hat Y_2 \\ .\\ .\\ .\\ \hat Y_n \end{array} } \right) Y^=Y^1Y^2...Y^n
β \beta β是所有参数值构成的列向量
β = ( β 0 β 1 . . . β p ) \beta = \left( {\begin{array}{cc} \beta_0 \\ \beta_1 \\ .\\ .\\ .\\ \beta_p \end{array} } \right) β=β0β1...βp
X X X n ⋅ p n\cdot p np的矩阵,其中 n n n为当前样本的数据量, p p p为参数的个数(其第一列元素全为1,做矩阵运算时用来与 β 0 \beta_0 β0相乘)

X = ( 1 x 11 ⋯ a 1 p 1 x 21 ⋯ a 2 p ⋮ ⋮ ⋱ ⋮ 1 x n 1 ⋯ a n p ) X = \left( {\begin{array}{cccc} 1 & x_{11} & \cdots & a_{1p}\\ 1 & x_{21} & \cdots & a_{2p}\\ \vdots & \vdots & \ddots & \vdots\\ 1 & x_{n1} & \cdots & a_{np}\\ \end{array} } \right) X=111x11x21xn1a1pa2panp

2.损失函数

这里我们可以采用平方损失函数来表示预测值与真实值之间的误差:
L ( β ) = ∣ ∣ Y ^ − Y ∣ ∣ 2 = ∣ ∣ β T X − Y ∣ ∣ 2 = ( β T X − Y ) T ( β T X − Y ) \begin{aligned}L(\beta)&=||\hat Y-Y||^2\\&=||\beta^TX-Y||^2\\&=(\beta^TX-Y)^T(\beta^TX-Y)\end{aligned} L(β)=Y^Y2=βTXY2=(βTXY)T(βTXY)

3.参数优化

最小二乘法

很显然该损失函数是一个关于 β \beta β的凸函数,因此我们可以采用最小二乘法求解其解析解(即另其对 β \beta β的导数为0),求解可得:
β = ( X T X ) − 1 X T Y \beta=(X^TX)^{-1}X^TY β=(XTX)1XTY
这里对求解过程感兴趣的可以看一下我的另一篇博客,其中有具体的推导过程ALS算法理解

梯度下降

同时我们可以采用梯度下降的方式进行参数优化,首先我们可以计算出某一点的梯度:
L ( β ) = ∣ ∣ Y ^ − Y ∣ ∣ 2 = ∣ ∣ β T X − Y ∣ ∣ 2 = ( β T X − Y ) T ( β T X − Y ) \begin{aligned}L(\beta)&=||\hat Y-Y||^2\\&=||\beta^TX-Y||^2\\&=(\beta^TX-Y)^T(\beta^TX-Y)\end{aligned} L(β)=Y^Y2=βTXY2=(βTXY)T(βTXY)
∂ L ( β ) ∂ β = ( β T X − Y ) X \frac{\partial L(\beta)}{\partial \beta}=(\beta^TX-Y)X βL(β)=(βTXY)X
然后即可以沿着负梯度方向更新参数: θ = θ − α ∂ L ( β ) ∂ β \theta=\theta-\alpha \frac{\partial L(\beta)}{\partial \beta} θ=θαβL(β)
直到梯度为0,或者满足一定的终止条件。其中 α \alpha α为学习率,是人工指定的超参数

4.多角度理解线性回归

概率角度理解

  无论我们的模型有多精确,其与真实值之间一定会存在误差,我们假设第 i i i个样本与真实值 Y i Y_i Yi的误差为 ε i \varepsilon_i εi,即: Y i = β 0 + β 1 X i 1 + β 2 X i 2 + . . . + β p X i p + ε i , i = 1 , . . . , n {Y_i}=\beta_0+\beta_1X_{i1}+\beta_2X_{i2}+...+\beta_pX_{ip}+\varepsilon_i,\quad\quad i=1,...,n Yi=β0+β1Xi1+β2Xi2+...+βpXip+εi,i=1,...,n
扩充到整个样本可以表达为: Y = β T X + ε Y=\beta^TX+\varepsilon Y=βTX+ε其中 ε \varepsilon ε为所有误差构成的列向量

  概率论中有个假设是在一个数据集数据量足够大的情况下,那么这个数据集的数据分布一定为正态分布,因此我们不妨假设 ε \varepsilon ε是满足均值为0,方差为 σ 2 \sigma^2 σ2的正态分布,即 ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma^2) εN(0,σ2)
那么 Y Y Y也将符合以 β T X \beta_TX βTX为均值的正态分布,即: Y ∣ X ; β ∼ N ( β T X , σ 2 ) Y|X;\beta\sim N(\beta^TX,\sigma^2) YX;βN(βTX,σ2)
那么根据正态分布的概率密度函数可以得到某一个样本点 i i i标签为真实值 Y ( i ) Y^{(i)} Y(i)的概率为: P ( Y ( i ) ∣ X ( i ) ; β ) = 1 σ 2 π e − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 P(Y^{(i)}|X^{(i)};\beta)=\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}} P(Y(i)X(i);β)=σ2π 1e2σ2(Y(i)βTX(i))2
那么根据联合分布律,整个样本的似然函数为:
P ( Y ∣ X ; β ) = ∏ i = 1 n 1 σ 2 π e − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 P(Y|X;\beta)=\prod\limits_{i=1}^n\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}} P(YX;β)=i=1nσ2π 1e2σ2(Y(i)βTX(i))2
我们的目的是使得该似然函数最大化,同时为了好计算,我们对 P ( Y ∣ X ; β ) P(Y|X;\beta) P(YX;β)取对数得:
L ( β ) = ln ⁡ P ( Y ∣ X ; β ) = ln ⁡ ( ∏ i = 1 n 1 σ 2 π e − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 ) = ∑ i = 1 n ln ⁡ ( 1 σ 2 π e − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 ) = ∑ i = 1 n ( ln ⁡ 1 σ 2 π + ln ⁡ e − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 ) = ∑ i = 1 n ( ln ⁡ 1 σ 2 π − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 ) \begin{aligned}L(\beta)&=\ln P(Y|X;\beta)\\&=\ln(\prod\limits_{i=1}^n\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}}) \\&=\sum\limits_{i=1}^n\ln(\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}})\\&=\sum\limits_{i=1}^n(\ln\frac{1}{\sigma\sqrt{2\pi}}+\ln e^{\frac{-(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}})\\&=\sum\limits_{i=1}^n(\ln\frac{1}{\sigma\sqrt{2\pi}}-\frac{(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2})\end{aligned} L(β)=lnP(YX;β)=ln(i=1nσ2π 1e2σ2(Y(i)βTX(i))2)=i=1nln(σ2π 1e2σ2(Y(i)βTX(i))2)=i=1n(lnσ2π 1+lne2σ2(Y(i)βTX(i))2)=i=1n(lnσ2π 12σ2(Y(i)βTX(i))2)
这里除了参数 β \beta β,其余的都为常数,因此我们可以转化为求适当的参数 β \beta β,使得 L ( β ) L(\beta) L(β)最大:
β ^ = arg max ⁡ β L ( β ) = arg max ⁡ β ∑ i = 1 n − ( Y ( i ) − β T X ( i ) ) 2 2 σ 2 = arg min ⁡ β ∑ i = 1 n ( Y ( i ) − β T X ( i ) ) 2 = arg min ⁡ β ( Y − β T X ) 2 \begin{aligned}\hat \beta&=\argmax_\beta L(\beta)\\&=\argmax_\beta \sum\limits_{i=1}^n-\frac{(Y^{(i)}- \beta^T X^{(i)})^2}{2\sigma^2}\\&=\argmin_\beta \sum\limits_{i=1}^n (Y^{(i)}- \beta^T X^{(i)})^2\\&=\argmin_\beta (Y- \beta^T X)^2\end{aligned} β^=βargmaxL(β)=βargmaxi=1n2σ2(Y(i)βTX(i))2=βargmini=1n(Y(i)βTX(i))2=βargmin(YβTX)2
因此我们就得到了线性回归的损失函数

几何角度理解

  这里我们以二元线性回归为例介绍,类比到 p p p维是相同的
在这里插入图片描述
  如图所示,由于我们的预测值 y ^ \hat y y^总是会与真实值 y y y存在一定的偏差,因此 y y y一定独立于 x 1 x_1 x1 x 2 x_2 x2构成的向量空间,真实值距离向量空间最近的距离就是其到该向量空间投影的距离,即当 y ^ \hat y y^ y y y在其向量空间的投影时,并且根据向量的加减法,我们可以得到距离 d d d的值为: d = y − y ^ = y − β T x \begin{aligned}d&=y-\hat y\\&=y-\beta^Tx\end{aligned} d=yy^=yβTx
同时我们要使得 d d d的值最小,同时消除负值带来的影响,即 L ( β ) = arg min ⁡ β ( y − β T x ) 2 L(\beta)=\argmin_\beta(y-\beta^Tx)^2 L(β)=βargmin(yβTx)2

5.存在问题

对于经典的线性回归其显然存在几点问题:

  • 矩阵 X T X X^TX XTX为半正定矩阵,其可能不存在逆矩阵,导致最小二乘法无法使用
  • 如果一个模型的参数过多,样本数据量不足的情况下有可能会出现过拟合

二、带正则项的线性回归

  为了解决过拟合的问题,我们可以通过在损失函数中引入正则项的方式来解决,常用的正则方式通常有两种,即 L 1 L1 L1正则与 L 2 L2 L2正则,下面将分别进行讲解。

1.Lasso(带L1正则项的线性回归)

L l a s s o ( β ) = ∑ i = 1 n ( Y ( i ) − β T X ( i ) ) 2 + λ ∑ j = 1 m ∣ β j ∣ L_{lasso}(\beta)=\sum\limits_{i=1}^n(Y^{(i)}-\beta^TX^{(i)})^2+\lambda\sum\limits_{j=1}^m|\beta_j| Llasso(β)=i=1n(Y(i)βTX(i))2+λj=1mβj
  由于这里的惩罚项为绝对值函数,其不是处处可导,因此我们不能采用传统的优化方式来求解其最优解。下面将介绍常用的一种方法

坐标下降法

坐标下降法的思想是对于参数 β \beta β
β = ( β 0 β 1 . . . β p ) \beta = \left( {\begin{array}{cc} \beta_0 \\ \beta_1 \\ .\\ .\\ .\\ \beta_p \end{array} } \right) β=β0β1...βp
我们每次选定其中的一个参数作为自变量,其余参数作为常量来进行更新,一步步的逼近最优解
在这里插入图片描述
  当时我们选定一个参数之后,把其余参数看做常量,那么该损失函数就变成了针对于具体参数 β p \beta_p βp的二次函数,仍可利用求导令其为0的方法进行求解,感兴趣的可以手动推导一下,这里就不展开了。

特点

  • 不容易计算,在零点连续但不可导,需要分段求导。
  • L1模型可以将一些权值缩小到零(稀疏)。
  • 执行隐式变量选择。这意味着一些变量值对结果的影响将为零,就像删除它们一样。
  • 其中一些预测因子对应较大的权值,而其余的(几乎)归零。
  • 由于它可以提供稀疏的解决方案,因此通常是建模特征数量巨大时的首选模型。在这种情况下,获得稀疏解决方案具有很大的计算优势,因为可以简单地忽略具有零系数的特征。
  • 它任意选择高度相关的特征中的任何一个,并将其余特征对应的系数减少到零。此外,所选特征随模型参数的变化而随机变化。
  • 与岭回归(ridge regression)相比,通常效果不佳。
  • L1范数函数对异常值更具抵抗力。

2.Ridge(带L2正则项的线性回归)

  Ridge又被称为岭回归,其有效的解决了经典线性回归提出的两个问题。
L r i d g e ( β ) = ∑ i = 1 n ( Y ( i ) − β T X ( i ) ) 2 + λ ∑ j = 1 m β j 2 \begin{aligned}L_{ridge}(\beta)&=\sum\limits_{i=1}^n(Y^{(i)}-\beta^TX^{(i)})^2+\lambda\sum\limits_{j=1}^m\beta_j^2\end{aligned} Lridge(β)=i=1n(Y(i)βTX(i))2+λj=1mβj2
其函数是处处可导的,我们可以利用最小二乘法来求解其最优参数 β ^ \hat \beta β^: β ^ = ( X T X + λ I ) − 1 X T Y \hat \beta=(X^TX+\lambda I)^{-1}X^TY β^=(XTX+λI)1XTY
这里 I I I为单位矩阵(即对角线元素全为1的矩阵),由于单位矩阵是满秩矩阵,一定可逆,因此 ( X T X + λ I ) (X^TX+\lambda I) (XTX+λI)也一定可逆,因此就解决了第一个问题。

概率角度理解岭回归

我们仍然可以将其看做噪声为 ε \varepsilon ε的正态分布,即: ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma^2) εN(0,σ2)同样我们可以得到: P ( Y ∣ β ) = 1 σ 2 π e − ( Y − β T X ) 2 2 σ 2 P(Y|\beta)=\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-(Y- \beta^T X)^2}{2\sigma^2}} P(Yβ)=σ2π 1e2σ2(YβTX)2
下面讲一下从贝叶斯学派出发,对于岭回归的理解:

  通常引起过拟合的原因是数据样本太少或者是特征维度过高,即特征维度 p p p大于样本数量 n n n,所以此时我们可以认为所有参数 β \beta β是满足均值为0的正态分布,即: β ∼ N ( 0 , σ 0 2 ) \beta\sim N(0,\sigma^2_0) βN(0,σ02)
那么我们可以得到:
p ( β ) = 1 σ 0 2 π e − ∣ ∣ β ∣ ∣ 2 2 σ 0 2 p(\beta)=\frac{1}{\sigma_0\sqrt{2\pi}}e^{\frac{-||\beta||^2}{2{\sigma_0}^2}} p(β)=σ02π 1e2σ02β2
此时我们可以采用最大后验概率估计(MAP),即:
L ( β ) = arg max ⁡ β P ( β ∣ Y ) = arg max ⁡ β P ( Y ∣ β ) P ( β ) P ( Y ) \begin{aligned}L(\beta)&=\argmax_\beta P(\beta|Y)\\&=\argmax_\beta \frac{P(Y|\beta)P(\beta)}{P(Y)}\end{aligned} L(β)=βargmaxP(βY)=βargmaxP(Y)P(Yβ)P(β)
由于这里 P ( Y ) P(Y) P(Y)与参数 β \beta β无关,因此我们可以得到:
L ( β ) = arg max ⁡ β P ( Y ∣ β ) P ( β ) = arg max ⁡ β 1 σ 2 π 1 σ 0 2 π e − ( Y − β T X ) 2 2 σ 2 − ∣ ∣ β ∣ ∣ 2 2 σ 2 = arg max ⁡ β ln ⁡ 1 σ 2 π 1 σ 0 2 π + ( − ( Y − β T X ) 2 2 σ 2 + − ∣ ∣ β ∣ ∣ 2 2 σ 0 ) \begin{aligned}L(\beta)&=\argmax_\beta P(Y|\beta)P(\beta)\\&=\argmax_\beta \frac{1}{\sigma\sqrt{2\pi}}\frac{1}{\sigma_0\sqrt{2\pi}}e^{\frac{-(Y- \beta^T X)^2}{2\sigma^2}-\frac{||\beta||^2}{2\sigma^2}}\\&=\argmax_\beta \ln \frac{1}{\sigma\sqrt{2\pi}}\frac{1}{\sigma_0\sqrt{2\pi}}+(\frac{-(Y- \beta^T X)^2}{2\sigma^2}+\frac{-||\beta||^2}{2\sigma_0})\end{aligned} L(β)=βargmaxP(Yβ)P(β)=βargmaxσ2π 1σ02π 1e2σ2(YβTX)22σ2β2=βargmaxlnσ2π 1σ02π 1+(2σ2(YβTX)2+2σ0β2)
由于这里除了 β \beta β之外其余的都可以看做常数,因此我们可以得到:
L ( β ) = arg max ⁡ β − [ ( Y − β T X ) 2 2 σ 2 + ∣ ∣ β ∣ ∣ 2 2 σ 0 2 ] = arg min ⁡ β ( Y − β T X ) 2 + σ 2 σ 0 2 ∣ ∣ β ∣ ∣ 2 \begin{aligned}L(\beta)&=\argmax_\beta -[\frac{(Y- \beta^T X)^2}{2\sigma^2}+\frac{||\beta||^2}{2\sigma_0^2}]\\&=\argmin_\beta(Y- \beta^T X)^2+\frac{\sigma^2}{\sigma_0^2}||\beta||^2\end{aligned} L(β)=βargmax[2σ2(YβTX)2+2σ02β2]=βargmin(YβTX)2+σ02σ2β2
这里我们可以把 σ 2 σ 0 2 \frac{\sigma^2}{\sigma_0^2} σ02σ2看做惩罚系数 λ \lambda λ,由此就得出了岭回归的代价函数

特点

  • 容易计算,可导,适合基于梯度的方法
  • 将一些权值缩小到接近0
  • 相关的预测特征对应的系数值相似
  • 当特征的数量巨大时,计算量会比较大
  • 对于有相关特征存在的情况,它会包含所有这些相关的特征,但是相关特征的权值的分布取决于相关性
  • 对outliers(异常值)非常敏感
  • 相对于L1正则化会更加精确

3.Elastic Net(L1、L2相结合)

  Elastic Net被称为弹性网络回归,其特点是结合了L1正则项与L2正则项,充分利用两者的优点。其代价函数如下:
L r i d g e ( β ) = ∑ i = 1 n ( Y ( i ) − β T X ( i ) ) 2 + λ ( 1 − α 2 ∣ ∣ β ∣ ∣ 2 + α ∣ ∣ β ∣ ∣ ) L_{ridge}(\beta)=\sum\limits_{i=1}^n(Y^{(i)}-\beta^TX^{(i)})^2+\lambda(\frac{1-\alpha}{2}||\beta||^2+\alpha||\beta||) Lridge(β)=i=1n(Y(i)βTX(i))2+λ(21αβ2+αβ)
其中 α \alpha α控制了Lasso与Ridge的强度,同样这里当 α ≠ 0 \alpha\ne0 α=0时,存在绝对值函数,不可以利用梯度下降的方式求导,可以采用坐标下降法。

三、多项式回归

Basis Expansion

  Basis Expansion:是指通过对数据进行转换来扩充/替换数据集的特征。例如,给定输入特征 X X X,Basis Expansion可以将此特征映射到三个特征: 1 , X , X 2 1,X,X^2 1,X,X2

  这种映射允许各种学习算法捕获数据中的非线性趋势,同时仍使用线性模型来分析这些转换后的特征。例如,将多项式Basis Expansion与线性回归结合使用,可以使线性回归找到数据中的多项式(非线性)趋势;这通常称为“多项式回归”。
其基本函数为:
Y ^ = W T ϕ ( X ) \hat Y=W^T\phi(X) Y^=WTϕ(X)
其中 ϕ ( X ) \phi(X) ϕ(X)为特征 X X X进行映射后的样本特征

比如对于下面给定的样本点,如果我们采用普通的线性回归,只能进行线性的预测:
在这里插入图片描述
但如果我们采用多项式回归将可以有效地捕捉非线性的特征,进行更加拟合的预测:
在这里插入图片描述
但是如果我们采用更高纬度的变换有可能适得其反,出现过拟合的现象:
在这里插入图片描述
因此在实际应用的过程中,如果我们要使用多项式回归,要注意映射纬度的选择,可以通过交叉验证的方式来实现。

带核函数的线性回归

对于样本特征直接向高维空间进行映射往往存在两个问题

  • 特征的纬度有可能是无穷的,无法直接向高维空间进行映射
  • 计算量有可能非常大,时间复杂度较高

因此我们可以采用核函数的思想来解决这两个问题,至于核函数,另一片文章里有简要的描述,不知道的可以去看一下SVM算法介绍

这里我们以岭回归为例,介绍如何应用核函数改造线性回归算法。在岭回归中,我们求得参数 β \beta β的解析解为: β ^ = ( X T X + λ I ) − 1 X T Y = X T ( X T X + λ I ) Y \begin{aligned}\hat \beta&=(X^TX+\lambda I)^{-1}X^TY\\&=X^T(X^TX+\lambda I)Y\end{aligned} β^=(XTX+λI)1XTY=XT(XTX+λI)Y
我们令 α = ( X T X + λ I ) Y \alpha=(X^TX+\lambda I)Y α=(XTX+λI)Y,因此可以得到:
β ^ = X T α = ∑ i = 1 n α i X ( i ) \begin{aligned}\hat\beta&=X^T\alpha\\&=\sum\limits_{i=1}^n\alpha_iX^{(i)}\end{aligned} β^=XTα=i=1nαiX(i)
所以对于预测值 Y ^ \hat Y Y^,我们可以得到:
Y ^ = β T x = ∑ i = 1 n α i < X ( i ) , x > \begin{aligned}\hat Y&=\beta^Tx\\&=\sum\limits_{i=1}^n\alpha_i<X^{(i)},x>\end{aligned} Y^=βTx=i=1nαi<X(i),x>
因此此处我们便可以使用核函数来实现到高维空间的映射:
Y ^ = ∑ i = 1 n α i K ( X ( i ) , x ) \begin{aligned}\hat Y&=\sum\limits_{i=1}^n\alpha_iK(X^{(i)},x)\end{aligned} Y^=i=1nαiK(X(i),x)
其中 α = ( X T X + λ I ) Y \alpha=(X^TX+\lambda I)Y α=(XTX+λI)Y X T X X^TX XTX存在的向量相乘的操作,也可以使用核函数来进行代替计算。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜鸟炼丹师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值