以性别预测为例,谈谈数据挖掘中的分类问题

【机器学习实验五】逻辑斯蒂回归 一、逻辑斯蒂回归基本概念 1.1、基本概念 逻辑斯蒂(Logistic)回归又称为“对数几率回归”,虽然名字有回归,但是实际上却是一种经典的分类方法,其主要思想是:根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。 1.2、特点 优点:计算代价不高,具有可解释性,易于实现。不仅可以预测出类别,而且可以得到近似概率预测,对许多需要利用概率辅助决策的任务很有用。 缺点:容易欠拟合,分类精度可能不高。 适用数据类型:数值型和标称型数据。 1.3、Logisti. 阅读详情

博文出处:http://dataunion.org/22280.html

互联网的迅猛发展,催生了数据的爆炸式增长。面对海量的数据,如何挖掘数据的价值,成为一个越来越重要的问题。本文首先介绍数据挖掘的基本内容,然后按照数据挖掘基本的处理流程,以性别预测实例来讲解一个具体的数据挖掘任务是如何实现的。

数据挖掘的基本内容

  • 首先,对于数据挖掘的概念,目前比较广泛认可的一种解释如下:

Data mining is the use of efficient techniques for the analysis of very large collections of data and the extraction of useful and possibly unexpected patterns in data.
数据挖掘是一种通过分析海量数据,从数据中提取潜在的但是非常有用的模式的技术。

  • 主要的数据挖掘任务

数据挖掘任务可以分为预测性任务和描述性任务。预测性任务主要是预测可能出现的情况;描述性任务则是发现一些人类可以解释的模式或规律。数据挖掘中比较常见的任务包括分类、聚类、关联规则挖掘、时间序列挖掘、回归等,其中分类、回归属于预测性任务,聚类、关联规则挖掘、时间序列分析等则都是解释性任务。

按照数据挖掘的基本流程,来谈谈分类问题

在简单介绍了数据挖掘的基本内容后,我们来切入主题。以数据挖掘的流程为主线,穿插性别预测的实例,来讲解分类问题。根据经典教科书和实际工作经验来看,数据挖掘的基本流程主要包括五部分,首先是明确问题,第二是对数据进行预处理,第三是对数据进行特征工程,转化为问题所需要的特征,第四是根据问题的评价标准选择最优的模型和算法,最后将训练的模型用于实际生产,产出所需结果(如图1所示)。

图片描述

图1 数据挖掘的基本流程
下面我们分别介绍各环节涉及的主要内容:

1.明确问题和了解数据

这一环节最重要的是需求和数据的匹配。首先需要明确需求,有着怎样的需求?是需要做分类、聚类、推荐还是其他?实际数据是否支持该需求?比如,分类问题需要有或者可以构造出training set,如果没有training set,就没有办法按照分类问题来解决。此外,数据的规模、重要feature的覆盖度等,也是需要特别考虑的问题。

2.数据预处理

1)数据集成,数据冗余,数值冲突

数据挖掘中准备数据的时候,需要尽可能地将相关数据集成在一起。如果集成的数据中,有两列或多列值一样,则不可避免地会产生数值冲突或数据冗余,可能需要根据数据的质量来决定保留冲突中的哪一列。

2)数据采样

一般来说,有效的采样方式如下:如果样本是有代表性的,则使用样本数据和使用整个数据集的效果几乎是一样的。抽样方法有很多,需要考虑是有放回的采样,还是无放回的采样,以及具体选择哪种采样方式。

3)数据清洗、缺失值处理与噪声数据

现实世界中的数据,是真实的数据,不可避免地会存在各种各样的异常情况。比如某列的值缺失,或者某列的值是异常的,所以,我们需要在数据预处理阶段进行数据清洗,来减少噪音数据对模型训练和预测结果的影响。

3.特征工程

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。下面的观点说明了特征工程的特点和重要性。

