【笔记6-2】数据挖掘:数据预处理

清华大学【数据挖掘:数据预处理】
https://www.bilibili.com/video/av38471473

(一)数据预处理概述

算法实际应用的过程中,面对的数据往往是杂乱无章(dirty data)的,比如数据的缺失,噪声数据,数据不匹配,数据冗余,数据集不平衡等。因此,数据预处理的过程包含众多内容,对于后续的分析至关重要。

数据预处理内容:

  1. 数据清洗
  2. 数据转换
  3. 数据描述
  4. 特征选择
  5. 特征提取

(二)数据清洗

1. 缺失数据处理

缺失数据往往是设备故障,数据未提供或者NA(not applicable)造成的,通常可以分为完全随机缺失,依条件随机缺失,非随机缺失。

缺失值的处理:

  1. 丢弃/删除数据
  2. 填充数据:重新采集,利用领域知识,固定值填充,均值/中位数填充。

2. 离群点处理

离群点是与整体数据差异较大的点,往往会对回归和聚类的效果产生较大的影响。

离群点的检测(LOF:local outlier factor):

首先对 d i s t a n c e k ( O ) distance_k(O) distancek(O) 进行定义,它代表的是距离点 O O O 最近的 k k k 个点中,最远的那个点与 O O O 之间的距离,如下图所示:
在这里插入图片描述
此时点 A , B A,B A,B 之间的 k k k 近邻距离为两点之间欧式距离与点 B B B k k k 近邻距离的最大值,表示如下:???
d i s t a n c e k ( A , B ) = m a x { d i s t a n c e k ( B ) , d ( A , B ) } distance_k(A,B)=max\{distance_k(B),d(A,B)\} distancek(A,B)=max{distancek(B),d(A,B)}然后点 A A A 的lrd可以表示为: l r d ( A ) = 1 / ( ∑ B ∈ N k ( A ) d i s t a n c e k ( A , B ) ∣ N k ( A ) ∣ ) lrd(A)=1/(\frac{\sum_{B\in N_k(A)}distance_k(A,B)}{|N_k(A)|}) lrd(A)=1/(Nk(A)BNk(A)distancek(A,B))其中, ∣ N k ( A ) ∣ |N_k(A)| Nk(A) 代表 A A A k k k 近邻集合中点的个数。由上式可知,当一个点与近邻距离越小时,对应的lrd的值越大。但是并不能直接说lrd值越大,就越不可能是离群点,而是需要考虑各个点的相对离群程度,于是引入了LOF值。 L O F k ( A ) = ∑ B ∈ N k ( A ) l r d ( B ) l r d ( A ) ∣ N k ( A ) ∣ = ∑ B ∈ N k ( A ) l r d ( B ) ∣ N k ( A ) ∣ / l r d ( A ) LOF_k(A)=\frac{\sum_{B\in N_k(A)}\frac{lrd(B)}{lrd(A)}}{|N_k(A)|}=\frac{\sum_{B\in N_k(A)}lrd(B)}{|N_k(A)|}/lrd(A) LOFk(A)=Nk(A)BNk(A)lrd(A)lrd(B)=Nk(A)BNk(A)lrd(B)/lrd(A)由上述 L O F LOF LOF 值的计算方法可知,当一个点的 lrd 值相对于其他点而言越小时,对应的 L O F LOF LOF 值越大,该点则越有可能是离群点。
在这里插入图片描述
比如上图中,圆圈旁边的数值即为 L O F LOF LOF 值, L O F LOF LOF 值越大,该点越可能是离群点。

3. 重复数据检测

由于数据在实际使用过程中,来源不一,可能会产生数据重复,数据冗余的问题,因此需要对重复数据进行去重处理。

但是,在数据量大的情况下,如果对每条数据与其他数据进行逐一进行比较效率会非常低,因此经常采用滑动窗口的方法。滑动窗口即设定一个窗口的大小,每次只对窗口中的数据进行比较,比较之后将窗口在数据集上滑动一个单位以更新窗口中的数据内容。

