假设检验及在机器学习中的应用

假设检验

常见的假设检验有:T检验(Student’s t Test),F检验(方差齐性检验),卡方验证等。无论任何假设检验,它们都遵循如下图所示的流程:

  1. 做两个假设:一般如果假设对象是两组样本的话,都会假设这两组样本均值相等(T检验的假设),方差满足齐次性(F检验的假设)等。而另一个假设其实就是两组样本均值不相等(T检验的假设),方差不满足齐次性(F检验的假设)等,其实这两个假设就是一对非此即彼的选项。这两个假设在教科书上就叫做原假设H_0,和备择假设H_1。
  2. 设置一个显著性值:就是如果真实的情况偏离原假设的程度。
    1).如果真实情况和原假设差异不大(P值高于显著性值),那证明原假设是对的,接受原假设。
    2).如果真实情况和原假设差异太大(P值低于显著性值),那证明原假设错了,我们得拒绝原假设,接受备择假设。
  3. 显著性值的选择是个经验值:一般和样本量有关,样本量越大,显著性值越大,一般几百左右的样本量P值一般选择0.05,样本量在两千左右时P值一般选择0.001,样本量再大,P值就没有作用了,所以做假设检验时样本量一般不会超过5千,样本量超过5千时P值就没什么意义了。
  4. 收集证据:用手头的数据去验证第一步定义的假设。这一步就是对样本进行统计计算等操作。
  5. 得到结论:结论一般不外乎这两种:
    1).如果P>0.05(上方第二步设定的显著性的值),原假设成立;
    2).如果P< 0.05(上方第二步设定的显著性的值),原假设不成立,备择假设成立。
    特征X和目标Y的数值类型经常会出现两类:1. 连续型数值,2. 离散性数值(类别特征可以编码成离散型特征)。
    特征X和目标Y在不同数值类型的组合下,应该采用不同的假设检验手段去做特征相关性分析。下图罗列了特征X和目标Y在各种数值类型组合时最适合的假设检验方法。
    在这里插入图片描述

3大抽样分布

  • 卡方分布
  • t分布
  • F 分布

分类 : 卡方检验, 方差分析, 互信息

回归 : 相关系数

卡方检验及应用

思想: 卡方检验中我们要测试的是被检验的特征与类别是否独立,零假设是 特征与类别独立,若拒绝零假设,则特征与类别相关。

1. 卡方分布

  • 卡方分布定义:
    X 1 , X 2 , X 3 . . . X_1,X_2,X_3... X1,X2,X3... 符合N(0,1),令 X = ∑ i = 1 n X i 2 X=\sum_{i=1}^n X_i^2 X=i=1nXi2,则称X 是自由度为n的卡方变量,其分布称为自由度为n的卡方分布。
    自由度越大,就越对称,越接近正态分布。
    在这里插入图片描述

2. 卡方检验

  • 卡方检验:

    特征选择:目的是为了去除和结果无关的特征。
    如果判断无关特征?
    对于分类问题:一般假设与标签独立的特征为无关特征,卡方检验就是进行 独立性检验。
    如果检验结果是某个特征与标签独立,就可以去除该特征。

    卡方检验的计算公式: x 2 = ∑ ( A − T ) 2 / T x^2 = \sum(A-T)^2/T x2=(AT)2/T
    其中A 是实际值, T为理论值。
    x 2 x^2 x2用于衡量实际值与理论值之间的差异程度(这是卡方检验的核心思想),包含了两个信息:1)实际值与理论值偏差的绝对大小(由于平方的存在,差异是被放大的)。2)差异程度与理论值的相对大小。

  • 举例
    喝牛奶对感冒发病率有没有影响:
    下面是实际统计值:
    在这里插入图片描述通过简单的统计我们得出喝牛奶组和不喝牛奶组的感冒率为30.94%和25.00%,两者的差别可能是抽样误差导致,也有可能是牛奶对感冒率真的有影响。

为了确定真实原因,我们先假设喝牛奶对感冒发病率是没有影响的,即喝牛奶喝感冒时独立无关的,所以我们可以得出感冒的发病率实际是(43+28)/(43+28+96+84)= 28.29%

所以,理论的表应该如下表所示:
在这里插入图片描述计算结果:
在这里插入图片描述如果喝牛奶喝感冒真的是独立无关的,那么四格表里的理论值和实际值差别应该会很小。