Feature engineering is another topic which doesn’t seem to merit any review papers or books, or even chapters in books, but it is absolutely vital to ML success. […] Much of the success of machine learning is actually success in engineering features that a learner can understand.
— Scott Locklin, in “Neglected machine learning ideas”

1)特征:对所需解决问题有用的属性

特征是对你所需解决问题有用或者有意义的属性。比如,在计算机视觉领域,图片作为研究对象,可能图片中的一个线条就是一个特征;在自然语言处理领域中,研究对象是文档,文档中的一个词语的出现次数就是一个特征;在语音识别领域中,研究对象是一段话,phoneme(音位)可能就是一个特征。

2)特征的提取、选择和构造

既然特征是对我们所解决的问题最有用的属性。首先我们需要处理的是根据原始数据抽取出所需要的特征。亟需注意的是,并不是所有的特征对所解决的问题产生的影响一样大,有些特征可能对问题产生特别大的影响,但有些则可能影响甚微,和所解决的问题不相关的特征需要被剔除掉。因此,我们需要针对所解决的问题选择最有用的特征集合,一般可以通过相关系数等方式来计算特征的重要性。当然,有些模型本身会输出feature重要性,如Random Forest等算法。而对于图片、音频等原始数据形态特别大的对象,则可能需要采用像PCA这样的自动降维技术。另外,还可能需要本人对数据和所需解决的问题有深入的理解,能够通过特征组合等方法构造出新的特征,这也正是特征工程被称之为是一门艺术的原因之一。

实例讲解(一)

接下来,我们通过一个性别预测的实例来说明数据挖掘处理流程中的“明确问题”、“数据预处理”和“特征工程”三个部分。

假设我们有如下两种数据,想根据数据训练一个预测用户性别的模型。

  • 数据1: 用户使用App的行为数据;
  • 数据2: 用户浏览网页的行为数据;

第一步:明确问题

  1. 首先明确该问题属于数据挖掘常见问题中的哪一类, 是分类、聚类,推荐还是其他?假设本实例数据有部分数据带有男女性别,则该问题为分类问题;
  2. 数据集是否够大?我们需要足够大的数据来训练模型,如果数据集不够大,那么所训练的模型和真实情况偏差会比较大;
  3. 数据是否满足所解决问题的假设?统计发现男人和女人使用的App不太一致,浏览网页的内容也不太一致,则说明我们通过数据可以提取出对预测性别有用的特征,来帮助解决问题。如果根据数据提取不出有用的特征,那么针对当前数据,问题是没法处理的。

第二步:数据预处理

  1. 实际工作中,在数据预处理之前需要确定整个项目的编程语言(如Python、Java、 Scala)和开发工具(如Pig、Hive、Spark)。通常而言,编程语言和开发工具的选择都依赖于所处的数据平台环境;
  2. 选取多少数据做模型训练?这是常说的数据采样问题。一般认为采样数据量越大,对所解决的任务帮助越大,但是数据量越大,计算代价也越大,因此,需要在解决问题的效果和计算代价之间折中一下;
  3. 把所有相关的数据聚合在一起,如果有相同字段则存在数据冗余的问题,需要根据数据的质量剔除掉冗余的数据;数据中可能存在异常值,则需要过滤掉;数据中可能有的值有缺失,则需要填充默认值。

数据预处理后可能的结果(如表1、表2所示):

表1 数据1预处理后结果
图片描述

表2 数据2预处理后结果
图片描述

第三步:特征工程

由于数据1和数据2的类型不太一样,所以进行特征工程时,所采用的方法也不太一样,下面分别介绍一下:

  1. 数据1的特征工程

数据1的单个特征的分析主要包括以下内容:

  • 数值型特征的处理,比如App的启动次数是个连续值,可以按照低、中、高三个档次将启动次数分段成离散值;
  • 类别型特征的处理,比如用户使用的设备是三星或者联想,这是一个类别特征,可以采用0-1编码来处理;
  • 需要考虑特征是否需要归一化。