滑动窗口存在一个问题,当相同数据距离较远,无法涵盖在同一个窗口中时,就无法对这些相同数据进行比较,因此数据的排序要尽量遵循相同或相似数据排列更近的原则。一般会对数据构造一个键值,然后对键值排序,使得相似数据具有相似键值进而被排列到一起。

(三)数据转换

在对数据进行过数据清洗之后,需要进行的数据处理操作依旧有很多,比如对数据类型进行转换,对数据进行归一化,采样等等,这个过程成为数据的转换过程。

1. 类型转换

变量类型:
连续型变量(如温度),离散型变量(如人数),序列型变量(ordinal,如等级),名词型变量(nominal,如职位),字符型变量

2. 采样

目的:数据量过大,需要减少计算量(而统计学中的采样是因为难以获取全量数据)

方法:

  • 过采样:解决样本不平衡的问题(如SMOTE采样)
  • 边界采样:采集边界样本实现模型的高效训练

附:样本不平衡可能造成的问题

样本不平衡时,若模型以准确率为衡量标准,可能会造成分类器仅对结果进行大样本类别的预测,而无法分辨出小样本部分的特征。相应的解决方法有 G − m e a n , F − s c o r e G-mean, F-score Gmean,Fscore 来作为模型表现的衡量标准。 G − m e a n = ( A c c + ∗ A c c − ) 1 / 2 G-mean=(Acc^+*Acc^-)^{1/2} Gmean=(Acc+Acc)1/2 w h e r e   A c c + = T P T P + F N , A c c − = T N T N + F P where \ Acc^+=\frac{TP}{TP+FN},Acc^-=\frac{TN}{TN+FP} where Acc+=TP+FNTP,Acc=TN+FPTN F − s c o r e = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F-score=\frac{2*Precision*Recall}{Precision+Recall} Fscore=Precision+Recall2PrecisionRecall w h e r e   P r e c i s i o n = T P T P + F P , R e c a l l = T P T P + F N where \ Precision=\frac{TP}{TP+FP}, Recall=\frac{TP}{TP+FN} where Precision=TP+FPTP,Recall=TP+FNTP

3. 归一化

为了避免变量数值量纲差异太大,往往需要对变量进行归一化处理,将变量归一化到相近的区间上来。常见的归一化方法有两种:

  • min-max normalization: v ′ = v − m i n m a x − m i n ( n e w _ m a x − n e w _ m i n ) + n e w _ m i n v'=\frac{v-min}{max-min}(new\_max-new\_min)+new\_min v=maxminvmin(new_maxnew_min)+new_min
  • z-score normalization: v ′ = v − μ σ v'=\frac{v-\mu}{\sigma} v=σvμ

(四)数据描述

常见的数据描述统计量:

  • 均值(mean)
  • 中位数(median)
  • 众数(mode)
  • 方差(variance)
  • 相关系数(correlation coefficient) r A , B = ∑ ( A − A ˉ ) ( B − B ˉ ) ( n − 1 ) σ A σ B r_{A,B}=\frac{\sum(A-\bar A)(B-\bar B)}{(n-1)\sigma_A \sigma_B} rA,B=(n1)σAσB(AAˉ)(BBˉ)
    注意,相关系数为0时,不代表变量之间没有相关性,只能说明两者线性不相关
  • 卡方检验(chi-square test) χ = ∑ ( O b s e r v e d − E x p e c t e d ) 2 E x p e c t e d \chi=\sum \frac{(Observed-Expected)^2}{Expected} χ=Expected(ObservedExpected)2

(五)特征选择

特征质量判断标准:如果样本在某一特征的区分下呈现出差异较大的分布,则该特征可以被认为是可以区分样本集的较好特征。

比如,抽烟这一特征可以将样本中男女的分布进行很好的区分,因此可以被认定为一个好特征。

将特征选择的过程进行量化,可以通过信息熵来完成。

1. 信息熵