计算:
卡 方 = ( 43 − 39.3231 ) 2 / 39.3231 + ( 28 − 31.6848 ) 2 / 31.6848 + ( 96 − 99.6769 ) 2 / 99.6769 + ( 84 − 80.3152 ) 2 / 80.3152 = 1.077 卡方 = (43 - 39.3231)^2 / 39.3231 + (28 - 31.6848)^2 / 31.6848 + (96 - 99.6769)^2 / 99.6769 + (84 - 80.3152)^2 / 80.3152 = 1.077 =(4339.3231)2/39.3231+(2831.6848)2/31.6848+(9699.6769)2/99.6769+(8480.3152)2/80.3152=1.077

卡方分布的临界值:

上一步我们得到了卡方的值,但是如何通过卡方的值来判断喝牛奶和感冒是否真的是独立无关的?也就是说,怎么知道无关性假设是否可靠?
–>查询卡方分布的临界值表。
这里需要用到一个自由度的概念,自由度等于V = (行数 - 1) * (列数 - 1),对四格表,自由度V = 1。
对V = 1,喝牛奶和感冒95%概率不相关的卡方分布的临界概率是:3.84。当卡方值小于临界值的时候,拒绝原假设,即认为两个变量显著相关。

显然1.077<3.84,没有达到卡方分布的临界值,所以喝牛奶和感冒独立不相关的假设不成立。

总之,卡方检验: 若各理论数与相应实际数相差越小,卡方值越小;如两者相同,则卡方值必为零。
在这里插入图片描述

3. 卡方检验在机器学习中的应用

## https://scikit-learn.org/stable/modules/feature_selection.html#univariate-feature-selection
## 注意 label 必须是离散的格式的(这里是 label 0  1 2)
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
from sklearn.datasets import load_iris
 
