作者:Jason Brownlee
翻译:候博学
前言
机器学习是一个从训练集中学习出算法的研究领域。
分类是一项需要使用机器学习算法的任务,该算法学习如何为数据集分配类别标签。
举一个简单易懂的例子:将电子邮件分类为“ 垃圾邮件 ”或“ 非垃圾邮件”(二分类的典型特征“非此即彼”,关于二分类,后文会涉及)。
你可能会在机器学习中遇到许多不同类型的分类任务,但是其实每种模型都会使用与之相对应的建模方法。
因此在本文中,你将了解到机器学习中不同类型的分类预测建模方法。
分类预测建模将类别标签分配给输入样本;
二分类是指预测两个类别之一(非此即彼),而多分类则涉及预测两个以上类别之一;
多标签分类涉及为每个样本预测一个或多个类别;
在不平衡分类中,样本在各个类别之间的分布不相等;
概述
本文分为五个部分,它们分别是:
分类预测建模
二分类
多类别分类
多标签分类
不平衡分类
分类预测建模
在机器学习中,分类[1]是指预测建模问题,对给定示例的输入数据预测其类别标签。
分类问题的案例包括:
分类一封邮件是否为垃圾邮件。
给定一个手写字符,将其分类为已知字符之一。
根据最近的用户行为,来将用户分类为是否流失。
从建模的角度来看,分类需要训练数据集,其中包含许多可供学习的输入和输出数据。
模型将使用训练数据集,并计算如何将输入数据样本更加准确地映射到特定的类别标签。
因此,训练数据集必须拥有足够的代表性,并且每个分类标签都拥有很多样本数据。
类别标签通常是字符串值,例如“ spam ”(垃圾邮件),“ not spam ”(非垃圾邮件),并且在提供给建模算法之前必须将其映射为数值。这通常称为标签编码[2],其中为每个类别标签分配一个唯一的整数,例如“ spam ” = 0,“ no spam ” = 1。
有很多不同类型的分类算法可以对分类预测问题进行建模。
关于如何将合适的算法应用到具体分类问题上,没有固定的模式准则。但可以通过试验来确定,通常是试验者使用受控实验,在给定的分类任务中,哪种算法和算法配置拥有最佳性能,从而将其挑选出来。
基于预测结果对分类预测建模算法进行评估。分类准确度是一种常用的度量标准,其通过预测的类别标签来评估模型的性能。即使分类结果不是完美的,但对于许多分类任务来说这是个很好的开始。
某些任务可能需要预测每个样本类别成员的概率,而不是标签。这为预测提供了额外的不确定性,评估预测概率的一种通用判断方法是ROC曲线(积分面积)
你可能会遇到四种主要的分类任务类型,它们分别是:
二分类
多类别分类
多标签分类
不平衡分类
让我们来依次仔细研究每个类型。
二分类模型
二分类[3]是指具有两个类别标签的分类任务。
示例包括:
电子邮件垃圾邮件检测(是否为垃圾邮件)
流失预测(流失与否)
转化预测(购买或不购买)
通常,二分类任务涉及一个属于正常状态的类别和一个属于异常状态的类别。
例如,“ 非垃圾邮件 ”是正常状态,而“ 垃圾邮件 ”是异常状态。另一个示例是“ 未检测到癌症 ”是涉及医学检查任务的正常状态,而“ 检测到癌症 ”是异常状态。
正常状态的类分配为类别标签0,状态异常的类分配为类别标签1。
通常先预测每个样本的伯努利概率分布模型,来对二分类任务进行建模。
伯努利分布是离散的概率分布,它涵盖了事件的结果为0或1的两种情况。假如结果预测为1,对于分类来说,这意味着模型预测了数据属于1类,也可以说是异常状态。
可以用于二分类的流行算法包括:
逻辑回归(Logistic Regression)
k最近邻(k-Nearest Neighbors)
决策树(Decision Trees)
支持向量机(Support Vector Machine)
朴素贝叶斯(Naive Bayes)
有些算法是专门为二分类问题而设计的,它们本身不支持两个以上的类型分类。例如逻辑回归和支持向量机。
接下来,让我们仔细看一下数据集,通过实践和思考来训练出对二分类问题的直觉。
我们可以使用make_blobs()函数[4]生成一个合成的二分类数据集。
下面的示例代码生成一个数据集,其中包含1,000个样本,这些样本属于两个类之一&#