信息熵的定义如下: H ( X ) = − ∑ i = 1 n p ( x i ) l o g b p ( x i ) H(X)=-\sum_{i=1}^np(x_i)log_bp(x_i) H(X)=i=1np(xi)logbp(xi)例如,对于不做特征区分的原始样本集中,男女均匀分布,各占0.5,则对应的原始信息熵可以表示为: H ( S ) = − 0.5 l o g 2 0.5 − 0.5 l o g 2 0.5 = 1.0 H(S)=-0.5log_20.5-0.5log_20.5=1.0 H(S)=0.5log20.50.5log20.5=1.0信息熵可以理解为事件的不确定性程度。若我们以是否抽烟作为分类依据,则对应的信息熵可以表示为: X : { a = " N o n − s m o k e r " ; b = " s m o k e r " } X:\{a="Non-smoker";b="smoker"\} X:{a="Nonsmoker"b="smoker"} H ( S ∣ X = a ) = − 0.8 l o g 2 0.8 − 0.2 l o g 2 0.2 = 0.7219 H(S|X=a)=-0.8log_20.8-0.2log_20.2=0.7219 H(SX=a)=0.8log20.80.2log20.2=0.7219 H ( S ∣ X = b ) = − 0.05 l o g 2 0.05 − 0.95 l o g 2 0.95 = 0.2864 H(S|X=b)=-0.05log_20.05-0.95log_20.95=0.2864 H(SX=b)=0.05log20.050.95log20.95=0.2864假设不抽烟的人群占比 0.6,抽烟人群占比 0.4,则包含特征 X 的总体信息熵为: H ( S ∣ X ) = 0.6 H ( S ∣ X = a ) + 0.4 H ( S ∣ X = b ) = 0.5477 H(S|X)=0.6H(S|X=a)+0.4H(S|X=b)=0.5477 H(SX)=0.6H(SX=a)+0.4H(SX=b)=0.5477最终,由特征 X 带来的信息量(不确定性的减少程度)即 information gain(信息增益)可以表示为: G a i n ( S , X ) = H ( S ) − H ( S ∣ X ) = 1.0 − 0.5477 = 0.4523 Gain(S,X)=H(S)-H(S|X)=1.0-0.5477=0.4523 Gain(S,X)=H(S)H(SX)=1.00.5477=0.4523

2. 特征子集搜索

当我们需要从多个特征中选取某几个重要的特征时,如果采用排列组合方法比较所有可能的特征组合,有 C n m C_n^m Cnm 种可能,需要进行大量的计算,对于计算资源而言耗费巨大。

  • 分支定界(branch and bound)
    在这里插入图片描述
    分支界定方法中认为特征集合间遵循特征组合效果(J)的单调性原则,因此在剪枝过程中,可以通过比较父节点与子节点的特征组合的效果来提前进行剪枝,以此减少后续的比较计算。

比如上图中,如果左下角(2,3)对应的组合效果大于右上角(1,3,4,5)的组合效果,那么节点(1,3,4,5)之后的分支都不需要再进行比较。从而有效地节约了时间。

  • TOP K 特征组合 J ( X k ) = { J ( x 1 ) , J ( x 2 ) , . . . , J ( x k ) } , J ( x 1 ) > J ( x 2 ) > . . . > J ( x k ) J(X_k)=\{J(x_1),J(x_2),...,J(x_k)\},J(x_1)>J(x_2)>...>J(x_k) J(Xk)={J(x1),J(x2),...,J(xk)},J(x1)>J(x2)>...>J(xk)将各个特征的效果进行排序,然后取效果最好的前k个进行组合(实际上这样的组合并不一定是最优的,因为特征之间可能存在重合)
  • 逐渐扩大特征集 J ( X k + x 1 ) > J ( X k + x 2 ) > . . . > J ( X k + x D − k ) , x i ∉ X k J(X_k+x_1)>J(X_k+x_2)>...>J(X_k+x_{D-k}),x_i \notin X_k J(Xk+x1)>J(Xk+x2)>...>J(Xk+xDk),xi/Xk
  • 逐渐缩小特征集 J ( X k − x 1 ) > J ( X k − x 2 ) > . . . > J ( X k − x k ) , x i ∈ X k J(X_k-x_1)>J(X_k-x_2)>...>J(X_k-x_{k}),x_i \in X_k J(Xkx1)>J(Xkx2)>...>J(Xkxk),xiXk
  • 其他优化算法:模拟退火,禁忌搜索,遗传算法等。

(六)特征提取

1. 主成分分析(PCA)

