datawhale 10月学习——树模型与集成学习:决策树

结论速递

本章学习了决策树的生成方法, 分为两个要点:

  1. 如何分裂训练记录?需要确定选择最佳划分的度量,了解了信息熵,信息增益,信息增益比,基尼系数等概念;也需要确定划分方式,了解了对离散属性、连续属性及缺失属性的处理方式。
  2. 如何停止分裂过程?对应预剪枝和后剪枝。

学习了三种常见决策树生成方法,ID3、C4.5和CART树的异同。

0 决策树概述

0.1 决策树

决策树实际上就是一种if-then规则的集合。同时,李航在《统计机器学习》中指出,决策树还表示给定特征条件下类的条件概率分布。

这一条件概率分布定义在特征空间的一个划分(partition)上,将特征空间划分为互不相交的单元(cell)或区域(region),并在每个单元定义一个类的概率分布就构成了一个条件概率分布,决策树的一条路径对应于划分中的一个单元。
决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。
在这里插入图片描述

0.2 决策树的学习

决策树的学习本质上是从训练数据集中归纳出一组分类规则,事实上,和训练数据集不矛盾的决策树可能有很多个,也可能一个也没有。学习决策树的目标是,获得一个与训练数据矛盾较小的决策树,同时这个决策树具有很好的泛化能力。

决策树的学习算法通常是贪心算法,递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程,这一过程对应着对特征空间的划分,也对应着决策树的构建。

决策树的学习算法包含特征选择决策树生成决策树的剪枝过程,由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型,决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择,决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。

Hunt算法是许多决策树算法的基础。

D t D_t Dt是与节点 t t t相关联的训练记录集,而 y = y 1 , y 2 , . . . , y c y={y_1,y_2,...,y_c} y=y1,y2,...,yc是类标号,Hunt算法的递归定义如下:

  1. 如果 D t D_t Dt中所有记录都属于同一个类 y y y,则 t t t是叶节点,用 y t y_t yt标记。
  2. 如果 D t D_t Dt中包含属于多个类的记录,则选择一个属性测试条件,将记录划分成较小的子集。对于测试条件的每个输出,创建一个子女节点,并根据测试结果将 D t D_t Dt中的记录分布到子女结点中。然后,对于每个子女节点,递归地调用该算法。

决策树的学习算法必须解决下面两个问题:

  1. 如何分裂训练记录?需要确定属性测试条件(即选择最佳划分的度量),和分类方法。
    选择最佳划分的度量通常是根据划分后子女节点不纯性的程度,这里引入了信息论中信息熵等概念。
  2. 如何停止分裂过程?需要有结束条件,以终止决策树的生长过程。

1 信息论基础

1.1 信息熵、条件熵、信息增益

前面提到了,选择决策树每个节点最佳划分的度量,通常是根据划分后子女节点不纯性的程度。

信息熵是用于度量不确定性的函数,在论文《A Mathematical Theory of Communication》中有具体定义,离散信息熵形式如下:
H ( Y ) = E Y [ − log ⁡ 2 p ( Y ) ] = − ∑ k = 1 K p ( y k ) log ⁡ 2 p ( y k ) H(Y)=\Epsilon_Y[-\log_2p(Y)]=-\sum_{k=1}^{K}p(y_k)\log_2p(y_k) H(Y)=EY[log2p(Y)]=k=1Kp(yk)log2p(yk)

离散信息熵的最小值为0并且在单点分布时取到,离散熵最大值为 log ⁡ K \log K logK且在离散均匀分布时取到。

在决策树的分裂过程中,我们不但需要考察节点的不确定性或纯度,还要考察子节点的平均不确定性或平均纯度来决定是否进行分裂。

子节点的产生来源于决策树分支的条件,因此我们要研究在给定条件下随机变量的平均信息熵或条件熵(即条件分布的不确定性)。

H ( Y ∣ X ) = E X [ E Y ∣ X [ − log ⁡ 2 p ( Y ∣ X ) ] ] H(Y|X)=\Epsilon_X[\Epsilon_{Y|X}[-\log_2 p(Y|X)]] H(YX)=EX[EYX[log2p(YX)]]

有了信息熵和条件熵的概念定义后,可以定义信息增益(Information Gain),即节点分裂之后带来的不确定性的降低或者纯度的提高。

具体定义为,在得到了随机变量 X X X的取值信息后,随机变量 Y Y Y不确定性的平均减小量为

G ( Y , X ) = H ( Y ) − H ( Y ∣ X ) G(Y,X)=H(Y)-H(Y|X) G(Y,X)=H(Y)H(YX)