#导入IRIS数据集
iris = load_iris()
iris.data#查看数据
array([[5.1, 3.5, 1.4, 0.2],
       [4.9, 3. , 1.4, 0.2],
       [4.7, 3.2, 1.3, 0.2],
       [4.6, 3.1, 1.5, 0.2],
       [5. , 3.6, 1.4, 0.2],
       [5.4, 3.9, 1.7, 0.4],
       [4.6, 3.4, 1.4, 0.3],
       [5. , 3.4, 1.5, 0.2],
       [4.4, 2.9, 1.4, 0.2],
       [4.9, 3.1, 1.5, 0.1],
       [5.4, 3.7, 1.5, 0.2],
       [4.8, 3.4, 1.6, 0.2],
       [4.8, 3. , 1.4, 0.1],
       [4.3, 3. , 1.1, 0.1],
       [5.8, 4. , 1.2, 0.2],
       [5.7, 4.4, 1.5, 0.4],
       [5.4, 3.9, 1.3, 0.4],
       [5.1, 3.5, 1.4, 0.3],
       [5.7, 3.8, 1.7, 0.3],
       ...
iris.target
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
   2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
model1 = SelectKBest(chi2, k=2)#选择k个最佳特征
model1.fit_transform(iris.data, iris.target)#iris.data是特征数据,iris.target是标签数据,该函数可以选择出k个特征 
array([[1.4, 0.2],
       [1.4, 0.2],
       [1.3, 0.2],
       [1.5, 0.2],
       [1.4, 0.2],
       [1.7, 0.4],
       [1.4, 0.3],
       [1.5, 0.2],
       [1.4, 0.2],
       [1.5, 0.1],
       [1.5, 0.2],
       [1.6, 0.2],
       [1.4, 0.1],
       ....

P值是一种概率,一种在原假设为真的前提下出现观察样本以及更极端情况的概率。
下面的值表示:在 原假设为 特征与结果无关的情况下,出现特征观测值的概率。所以p值越小,越有把握拒绝原假设,也就是 p值越小,特征与结果相关性就越高。

model1.pvalues_  #特征得分的p-values
##第3个p值最小,其次是第4个。 所以这两个与target相关性 比前2个 高。
array([4.47651499e-03, 1.56395980e-01, 5.53397228e-26, 2.75824965e-15])

F 检验及应用

1. F 分布

F 分布定义:
F = X 1 / d 1 X 2 / d 2 F = \frac{X_1 / d_1}{X_2 / d_2} F=X2/d2X1/d1
其中 X 1 X_1 X1 X 2 X_2 X2分别服从自由度为 d 1 和 d 2 d_1 和d_2 d1d2 的卡方分布,即 ( X 1 ∼ χ 2 ( d 1 ) , ; X 2 ∼ χ 2 ( d 2 ) ) (X_1 \sim \chi^2(d_1), ; X_2 \sim \chi^2(d_2)) (X1χ2(d1),;X2χ2(d2)),且 X 1 X_1 X1 X 2 X_2 X2 独立,则随机变量 F F F服从自由度为 ( ( d 1 , d 2 ) ) ((d_1, d_2)) ((d1,d2)) 的F分布,记为 F ∼ F ( d 1 , d 2 ) F \sim \text{F}(d_1, d_2) FF(d1,d2)

2.F检验

F检验是看F分布,而F value是SSB/SSE,组间平方和(SSB)和组内平方和(SSE),如果我们把组间平方和理解为两组之间的差异,组内平方和理解为两组内部不同数据的差异的话,那么简单点说,两个数据在有差异的前提下,究竟是组间的差异大,还是组内的差异大呢?如果是组间的差异大,那么这两组数据本身不一致的概率就非常大了,对应F值比较大

基本思想: 按照不同的标签类别将特征划分为不同的总体,我们想要检验的是不同总体之间均值是否相同 (或者是否有显著性差异)。

F检验是一类建立在F分布基础上的假设检验方法。

3. F 检验在机器学习中应用

scikit-learn中有2种F检验方法:

  • 分类: f_classif (单因素方差分析)
  • 回归: f_regression (线性相关分析)
3.1 方差分析:ANOVA
  • 零假设:划分的不同总体的均值都相等,备择假设:各个总体的均值不相等(说明特征有意义)

  • 方差分析的原理:

    设共有 k个类别,总样本数为 n,第 j个类别的样本数为 n j n_j nj x i j x_{ij} xij 表示第 j 个类别的第 i 个样本,$ \bar{x_j}$表示第 j个类别的样本均值,即 x j ˉ = ∑ i = 1 n j x i j n j \bar{x_j} = \frac{\sum_{i=1}^{n_j} x_{ij}}{n_j} xjˉ=nji=1njxij.
    x ˉ \bar{x} xˉ 为总样本均值 x ˉ = ∑ j = 1 k ∑ i = 1 n j x i j n \bar{x} = \frac{\sum_{j=1}^k \sum_{i=1}^{n_j}x_{ij}}{n} xˉ=nj=1ki=1njxij,那么样本的总体变异为:
    S S T = ∑ j = 1 k ∑ i = 1 n j ( x i j − x ˉ ) 2 SST = \sum\limits_{j=1}^k \sum\limits_{i=1}^{n_j} (x_{ij} - \bar{x})^2 SST=j=1ki=1nj(xijxˉ)2

    SST可以分解为两部分 —— 类别内差异 SSE 和类别间差异 SSB :
    S S E = ∑ j = 1 k ∑ i = 1 n j ( x i j − x j ˉ ) 2 SSE = \sum\limits_{j=1}^k \sum\limits_{i=1}^{n_j} (x_{ij} - \bar{x_j})^2 SSE=j=1ki=1nj(xijxjˉ)2
    S S B = S S T − S S E = ∑ j = 1 k n j ( x j ˉ − x ˉ ) 2 SSB = SST - SSE = \sum\limits_{j=1}^k n_j (\bar{x_j} - \bar{x})^2 SSB=SSTSSE=j=1knj(xjˉxˉ)2
    (SSE) 衡量每个类别内部样本之间的差异,可以认为是随机误差。(SSB) 则衡量不同类别之间的差异。方差分析的基本思想是将不同类别之间的变异与随机误差作比较,如果二者之比大于某一临界值,则可拒绝零假设接受备选假设,即不同类别间样本均值不全相等,这也意味着样本特征对于类别有一定的区分度。
    而对于如何确定临界值,则终于要用 F 分布了, 上面已经定义了服从F分布的随机变量,注意到分子分母都要除以自由度,而 SSE 和 SSB 的自由度分别为 k-1和 n-k ,因而统计检验量 F:
    F = 类 别 间 方 差 类 别 内 方 差 = M S B M S E = S S B   /   ( k − 1 ) S S E   /   ( n − k ) F = \frac{类别间方差}{类别内方差} = \frac{MSB}{MSE} = \frac{SSB \,/\, (k-1)}{SSE\, / \, (n-k)} F==MSEMSB=SSE/(nk)SSB/(k1)
    服从分子自由度为 k-1,分母自由度为 n-k 为的 F 分布,即 M S B M S E ∼ F ( k − 1 ,   n − k ) \frac{MSB}{MSE} \sim F(k-1, \,n-k) MSEMSBF(k1,nk)
    于是按假设检验的套路,零假设成立的情况下算出 F 值,查 F 分布表,若p值小于0.05 (或0.01),则拒绝零假设接受备选假设,不同类别间均值不相等。

方差分析可用于控制一个或多个自变量来检验其与因变量的关系,进而检测某种实验效果, 就一般的特征选择问题而言,和卡方检验一样,我们依然比较关心的是特征的相对重要性,所以可以按每个特征 F 值的大小进行排序,去除F值小的特征。

3.2 线性相关分析

对于特征和标签皆为连续值的回归问题,要检测二者的相关性,最直接的做法就是求相关系数 r x y r_{xy} rxy
r x y = c o v ( x , y ) σ x σ y = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r_{xy} = \frac{cov(x,y)}{\sigma_x \sigma_y} =\frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^n(x_i - \bar{x})^2} \sqrt{\sum_{i=1}^n (y_i - \bar{y})^2}} rxy=σxσycov(x,y)=i=1n(xixˉ)2 i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
但 scikit-learn 中的 f_regression 采用的是先计算相关系数,然后转化为F值。究竟是如何转换的?在线性回归中常使用判定系数 R 2 R^2 R2 作为回归方程拟合数据点的程度,或者说是因变量的总体方差能被自变量解释的比例。 R 2 R^2 R2 的定义以及和相关系数 r x y r_{xy} rxy 的关系如下:
R 2 = S S R S S T = 1 − S S E S S T = r x y 2 R^2 = \frac{SSR}{SST} = 1- \frac{SSE}{SST} = r_{xy}^2 R2=SSTSSR=1SSTSSE=rxy2
其中 SSE为误差平方和: S S E = ∑ i = 1 n ( y i − y ^ i ) 2 SSE = \sum_{i=1}^n (y_i - \hat{y}_i)^2 SSE=i=1n(yiy^i)2,SSR为回归平方和: S S R = ∑ i = 1 n ( y ^ i − y ˉ ) 2 SSR = \sum_{i=1}^n (\hat{y}_i - \bar{y})^2 SSR=i=1n(y^iyˉ)2 ,SST 为总体平方和: S S T = ∑ i = 1 n ( y i − y ˉ ) 2 SST = \sum_{i=1}^n (y_i - \bar{y})^2 SST=i=1n(yiyˉ)2 。可以看到这些式子与方差分析中的式子非常类似,不过注意这里计算的是都是标签值 y,而不是方差分析中的 x 。这其中的原理都是相通的,我们同样可以用 SSR 和 SSE来计算检验统计量 F (SSR 和 SSE 的自由度分别为1和 n-2 ):
F = M S R M S E = S S R   /   1 S S E   /   ( n − 2 ) = S S R / S S T S S E / S S T × ( n − 2 ) = r x y 2 1 − r x y 2 × ( n − 2 ) F = \frac{MSR}{MSE} = \frac{SSR \,/\, 1}{SSE \,/\, (n-2)} = \frac{SSR / SST}{SSE / SST} \times (n-2) = \frac{r_{xy}^2}{1-r_{xy}^2} \times (n-2) F=MSEMSR=SSE/(n2)SSR/1=SSE/SSTSSR/SST×(n2)=1rxy2rxy2×(n2)
M S R M S E ∼ F ( 1 ,   n − 2 ) \frac{MSR}{MSE} \sim F(1, \,n-2) MSEMSRF(1,n2)。这样就可以方便地将相关系数转化为 F 值了,接下来的步骤与之前的假设检验一样。该方法的缺点是只能检测线性相关关系,但不相关不代表独立,可能是非线性相关关系。

T检验及应用

1. T分布

正态分布的两个参数μ和σ决定了正态分布的位置和形态。为了应用方便,常将一般的正态变量X通过u变换[(X-μ)/σ]转化成标准正态变量u,以使原来各种形态的正态分布都转换为μ=0,σ=1的标准正态分布(standard normaldistribution),亦称u分布。根据中心极限定理,通过抽样模拟试验表明,在正态分布总体中以固定 n 抽取若干个样本时,样本均数的分布仍服从正态分布,即N(μ,σ)。所以,对样本均数的分布进行u变换,也可变换为标准正态分布N (0,1)。

由于在实际中,往往σ(总体方差)是未知的,常用s(样本方差)作为σ的估计值,为了与u变换区别,称为t变换,统计量t 值的分布称为t分布。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vU5E5JY-1575182011293)(attachment:image.png)]