数据1的多个特征的分析主要包括以下内容:

  • 使用的设备类型是否决定了性别?需要做相关性分析,通常计算相关系数;
  • App的启动次数和停留时长是否完全正相关,结果表明特别相关,则说明App的停留时长是无用特征,将App的停留时长这个特征过滤掉;
  • 如果特征太多,可能需要做降维处理。

2.数据2的特征工程

数据2是典型的文本数据,文本数据常用的处理步骤包含以下几个部分:

网页 → 分词 → 去停用词 → 向量化

  • 分词。可以采用Jieba分词(Python库)或张华平老师的ICTCLAS;
  • 去除停用词。停用词表除了加入常规的停用词外,还可以将DF(Document Frequency)比较高的词加入停用词表,作为领域停用词;
  • 向量化。一般是将文本转化为TF或TF-IDF向量。

特征工程后数据1的结果(如表3所示,A1低表示启动App1的次数比较低,以此类推,is_hx表示设备是否是华为,Label为1表示Male)。

表3 数据1特征工程后结果
图片描述

特征工程后数据2的结果(如表4所示,term1=5表示user1浏览的网页中出现词1的频率,以此类推)。

表4 数据2特征工程后结果
图片描述

第四步:算法和模型

做完特征工程后,下一步就是选择合适的模型和算法。算法和模型的选择主要考虑一下几个方面:

  1. 训练集的大小;
  2. 特征的维度大小;
  3. 所解决问题是否是线性可分的;
  4. 所有的特征是独立的吗?
  5. 需要不需要考虑过拟合的问题;
  6. 对性能有哪些要求?

上面中提到的很多问题没法直接回答,可能我们还是不知道该选择哪种模型和算法,但是奥卡姆剃刀原理给出了模型和算法的选择方法:

Occam’s Razor principle: use the least complicated algorithm that can address your needs and only go for something more complicated if strictly necessary.

业界比较通用的算法选择一般是这样的规律:如果LR可以,则使用LR;如果LR不适合,则选择Ensemble的方式;如果Ensemble方式不适合,则考虑是否尝试Deep Learning。下面主要介绍一下LR算法和Ensemble方法的相关内容。

  • LR算法(Logistic Regression,逻辑回归算法)

只要认为问题是线性可分的,就可采用LR,通过特征工程将一些非线性特征转化为线性特征。 模型比较抗噪,而且可以通过L1、L2范数来做参数选择。LR可以应用于数据特别大的场景,因为它的算法效率特别高,且很容易分布式实现。

区别于其他大多数模型,LR比较特别的一点是结果可以解释为概率,能将问题转为排序问题而不是分类问题。

  • Ensemble方法(组合方法)

组合方法的原理主要是根据training set训练多个分类器,然后综合多个分类器的结果,做出预测(如图2所示)。

图片描述

图2 组合方法的基本流程
组合方式主要分为Bagging和Boosting。Bagging是Bootstrap Aggregating的缩写,基本原理是让学习算法训练多轮,每轮的训练集由从初始的训练集中随机取出的n个训练样本组成(有放回的随机抽样),训练之后可得到一个预测函数集合,通过投票方式决定预测结果。

而Boosting中主要的是AdaBoost(Adaptive Boosting)。基本原理是初始化时对每一个训练样本赋相等的权重1/n,然后用学习算法对训练集训练多轮,每轮结束后,对训练失败的训练样本赋以较大的权重。也就是让学习算法在后续的学习中集中对比较难的训练样本进行学习,从而得到一个预测函数集合。每个预测函数都有一定的权重,预测效果好的预测函数权重较大,反之较小,最终通过有权重的投票方式来决定预测结果。

Bagging和Boosting的主要区别如下:

  1. 取样方式不同。Bagging采用均匀取样,而Boosting根据错误率来取样,因此理论上来讲Boosting的分类精度要优于Bagging;
  2. 训练集的选择方式不同。Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostng的各轮训练集的选择与前面的学习结果有关;
  3. 预测函数不同。Bagging的各预测函数没有权重,而Boosting是有权重的。Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。