信息增益必定非负,而且如果随机变量Y和X相互独立,无论我们是否知道X的信息,都不会对Y的不确定性产生影响,此时的信息增益为0。

信息增益G(Y,X)在本质上就是p(y,x)关于p(y)p(x)的KL散度

1.2 思考题

  1. 证明如下关系:
    G ( Y , X ) = H ( X ) − H ( X ∣ Y ) G(Y,X) = H(X)-H(X|Y) G(Y,X)=H(X)H(XY) G ( Y , X ) = H ( X ) + H ( Y ) − H ( Y , X ) G(Y,X) = H(X)+H(Y)-H(Y,X) G(Y,X)=H(X)+H(Y)H(Y,X) G ( Y , X ) = H ( Y , X ) − H ( X ∣ Y ) − H ( Y ∣ X ) G(Y,X) = H(Y,X)-H(X|Y)-H(Y|X) G(Y,X)=H(Y,X)H(XY)H(YX)

上述均有
左式= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 p ( y k ) p ( x m ) p ( y k , x m ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2{\dfrac{p(y_k)p(x_m)}{p(y_k,x_m)}} k=1Km=1Mp(yk,xm)log2p(yk,xm)p(yk)p(xm)

对式一:
右式= H ( X ) − H ( X ∣ Y ) H(X)-H(X|Y) H(X)H(XY)
= E X [ − log ⁡ 2 p ( X ) ] − E Y [ E X ∣ Y [ − log ⁡ 2 p ( X ∣ Y ) ] ] \Epsilon_X[-\log_2p(X)]-\Epsilon_Y[\Epsilon_{X|Y}[-\log_2 p(X|Y)]] EX[log2p(X)]EY[EXY[log2p(XY)]]
= − ∑ m = 1 M p ( x m ) log ⁡ 2 p ( x m ) − ∑ k = 1 K p ( y k ) ∑ m = 1 M p ( x m ∣ y k ) log ⁡ 2 p ( x m ∣ y k ) -\sum_{m=1}^{M}p(x_m)\log_2p(x_m)-\sum_{k=1}^{K}p(y_k)\sum_{m=1}^{M}p(x_m|y_k)\log_2p(x_m|y_k) m=1Mp(xm)log2p(xm)k=1Kp(yk)m=1Mp(xmyk)log2p(xmyk)
= ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) [ log ⁡ 2 p ( y k , x m ) p ( y k ) − log ⁡ 2 p ( x m ) ] \sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)[\log_2{\dfrac {p(y_k,x_m)}{p(y_k)}}-\log_2{p(x_m)}] k=1Km=1Mp(yk,xm)[log2p(yk)p(yk,xm)log2p(xm)]
= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 p ( y k ) p ( x m ) p ( y k , x m ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2{\dfrac{p(y_k)p(x_m)}{p(y_k,x_m)}} k=1Km=1Mp(yk,xm)log2p(yk,xm)p(yk)p(xm)
=左式
得证。

对式二:
右式= H ( X ) + H ( Y ) − H ( Y , X ) H(X)+H(Y)-H(Y,X) H(X)+H(Y)H(Y,X)
= E X [ − log ⁡ 2 p ( X ) ] + E Y [ − log ⁡ 2 p ( Y ) ] − E ( Y , X )   p ( y , x ) [ − log ⁡ 2 p ( Y , X ) ] ] \Epsilon_X[-\log_2p(X)]+\Epsilon_Y[-\log_2p(Y)]-\Epsilon_{(Y,X)~p(y,x)}[-\log_2 p(Y,X)]] EX[log2p(X)]+EY[log2p(Y)]E(Y,X) p(y,x)[log2p(Y,X)]]
= − ∑ m = 1 M p ( x m ) log ⁡ 2 p ( x m ) − ∑ k = 1 K p ( y k ) log ⁡ 2 p ( y k ) + ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 ( y k , x m ) -\sum_{m=1}^{M}p(x_m)\log_2p(x_m)-\sum_{k=1}^{K}p(y_k)\log_2p(y_k)+\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2(y_k,x_m) m=1Mp(xm)log2p(xm)k=1Kp(yk)log2p(yk)+k=1Km=1Mp(yk,xm)log2(yk,xm)
= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 ( x m ) − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 ( y k , ) + ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 ( y k , x m ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2(x_m)-\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2(y_k,)+\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2(y_k,x_m) k=1Km=1Mp(yk,xm)log2(xm)k=1Km=1Mp(yk,xm)log2(yk,)+k=1Km=1Mp(yk,xm)log2(yk,xm)
= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 p ( y k ) p ( x m ) p ( y k , x m ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2{\dfrac{p(y_k)p(x_m)}{p(y_k,x_m)}} k=1Km=1Mp(yk,xm)log2p(yk,xm)p(yk)p(xm)
=左式
得证。

对式三:
右式= H ( Y , X ) − H ( X ∣ Y ) − H ( Y ∣ X ) H(Y,X)-H(X|Y)-H(Y|X) H(Y,X)H(XY)H(YX)
= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 ( y k , x m ) + ∑ k = 1 K ∑ m = 1 M p ( x m ) p ( y k , x m ) p ( x m ) log ⁡ 2 p ( y k , x m ) p ( x m ) + ∑ k = 1 K ∑ m = 1 M p ( y k ) p ( y k , x m ) p ( y k ) log ⁡ 2 p ( y k , x m ) p ( y k ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2(y_k,x_m)+\sum_{k=1}^{K} \sum_{m=1}^{M}p(x_m)\dfrac{p(y_k,x_m)}{p(x_m)}\log_2\dfrac{p(y_k,x_m)}{p(x_m)}+\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k)\dfrac{p(y_k,x_m)}{p(y_k)}\log_2\dfrac{p(y_k,x_m)}{p(y_k)} k=1Km=1Mp(yk,xm)log2(yk,xm)+k=1Km=1Mp(xm)p(xm)p(yk,xm)log2p(xm)p(yk,xm)+k=1Km=1Mp(yk)p(yk)p(yk,xm)log2p(yk)p(yk,xm)
= ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 p ( y k , x m ) p ( y k ) p ( y k , x m ) p ( x m ) 1 p ( y k , x m ) \sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2\dfrac{p(y_k,x_m)}{p(y_k)}\dfrac{p(y_k,x_m)}{p(x_m)}\dfrac{1}{p(y_k,x_m)} k=1Km=1Mp(yk,xm)log2p(yk)p(yk,xm)p(xm)p(yk,xm)p(yk,xm)1
= − ∑ k = 1 K ∑ m = 1 M p ( y k , x m ) log ⁡ 2 p ( y k ) p ( x m ) p ( y k , x m ) -\sum_{k=1}^{K} \sum_{m=1}^{M}p(y_k,x_m)\log_2{\dfrac{p(y_k)p(x_m)}{p(y_k,x_m)}} k=1Km=1Mp(yk,xm)log2p(yk,xm)p(yk)p(xm)
=左式
得证。

  1. 在下图中表示出 H ( X ) H(X) H(X) H ( Y ) H(Y) H(Y) H ( X ∣ Y ) H(X|Y) H(XY) H ( Y ∣ X ) H(Y|X) H(YX) H ( Y , X ) H(Y,X) H(Y,X) G ( Y , X ) G(Y,X) G(Y,X)

在这里插入图片描述

2 分类树的节点分裂

特征可以分为三种:类别特征、数值特征和含缺失值的特征

2.1 类别特征

在ID3算法中,树的每个节点将选取最大信息增益对应的特征进行分裂。如下图
在这里插入图片描述
通过对比M0-M12和M0-M34,确定合适的分割方式。

在C4.5算法中,使用信息增益比替代了信息增益,分裂方式相同,信息增益比定义为
G R ( Y , X ) = G ( Y , X ) H ( X ) G^R(Y,X) = \dfrac{G(Y,X)}{H(X)} GR(Y,X)=H(X)G(Y,X)

在C4.5算法中,使用了信息增益比来代替信息增益,其原因在于信息增益来选择的决策树对类别较多的特征具有天然的倾向性,例如当某一个特征X(身份证号码、学号等)的类别数恰好就是样本数量时,此时由于H(Y|X)=0,即G(Y,X)达到最大值,因此必然会优先选择此特征进行分裂,但这样的情况是非常不合理的。

2.2 数值特征

ID3算法不具备处理数值特征的能力,但C4.5算法可以。它有两种处理方式,对应sklearn中的splitter的randombest

  1. 在随机分割法下,取该数值量的上下界,然后做均匀分布,遍历计算,确定最佳二分点,如下表
    在这里插入图片描述
  2. 在最佳分割法下,遍历所有的数据点,选择最佳二分点(为其中一个数据点)

2.3 缺失特征

C4.5算法处理缺失数据的思想非常简单,样本的缺失值占比越大,那么对信息增益的惩罚就越大,这是因为缺失值本身就是一种不确定性成分。

设样本缺失比例为 γ \gamma γ,非缺失的标签和特征分别为 Y ~ \tilde Y Y~ X ~ \tilde X X~,则修正的信息增益为

G ~ ( Y , X ) = ( 1 − γ ) G ( Y ~ , X ~ ) \tilde G(Y,X) = (1-\gamma)G(\tilde Y,\tilde X) G~(Y,X)=(1γ)G(Y~,X~)

当数据完全缺失时 γ = 1 \gamma=1 γ=1,信息增益为0;当数据没有缺失值时 γ = 0 \gamma=0 γ=0,信息增益与原来的值保持一致。

2.4 树的生长

分为深度优先生长和最佳增益生长。

深度优先生长如下图:
在这里插入图片描述
最佳增益生长教程中没有讲得很详细。(待补充)

2.5 思考题

  1. 假设当前我们需要处理一个分类问题,请问对输入特征进行归一化会对树模型的类别输出产生影响吗?请解释原因。
    如果采用min-max归一化,就不会有影响,因为对数值特征,无论是随机分割法还是最佳分割法,都不受到特征绝对大小的影响。但如果所使用的归一化方法更改了数值特征的分布,则对随机分割法的结果有影响,而对最佳分割法的结果没有影响。
  2. 如果将系数替换为 1 − γ 2 1−\gamma^2 1γ2,请问对缺失值是加强了还是削弱了惩罚?
    削弱了惩罚,因为 γ \gamma γ始终小于1。
  3. 如果将树的生长策略从深度优先生长改为广度优先生长,假设其他参数保持不变的情况下,两个模型对应的结果输出可能不同吗?
    理论上不会不同。

3 CART树

CART树可以处理回归问题。

3.1 回归树的分裂度量

采用均方误差(MSE)和平均绝对误差(MAE)来替换熵和条件熵的位置。

3.2 基尼系数GINI

当处理分类问题时,虽然ID3或C4.5定义的熵仍然可以使用,但是由于对数函数log的计算代价较大,CART将熵中的log在p=1处利用一阶泰勒展开,基尼系数定义为熵的线性近似.

G i n i ( Y ) = E Y [ 1 − p ( Y ) ] = ∑ k = 1 K p ~ ( y k ) ( 1 − p ~ ( y k ) ) = 1 − ∑ k = 1 K p ~ 2 ( y k ) Gini(Y) = \Epsilon_Y[1-p(Y)] =\sum_{k=1}^{K} \tilde p(y_k)(1-\tilde p(y_k)) =1-\sum_{k=1}^{K} \tilde p^2(y_k) Gini(Y)=EY[1p(Y)]=k=1Kp~(yk)(1p~(yk))=1k=1Kp~2(yk)

类似地定义条件基尼系数为

G i n i ( Y ∣ X ) = E X [ E Y ∣ X [ 1 − p ( Y ∣ X ) ] ] Gini(Y|X) = \Epsilon_X[\Epsilon_{Y|X}[1-p(Y|X)]] Gini(YX)=EX[EYX[1p(YX)]] = ∑ m = 1 M p ~ ( x m ) ∑ k = 1 K p ~ ( y k ∣ x m ) ( 1 − p ~ ( y k ∣ x m ) ) =\sum_{m=1}^{M} \tilde p(x_m) \sum_{k=1}^{K} \tilde p(y_k|x_m)(1-\tilde p(y_k|x_m)) =m=1Mp~(xm)k=1Kp~(ykxm)(1p~(ykxm)) = ∑ m = 1 M p ~ ( x m ) [ 1 − ∑ k = 1 K p ~ 2 ( y k ∣ x m ) ] =\sum_{m=1}^{M} \tilde p(x_m) [1-\sum_{k=1}^{K} \tilde p^2(y_k|x_m) ] =m=1Mp~(xm)[1k=1Kp~2(ykxm)]

从而引出基于基尼系数的信息增益为

G ( Y , X ) = G i n i ( Y ) − G i n i ( Y ∣ X ) G(Y,X)=Gini(Y)-Gini(Y|X) G(Y,X)=Gini(Y)Gini(YX)

下图给出了一个分裂案例
在这里插入图片描述
下图对比了信息增益比和gini系数
在这里插入图片描述
由于gini更平滑,因此过拟合的可能性下降。

3.3 思考题

  1. 在一般的机器学习问题中,我们总是通过一组参数来定义模型的损失函数,并且在训练集上以最小化该损失函数为目标进行优化。请问对于决策树而言,模型优化的目标是什么?
    其实决策树的优化目标也是一样的,也是建立一棵树,使得损失函数最小,这里的损失函数描述的是树的预测结果与数据集的不匹配程度。但是我们这里所涉及到的决策树的增长过程是一个贪心的过程,模型优化的目标就是每一个分裂后子结点纯度最高。
  2. 对信息熵中的log函数在p=1处进行一阶泰勒展开可以近似为基尼系数,那么如果在p=1处进行二阶泰勒展开我们可以获得什么近似指标?请写出对应指标的信息增益公式。
    (待补)
  3. 除了信息熵和基尼系数之外,我们还可以使用节点的 1 − max ⁡ k p ( Y = y k ) 1−\max _kp(Y=y_k) 1maxkp(Y=yk)和第m个子节点的 1 − max ⁡ k p ( Y = y k ∣ X = x m ) 1−\max _kp(Y=y_k|X=x_m) 1maxkp(Y=ykX=xm)来作为衡量纯度的指标。请解释其合理性并给出相应的信息增益公式。
    这个其实就是misclassification error,误分类数量。使得误分类数量越小,结点纯度越高。
    在这里插入图片描述
    对应的信息增益公式可以写为 ( 1 − max ⁡ k p ( Y = y k ) ) − ( 1 − max ⁡ k p ( Y = y k ∣ X = x m ) ) (1−\max _kp(Y=y_k))-(1−\max _kp(Y=y_k|X=x_m)) (1maxkp(Y=yk))(1maxkp(Y=ykX=xm))

4 决策树的剪枝

4.1 决策树的剪枝方法

分为预剪枝和后剪枝。

其中,预剪枝是指树在判断节点是否分裂的时候就预先通过一些规则来阻止其分裂(也就是生成的终止条件),后剪枝是指在树的节点已经全部生长完成后,通过一些规则来摘除一些子树。

在sklearn的CART实现中,一共有6个控制预剪枝策略的参数,它们分别是最大树深度max_depth、节点分裂的最小样本数min_samples_split、叶节点最小样本数min_samples_leaf、节点样本权重和与所有样本权重和之比的最小比例min_weight_fraction_leaf、最大叶节点总数max_leaf_nodes以及之前提到的分裂阈值min_impurity_decrease

后剪枝有两种做法

  1. 用新的叶节点替换子树
  2. 用子树中最常用的分支替代子树

下图展示了剪枝的效果
在这里插入图片描述

4.2 思考题

  1. 为什么对没有重复特征值的数据,决策树能够做到损失为0?
    因为分裂到最后,如果所有的结点都必然为纯的结点(哪怕只有一个数据了,那也是纯的)。
  2. 如何理解min_samples_leaf参数能够控制回归树输出值的平滑程度?
    控制叶节点最少的数据,可以防止划分得过于细,有效防止过拟合,使得模型更平滑。

5 知识回顾

  1. ID3树算法、C4.5树算法和CART算法之间有何异同?
    如下表

在可解决的问题上

方法ID3C4.5CART
分类问题
回归问题××

针对处理属性

方法ID3C4.5CART
离散属性
连续属性×
缺失属性×

使用的节点分裂指标为

方法ID3C4.5CART
指标信息增益信息增益比基尼系数
  1. 什么是信息增益?它衡量了什么指标?它有什么缺陷?
    详见1.1,信息增益就是信息熵-条件熵,衡量了分裂后对结点纯度的提升情况,缺陷是对类别较多的特征有天然的倾向性。
  2. sklearn决策树中的random_state参数控制了哪些步骤的随机性?
    根据源码及官方文档在这里插入图片描述
    主要控制的是连续属性的分裂阶段中,被用做判断二分结点的数量,主要为了保证生成结果的稳定可复现性。
  3. 决策树如何处理连续变量和缺失变量?
    对连续变量,采用离散化的操作转化为离散变量问题,离散化方法分为随机法和最佳法,前者是均匀离散,后者则基于原始数据点;对缺失变量,采取对信息增益乘以相应系数的方式,将缺失变量带来的不确定性列入考虑范围。
  4. 基尼系数是什么?为什么要在CART中引入它?
    基尼系数是信息熵的线性平滑,它可以使得模型更稳定,计算更快,减少过拟合。
  5. 什么是树的预剪枝和后剪枝?具体分别是如何操作的?
    预剪枝就是分裂提前终止条件,后剪枝是树的简化。

参考阅读

  1. datawhale教程
  2. 《统计机器学习》
  3. 《数据挖掘导论》
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SheltonXiao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值