2. T检验

要求: 一组样本二分类,一组样本连续值。 仅仅适用于该情况。

T检验分单样本T检验和双样本T检验

  • 单样本T检验检验的是样本的均值是否能代表总体的均值。
  • 双样本T检验检验的是两个独立样本所代表的总体数据均值差异是否显著。换句话说就是检验两个总体是否是存在差异。

双样本T检验适用条件如下:
两样本均来自于正态总体
两样本相互独立
满足方差齐性,方差齐次性指的是样本的方差在一个数量级水平上(通过方差齐性检验)
接下来按照假设检验流程:

  • 1.原假设:两个独立样本所代表的总体数据均值相同(H_0),备择假设:两个独立样本所代表的总体数据均值不相同(H_1);
  • 2.P值定为0.05;
  • 3.计算两组样本的均值,标准差然后带入下图所示的公式后求得t值,然后查T检验表得到P值。其中 x ‾ 1 \overline x_1 x1 和$\overline x_2 $分别指这两组样本的均值,s_1 和s_2分别代表两组样本的标准差, n_1 和n_2分别代表两组样本的样本量;
  • 4.如果P< 0.05,则两组数据均值不同,数据间存在差异,如果P> 0.05,则两组数据均值相同。

在这里插入图片描述

3. T检验的简单应用