对于像神经网络这样极其耗时的学习方法,Bagging可通过并行训练节省大量时间开销。Bagging和Boosting都可以有效地提高分类的准确性。在大多数数据集中,Boosting的准确性比Bagging要高。

分类算法的评价
上一部分介绍了常用的模型和算法,不同的算法在不同的数据集上会产生不同的效果,我们需要量化算法的好坏,这就是分类算法的评价。在本文中,笔者将主要介绍一下混淆矩阵和主要的评价指标。

1.混淆矩阵(如图3所示)

图片描述

图3 混淆矩阵
1)True positives(TP):即实际为正例且被分类器划分为正例的样本数;
2)False positives(FP):即实际为负例但被分类器划分为正例的样本数;
3)False negatives(FN):即实际为正例但被分类器划分为负例的样本数;
4)True negatives(TN):即实际为负例且被分类器划分为负例的样本数。

2.主要的评价指标

1)准确率accuracy=(TP+TN)/(P+N)。这个很容易理解,就是被分对的样本数除以所有的样本数。通常来说,准确率越高,分类器越好;
2)召回率recall=TP/(TP+FN)。召回率是覆盖面的度量,度量有多少个正例被分为正例。
3)ROC和AUC。

实例讲解(二)

实例(一)产出的特征数据,经过“模型和算法”以及“算法的评价”两部分所涉及的代码实例如图4所示。

图片描述

图4 模型训练示例代码

总结

本文以数据挖掘的基本处理流程为主线,以性别预测为具体实例,介绍了处理一个数据挖掘的分类问题所涉及的方方面面。对于一个数据挖掘问题,首先要明确问题,确定已有的数据是否能够解决所需要解决的问题,然后就是数据预处理和特征工程阶段,这往往是在实际工程中最耗时、最麻烦的阶段。经过特征工程后,需要选择合适的模型进行训练,并且根据评价标准选择最优模型和最优参数, 最后根据最优模型对未知数据进行预测,产出结果。希望本文的内容对大家有所帮助。

数据挖掘算法之深入朴素贝叶斯分类 写在前面的话:   我现在大四,毕业设计是做一个基于大数据的用户画像研究分析。所以开始学习数据挖掘的相关技术。这是我学习的一个新技术领域,学习难度比我以往学过的所有技术都难。虽然现在在一家公司实习,但是工作还是挺忙的,经常要加班,无论工作多忙,还是决定要写一个专栏,这个专栏就写一些数据挖掘算法、数据结构、算法设计和分析的相关文章。通过写博文来督促自己不断学习。以前对于数学没有多大的兴趣爱好,从小 阅读详情

相关推荐

数据挖掘小案例

数据挖掘的入门案例总结

ABCisCOOL的博客 1万+

清华大学数据挖掘课程幕课习题(第二章)

第二章第一节 多选1. 以下关于数据预处理的描述正确的是: (1分) 需要借助领域知识 核心内容就是缺失数据填充 数据挖掘工作的基础性工作 主要靠标准化算法自动处理 单选2. 小张的个人信息中身份证号倒数第二位是单数,性别为女。这种情况被称为: (1分) Missing Data Inconsistent Data Noisy Data Redundant Data 单选3. 学生小明在调查问卷中...

weixin_41927456的博客 1万+

基于分类方法的银行客户流失预测

技术栈:Excel、SPSS、SQL SERVER BI

FeliciaZhou 6158

逻辑回归模型 判断男女

逻辑回归模型判断男女

qq_43235540的博客 1814

使用excel进行数据挖掘(6)---- 预测

使用excel 2007 演示数据预测的功能。

张某人ER的技术博客 ==学习&&分享== 4063

根据人名预测性别_基于多项式的朴素贝叶斯算法实现

根据人名预测性别_基于多项式的朴素贝叶斯算法实现. 手工实现了一个基于贝叶斯算法的文本分类(二分类) 里面有两个案例,有一个案例有手工计算的过程,用于佐证算法实现的准确性的,另一个是一个小竞赛中的题目,用名字预测性别.