在进行特征提取时,将特征维度上的方差视为该特征所能反映的信息量,方差越大,则认为该特征能反映的信息越多,更能对样本进行区分。
在这里插入图片描述
以一个服从高斯分布的数据集为例,由上图可知,该数据集存在一条主轴(major axis)和一条次轴(minor axis)如前文所述,需要选取能反映更多信息的具有大方差的特征,因此应该选取主轴所对应的特征,即 X 1 X_1 X1

在这里插入图片描述
而当我们的数据并不呈现出完美的高斯分布时,就需要寻找合适的角度对坐标中心进行平移和旋转,而这个平移和旋转的过程实际上就是移除数据之间的相关性(correlation)的过程。 S ( X ) = 1 n − 1 X X T → c o r r e l a t i o n r e m o v e S ( Y ) = 1 n − 1 Y Y T S(X)=\frac{1}{n-1}XX^T\xrightarrow[correlation]{remove}S(Y)=\frac{1}{n-1}YY^T S(X)=n11XXTremove correlationS(Y)=n11YYT也就是说,我们的目标是找到一个 S ( Y ) S(Y) S(Y) 对角线上元素非零,而非对角线上元素全为零。 Y = P X → S ( Y ) = 1 n − 1 Y Y T → Y Y T = ( P X ) ( P X ) T = P X X T P T \begin{aligned}Y=PX& \rightarrow S(Y)=\frac{1}{n-1}YY^T\\&\rightarrow YY^T=(PX)(PX)^T=PXX^TP^T\end{aligned} Y=PXS(Y)=n11YYTYYT=(PX)(PX)T=PXXTPT 由于 X X T XX^T XXT 可以通过特征分解成 X X T = Q D Q T XX^T=QDQ^T XXT=QDQT,其中 D D D 为对角阵,因此上式可以进一步表示成 ( n − 1 ) S ( Y ) = P X X T P T = P Q D Q T P T = ( P Q ) D ( P Q ) T \begin{aligned} (n-1)S(Y)&=PXX^TP^T\\&=PQDQ^TP^T\\&=(PQ)D(PQ)^T\end{aligned} (n1)S(Y)=PXXTPT=PQDQTPT=(PQ)D(PQ)T要使得最终结果同样为对角阵,则意味着 P Q PQ PQ 为单位矩阵,因此 P = Q − 1 = Q T P=Q^{-1}=Q^T P=Q1=QT

也就是说在实际求解过程中,对 X X X 进行特征分解得到对应的 Q Q Q 矩阵之后,再求其转置/逆矩阵即可得到目标矩阵 P P P
在这里插入图片描述
从另外一个角度看,PCA的目标还可以理解为寻找一条新的轴,使得所有数据到该轴的投影距离之和最小,具体过程表示如下: J ( e ) = ∑ t = 1 n ∣ ∣ x k ′ − x k ∣ ∣ 2 = ∑ t = 1 n ∣ ∣ α k e − x k ∣ ∣ 2 = ∑ t = 1 n α k 2 ∣ ∣ e ∣ ∣ 2 − 2 ∑ t = 1 n α k e t x k + ∑ t = 1 n ∣ ∣ x k ∣ ∣ 2 = − ∑ t = 1 n α k 2 + ∑ t = 1 n ∣ ∣ x k ∣ ∣ 2 = − ∑ t = 1 n e t x k x k t e + ∑ t = 1 n ∣ ∣ x k ∣ ∣ 2 \begin{aligned} J(e)&=\sum_{t=1}^n||x_k'-x_k||^2=\sum_{t=1}^n||\alpha_ke-x_k||^2\\&=\sum_{t=1}^n\alpha_k^2||e||^2-2\sum_{t=1}^n\alpha_ke^tx_k+\sum_{t=1}^n||x_k||^2\\&=-\sum_{t=1}^n\alpha_k^2+\sum_{t=1}^n||x_k||^2\\&=-\sum_{t=1}^ne^tx_kx_k^te+\sum_{t=1}^n||x_k||^2\end{aligned} J(e)=t=1nxkxk2=t=1nαkexk2=t=1nαk2e22t=1nαketxk+t=1nxk2=t=1nαk2+t=1nxk2=t=1netxkxkte+t=1nxk2 S = ∑ t = 1 n x k x k t S=\sum_{t=1}^nx_kx_k^t S=t=1nxkxkt,则最小化目标函数可以转换成 m a x e   e t S e , s . t .   ∣ ∣ e ∣ ∣ = 1 max_e \ e^tSe,s.t. \ ||e||=1 maxe etSe,s.t. e=1,后续可以再采用拉格朗日乘子算法进行求解。 u = e t S e − λ ( e t e − 1 ) ∂ u ∂ e = 2 S e − 2 λ e = 0 → S e = λ e u=e^tSe-\lambda(e^te-1)\\ \frac{\partial u}{\partial e}=2Se-2\lambda e=0 \\ \rightarrow Se=\lambda e u=etSeλ(ete1)eu=2Se2λe=0Se=λe观察上式可知, λ \lambda λ S S S 的特征值,对应的 e e e 为特征向量,这就意味着 PCA 就是将原始数据投影到 S S S 的最大的特征值所对应的特征向量的方向上。