from scipy import stats
import pandas as pd
from sklearn.datasets import load_boston
%matplotlib inline

data_value = load_boston().data
data_target = load_boston().target
feature = load_boston().feature_names
data = pd.DataFrame({i:j for i,j in zip(feature, [data_value[:,index] for index in range(len(feature))])})
data['Price'] = data_target
data[:10]

"""
 price 是预测列y, 其他列都是特征x.
 如果X 和Y 中一个为二分类数值类型,一个为连续的数值类型,就可以用双样本T检验
 
 下面选择CHAS 这列(二分类数值类型:471:0, 35:1), Price是一个连续的数值类型。 针对这两列采用双T 检验, 检验CHAS(0或者1)的不同是否会对房价有影响,也就是说检验CHAS这列特征和房价是否有关系。
 (CHAS:查尔斯河虚拟变量 (= 1 如果土地在河边;否则是0))
"""
data['CHAS'].value_counts()
'''
data['CHAS'].value_counts()

0.0    471
1.0     35
Name: CHAS, dtype: int64
'''
data['Price'].plot()

在这里插入图片描述

## 将CHAS=0的房价样本和CHAS=1的房价样本分别抽取出来
CHAS_0 = list(data[data['CHAS']==0].Price)
CHAS_1 = list(data[data['CHAS']==1].Price)

## T-test步骤1: 方差齐次性检验
stats.levene(CHAS_0, CHAS_1)
#这里我们只需要关注p value.
# P=0.03小于0.05,证明方差齐次性检验的原假设不成立,说明两组样本方差不满足齐次性。
#LeveneResult(statistic=4.590342218715871, pvalue=0.03263097600633006)

## T-test步骤2:做双样本T检验。
## 注意由于两组样本之间的方差不满足齐次性,需要加一个参数 equal_var=False
stats.ttest_ind(CHAS_0,CHAS_1, equal_var=False)
#Ttest_indResult(statistic=-3.113291312794837, pvalue=0.003567170098137517)

## P=0.003小于0.05,证明双样本T检验的原假设不成立,即两个总体之间的均值存在差异。
## 即CHAS=0和CHAS=1 对应的房价 均值有差异。也就是说 CHAS 这一个特征对房价用影响。
## 这里看一下房价均值
data.groupby('CHAS').mean()['Price']
## CHAS=0:均值22,CHAS=1:均值28.
## 单变量特征选择

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectPercentile, chi2
from sklearn.model_selection import cross_val_score
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC


# #############################################################################
# Import some data to play with
X, y = load_iris(return_X_y=True)
# Add non-informative features
np.random.seed(0)
X = np.hstack((X, 2 * np.random.random((X.shape[0], 36))))

# #############################################################################
# Create a feature-selection transform, a scaler and an instance of SVM that we
# combine together to have an full-blown estimator
clf = Pipeline([('anova', SelectPercentile(chi2)),
                ('scaler', StandardScaler()),
                ('svc', SVC(gamma="auto"))])

# #############################################################################
# Plot the cross-validation score as a function of percentile of features
score_means = list()
score_stds = list()
percentiles = (1, 3, 6, 10, 15, 20, 30, 40, 60, 80, 100)

for percentile in percentiles:
    clf.set_params(anova__percentile=percentile)
    this_scores = cross_val_score(clf, X, y, cv=5)
    score_means.append(this_scores.mean())
    score_stds.append(this_scores.std())

plt.errorbar(percentiles, score_means, np.array(score_stds))
plt.title(
    'Performance of the SVM-Anova varying the percentile of features selected')
plt.xticks(np.linspace(0, 100, 11, endpoint=True))
plt.xlabel('Percentile')
plt.ylabel('Accuracy Score')
plt.axis('tight')
plt.show()

在这里插入图片描述
参考:
http://www.likecs.com/show-54117.html
https://blog.csdn.net/jetFlow/article/details/78884619

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值