简单的实现KNN算法

0:导引 K-近邻算法(KNN) ### 如何进行电影分类 众所周知,电影可以按照题材分类,然而题材本身是如何定义的?由谁来判定某部电影属于哪 个题材?也就是说同一题材的电影具有哪些公共特征?这些都是在进行电影分类时必须要考虑的问 题。没有哪个电影人会说自己制作的电影和以前的某部电影类似,但我们确实知道每部电影在风格 上的确有可能会和同题材的电影相近。那么动作片具有哪些共有特征,使...

weixin_30867015的博客 1174

Spacedesk保姆级教程:用旧平板给Windows电脑当副屏,从安装到避坑一步到位

本文提供Spacedesk保姆级教程,教你如何将旧平板变成Windows电脑的副屏,从软件安装到网络配置、显示优化及声音交互,一步步避开常见陷阱。通过WiFi实现扩展屏功能,支持4K分辨率和60Hz刷新率,让闲置设备焕发新生。

weixin_42524945的博客 1万+

数据挖掘导论——分类与预测

数据挖掘导论——分类与预测实验内容背景介绍数据实验要求实验过程一、首先引入数据分析以及模型所需要的库二、进行数据的读取三、进行数据分析1、Sex:性别比例2、PClass:船舱等级3、PClass,Sex:船舱等级与性别4、Age:年龄5、Embarked:登船地点6、Sibsip:兄弟姐妹的数量7、Parch:8、Fare:船票的价格四、数据清洗1、年龄2、Family_size:家庭总人数3、船票价格4、去掉不必要的特征:五、进行建模 实验内容 背景介绍 泰坦尼克号于1909年3月31日在爱尔兰动工建造

上山打老虎的博客 5979

GBDT算法详解

本文详细介绍了GBDT算法的原理和特点,并展示了其在回归和分类任务中的应用。首先介绍了GBDT算法的基本思想和公式,然后展示了如何在回归数据集使用GBDT进行回归任务,以及如何在分类数据集上使用GBDT进行文本分类任务。

甜盐的博客 2540

Ubuntu 20.04下大陆ARS408毫米波雷达点云数据采集与RVIZ实时可视化全流程解析

本文详细解析了在Ubuntu 20.04系统下,如何实现大陆ARS408毫米波雷达的点云数据采集与RVIZ实时可视化全流程。内容涵盖硬件连接、ROS Noetic环境搭建、CAN接口配置、数据验证及自动化脚本编写,为机器人感知、自动驾驶等领域的开发者提供了一套稳定、实用的实战方案。

bash7scripter的博客 699

数据挖掘十大算法之分类算法(分类介绍及评价指标)

数据挖掘十大算法之分类算法(分类介绍及评价指标) 接上篇文章,接下来学习挖掘算法中的分类算法: 首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为分类算法,聚类算法和关联规则三大类 算法分类 连接分析:PageRank 关联分析:Apriori 分类算法:ID3、C4.5,朴素贝叶斯,SVM,KNN,Adaboost,CART 聚类算法:K-Means,EM 这里研究分类算法中的决策算法——ID3算法,有ID3算法的知识背景后分析C4.5算法就会容易很多 1. 分类相关知识 1.1 分类的概念

fengxiandada的博客 1万+

RealSense D455启动教程

RealSense D455启动教程 修改rs_camera.launch

每天进步一点点 2417

【优快云学院视频】以性别预测为例,谈谈数据挖掘中常见的分类算法

一、数据挖掘概念1.数据挖掘工程师数据挖掘工程师 = 大数据工程师 + 算法工程师2.数据挖掘主要任务1) Prediction Tasks 预测性任务 Use some variables to predict unknown or future values of other variables 2) Description Tasks 描述性任务 Find human-interpret

chibangyuxun的博客 2587

Ubuntu1804 关于ubuntu18.04下载软件仓库信息失败,请检查网络连接 的解决方案