2. 线性判别分析(LDA)

PCA 属于无监督学习,无法处理带有标签的分类问题,此时需要考虑LDA。与PCA一样,LDA也是对数据进行降维,但是LDA降维的目的是为了保留样本之间的区分信息。

目标:不同类别之间的距离尽可能远,同类别之间的距离尽可能近。

投影/降维之后的效果衡量标准:Fisher 准则 J = ∣ μ 1 − μ 2 ∣ 2 S 1 2 + S 2 2 J=\frac{|\mu_1 - \mu_2|^2}{S_1^2+S_2^2} J=S12+S22μ1μ22分子代表两个投影类别中心的距离,分母则代表投影后类别内的方差/散度,目标是让类内方差小,类间距离大,因此最终目的是让J整体更大。

同样的,这个过程中需要求解的是一个投影方向,求解过程如下:

已知 μ i = 1 N i ∑ x ∈ ω i x \mu_i=\frac{1}{N_i}\sum_{x\in \omega_i}x μi=Ni1xωix,对应的变换之后的均值则可以表示为: μ ~ i = 1 N i ∑ y ∈ ω i y = 1 N i ∑ x ∈ ω i w T x = w T μ i \tilde\mu_i=\frac{1}{N_i}\sum_{y\in \omega_i}y=\frac{1}{N_i}\sum_{x\in \omega_i}w^Tx=w^T\mu_i μ~i=Ni1yωiy=Ni1xωiwTx=wTμi则前述分子的计算可以表示如下:
( μ ~ 1 − μ ~ 2 ) 2 = ( w T μ 1 − w T μ 2 ) 2 = w T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T w (\tilde\mu_1-\tilde\mu_2)^2=(w^T\mu_1-w^T\mu_2)^2=w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw (μ~1μ~2)2=(wTμ1wTμ2)2=wT(μ1μ2)(μ1μ2)Tw如果用 S B = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T S_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T SB=(μ1μ2)(μ1μ2)T 来表示类间散度,则上式可以改写成: ( μ ~ 1 − μ ~ 2 ) 2 = w T S B w (\tilde\mu_1-\tilde\mu_2)^2=w^TS_Bw (μ~1μ~2)2=wTSBw又已知 S i = ∑ x ∈ w i ( x − μ i ) ( x − μ i ) T S_i=\sum_{x\in w_i}(x-\mu_i)(x-\mu_i)^T Si=xwi(xμi)(xμi)T,则有: s ~ i 2 = ∑ y ∈ ω i ( y − μ ~ i ) 2 = ∑ x ∈ ω i ( w T x − w T μ i ) 2 = ∑ x ∈ ω w T ( x − μ i ) ( x − μ i ) T w = w T S i w \begin{aligned}\tilde s_i^2&=\sum_{y\in \omega_i}(y-\tilde\mu_i)^2=\sum_{x\in \omega_i}(w^Tx-w^T\mu_i)^2\\&=\sum_{x\in \omega}w^T(x-\mu_i)(x-\mu_i)^Tw=w^TS_iw\end{aligned} s~i2=yωi(yμ~i)2=xωi(wTxwTμi)2=xωwT(xμi)(xμi)Tw=wTSiw S 1 + S 2 = S W S_1+S_2=S_W S1+S2=SW,则分母可以改写成 s ~ 1 2 + s ~ 2 2 = w T S W w \tilde s_1^2+\tilde s_2^2=w^TS_Ww s~12+s~22=wTSWw因此最终的目标函数为: J ( w ) = ∣ μ ~ 1 − μ ~ 2 ∣ 2 s ~ 1 2 + s ~ 2 2 → J ( w ) = w T S B w w T S W w J(w)=\frac{|\tilde \mu_1-\tilde \mu_2|^2}{\tilde s_1^2+\tilde s_2^2}\rightarrow J(w)=\frac{w^TS_Bw}{w^TS_Ww} J(w)=s~12+s~22μ~1μ~22J(w)=wTSWwwTSBw上式得到的最终目标函数又成为广义瑞利熵,求解这一目标函数最直接的方式就是进行求导: d d w [ J ( w ) ] = d d w [ w T S B w w T S W w ] = 0 ⇒ [ w T S W w ] d [ w T S B w ] d w − [ w T S B w ] d [ w T S W w ] d w = 0 ⇒ [ w T S W w ] 2 S B w − [ w T S B w ] 2 S W w = 0 ⇒ [ w T S W w w T S W w ] S B w − [ w T S B w w T S W w ] = 0 ⇒ S B w − J S W w = 0 ⇒ S W − 1 S B w − J w = 0 ⇒ S W − 1 S B w = J w \begin{aligned} &\frac{d}{dw}[J(w)]=\frac{d}{dw}[\frac{w^TS_Bw}{w^TS_Ww}]=0\\ &\Rightarrow [w^TS_Ww]\frac{d[w^TS_Bw]}{dw}-[w^TS_Bw]\frac{d[w^TS_Ww]}{dw}=0\\ &\Rightarrow[w^TS_Ww]2S_Bw-[w^TS_Bw]2S_Ww=0\\&\Rightarrow[\frac{w^TS_Ww}{w^TS_Ww}]S_Bw-[\frac{w^TS_Bw}{w^TS_Ww}]=0\\&\Rightarrow S_Bw-JS_Ww=0\\& \Rightarrow S_W^{-1}S_Bw-Jw=0\\&\Rightarrow S_W^{-1}S_Bw=Jw\end{aligned} dwd[J(w)]=dwd[wTSWwwTSBw]=0[wTSWw]dwd[wTSBw][wTSBw]dwd[wTSWw]=0[wTSWw]2SBw[wTSBw]2SWw=0[wTSWwwTSWw]SBw[wTSWwwTSBw]=0SBwJSWw=0SW1SBwJw=0SW1SBw=Jw观察上式可知,上述问题又可以视为一个特征值,特征向量求解问题:
S B w = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T w = ( μ 1 − μ 2 ) R R = ( μ 1 − μ 2 ) T w J w = S W − 1 ( S B w ) = S W − 1 ( μ 1 − μ 2 ) R w = R J S W − 1 ( μ 1 − μ 2 ) \begin{aligned}S_Bw&=(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw=(\mu_1-\mu_2)R \\ R&=(\mu_1-\mu_2)^Tw \\ Jw&=S_W^{-1}(S_Bw)=S_W^{-1}(\mu_1-\mu_2)R \\ w&=\frac{R}{J}S_W^{-1}(\mu_1-\mu_2)\end{aligned} SBwRJww=(μ1μ2)(μ1μ2)Tw=(μ1μ2)R=(μ1μ2)Tw=SW1(SBw)=SW1(μ1μ2)R=JRSW1(μ1μ2)上式中的R和J为标量,不影响向量的求解。因此,最终需要求解的投影方向为: w ∗ = a r g m a x w { w T S B w w T S W w } = S W − 1 ( μ 1 − μ 2 ) w^*=argmax_w\{\frac{w^TS_Bw}{w^TS_Ww}\}=S_W^{-1}(\mu_1-\mu_2) w=argmaxw{wTSWwwTSBw}=SW1(μ1μ2)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值