本节书摘来自华章计算机《大数据架构和算法实现之路:电商系统的技术实战》一书中的第1章,第1.2节,作者 黄 申,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2 分类任务的处理流程
给出分类问题的基本概念之后,下面就来理解分类的关键要素和流程。
- 学习:指计算机通过人类标注的指导性数据,“理解”和“模仿”人类决策的过程。
- 算法模型:分类算法通过训练数据的学习,其计算方式和最后的输出结果,称为模型。通常是指一个做决策的计算机程序及其相应的存储结构,它使得计算机的学习行为更加具体化。常见的模型有朴素贝叶斯(Naive Bayes)、K-最近邻(KNN)、决策树,等等。
- 标注数据:也称为标注样本。由于分类学习是监督式的,对于每个数据对象,除了必要的特征值列表,还必须告诉计算机它属于哪个分类。因此需要事先进行人工的标注,为每个对象指定分类的标签。在前面的水果案例中,对各个水果分别打上“苹果”“甜橙”和“西瓜”的标签就是标注的过程。这一点非常关键,标注数据相当于人类的老师,其质量高低直接决定机器学习的效果。值得注意的是,标注数据既可以作为训练阶段的学习样本,也可以作为测试阶段的预测样本。在将监督式算法大规模应用到实际生产之前,研究人员通常会进行离线的交叉验证(Cross Validation),这种情况会将大部分标注数据用在训练阶段,而将少部分留在测试阶段使用。对于交叉验证,会在后文的效果评估部分做进一步阐述。在正式的生产环境中,往往会将所有的标注数据用于训练阶段,以提升最终效果。
- 训练数据:也称为训练样本。这些是带有分类标签的数据,作为学习算法的输入数据,用于构建最终的模型。根据离线内测、在线实际生产等不同的情形,训练数据会取标注数据的子集或全集。
- 测试数据:也称为测试样本。这些是不具备或被隐藏了分类标签的数据,模型会根据测试数据的特征,预测其应该具有的标签。在进行离线内测时,交叉验证会保留部分标注数据作为测试之用,因此会故意隐藏其标注值,以便于评估模型的效果。如果是在实际生产中,那么任何一个新预测的对象都是测试数据,而且只能在事后通过人工标注来再次验证其正确性。
- 训练:也称为学习。算法模型通过训练数据进行学习的过程。
- 测试:也称为预测。算法模型在训练完毕之后,根据新数据的特征来预测其属于哪个分类的过程。
图1-2将如上的基本要素串联起来,展示了分类学习的基本流程。
理解了这些要素和分类过程之后,可以发现,除了人工标注之外,最为核心的就是分类的算法了。接下来,我们再来看看几个常用的分类算法。