今天电脑在更换软件源的时候遇到了这个问题。出现了如上图所示的错误信息。 尝试了各家优快云的博客之后,发现方法大同小异,均无法解决。 方法大多都是要求更换软件源,如下所示: 打开“Ubuntu软件中心”-->点击“编辑”-->点击“软件源”-->在Ubuntu软件界面,“下载自”默认是“中国的服务器”,改为“主服务器”试试 2.打开更新管理器-》设置-》选择站点-》...

weixin_43729409的博客 1万+

[Dify实战] Bug 自动归因与复现指南生成器-带绑定资源

摘要: 本文介绍如何利用Dify构建"Bug自动归因与复现指南生成器",解决研发测试中的常见痛点。该系统可自动解析Bug信息,结构化输出复现步骤、可能原因、修复建议和回归测试点,显著提升问题处理效率。文章详细阐述了方案流程、Prompt设计要点、输出模板及落地清单,并提供了RCA分析模板和标准复现步骤示例。通过统一Bug描述模板和自动化分析,该系统能有效降低人力成本,加速问题闭环,适用于持续迭代的中大型项目。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 294

数据挖掘实战:个人信贷违约预测

我是小z本次分享一个数据挖掘实战项目:个人信贷违约预测,此项目对于想要学习信贷风控模型的同学非常有帮助,数据源在文末。项目背景当今社会,个人信贷业务发展迅速,但同时也会暴露较高的信用风险。...

SeizeeveryDay的博客 9155

第七天 Labview进阶(7.2 与汇川PLC通信)

运行环境: Labview 2020 Autoshop v4.10.1.1 该文档中包括Labview程序和汇川PLC程序,可以完美实现Labview与汇川PLC的通信。具体的使用教程可以参考本人的相关文章,讲解详尽,请尽情享用!

weixin_38637405的博客 3527

以性别预测为例,谈谈数据挖掘中常见的分类算法-优快云公开课-专题视频课程

互联网的迅猛发展,催生了海量数据的产生。如何挖掘数据的深层价值变得尤为重要。然而,数据挖掘复杂的数学内容使很多人望而却步。本议题试图以实例的形式,用尽量通俗的方式,针对性别预测这个分类问题,来谈一下数据挖掘基本的处理流程,常见的算法和算法的选择等。 讲师:王琪,友盟数据挖掘工程师,武汉大学硕士,工作涉及友盟的各类数据挖掘和分析任务。对数据挖掘和分析,自然语言处理和文本检索有多年的理论和实践经验。...

csdngkk的博客 353

诊断测试工具CANoe.DiVa从入门到精通系列——开门见山

### 工具主要用于测试ECU的诊断功能。关于自动化诊断测试可以分为如下内容: ### -> 1、根据诊断需求规范进行cdd文件的编辑(现阶段主要是诊断问卷调查表); ### -> 2、新建Diva工程,导入对应的诊断数据库文件生成测试用例; ### -> 3、新建CANoe工程,导入CANoe.DiVa生成的Diva工程; ### -> 4、根据测试报告进行错误处理。

Soly_kun的博客 3546

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

医疗行业数据挖掘之疾病预测

医疗行业数据挖掘之疾病预测

hbwzhsh的专栏 2731

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【数据挖掘】用户画像之性别预测

在线视频用户画像之性别预测 1 分类方法 利用少量的用户上报的性别数据做预测。分类训练的步骤为: (1)统计每个视频标签的男女比例,过滤掉男女区分度不高的标签。 (2)获得一段周期中用户的视频观看行为,从中统计出各有效视频标签的权重,作为特征向量。 (3)有了特征向量和已知的用户性别,很容易就能训练出一个分类器。

zkq_1986的博客 4741

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 逻辑回归L1与L2正则,L1稀疏,L2全局最优(凸函数梯度下降)
下一篇: 浅析Logistic Regression
kejiaming
博客等级 码龄15年 19粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值