机器学习分类领域通用知识
什么是分类问题?
- 输出变量为有限个离散型随机变量的预测问题称为分类问题
什么是多类分类?
- 多类分类是一个有两个以上类别的分类任务。每个样本只能被标记为一个类别
- 实现多类分类的方法有: OneVsRestClassifier 、OneVsOneClassifier
- 输出标签格式
1
2
3
4
5# 4个样本,分类为3个标签的一个
>>> import numpy as np
>>> y = np.array(['apple', 'pear', 'apple', 'orange'])
>>> print(y)
['apple' 'pear' 'apple' 'orange']
如何处理多类分类问题?
- 一对一: 将 N 个类两两配合,从而产生 N (N-1)/2 个分类任务,最终结果通过投票产生
- 一对其余: 将一个类的样例作为正例、所有其他类的样例作为反例来训练 N 个分类器。在测试时时,若仅有一个分类器预测为正例,则对应的类别标记作为最终的分类结果,若有多个,则考虑各个分类器的预测置信度,选择置信度最大的类别作为分类结果。它需要训练 N 个分类器,但当类别很多时,OvO 的训练时间开销通常比 OvR 更小
- 多对多: 是每次讲若干个类作为正类,若干个其他类作为反类。需要特殊的设计,比如‘纠错输出码’: 假设一个数据集一共有 K 类,我们使用 L 种两类分类器(不仅仅是 SVM),就会得到 L 个分类结果,每个结果用 + 1 和 - 1 来表示。这样,对于 K 类数据集,我们就可以学习到一个 K∗L 的矩阵。然后,来了一个测试样本,我们就用同一样的方法得到测试样本的长度为 L 的向量,拿这个向量和 K∗L 矩阵中的每一行做 Hamming distance,距离最小的即为该测试样本的分类结果
什么是多标签分类 (MultiOutputClassifier)?
- 多标签分类是一项分类任务,从 N 个可能的类别中给每个样本贴上 m 个标签,其中 0<m < N,区别于多类分类
常见的分类算法有哪些?
- 感知机 / 单层感知机 (Perceptron)、最近邻 (KNN) 分类、朴素贝叶斯法、决策树 (Decisiontree,DT)、逻辑斯谛回归模型与最大熵模型、支持向量机 (SVM)、提升方法
- [[感知机]]、k 近邻法、朴素贝叶斯法、决策树是简单的分类方法,具有模型直观、方法简单、实现容易等特点。
- 逻辑斯谛回归与最大熵模型、支持向量机、提升方法是更复杂但更有效的分类方法,往往分类准确率更高
SVM、LR、决策树的对比?
- 模型复杂度:SVM 支持核函数,可处理线性非线性问题;LR 模型简单,训练速度快,适合处理线性问题;决策树容易过过过拟合 (overfitting),需要进行剪枝。
- 损失函数:SVM 合页损失 (铰链损失)(HingeLoss);LR L2 正则化;Adaboost 指数损失 (ExponentialLoss)。
- 数据敏感度:SVM 添加容忍度对 outlier 不敏感,只关心支持向量,且需要先做归一化;LR 对远点敏感
- 数据量:数据量大就用 LR,数据量小且特征少就用 SVM 非线性核
在二类分类中,支持向量机 (SVM)、逻辑斯谛回归与最大熵模型、提升方法各自使用什么损失函数?
- 支持向量机 (SVM):合页损失 (铰链损失)(HingeLoss)
- 逻辑斯谛回归模型与最大熵模型 :逻辑斯谛损失 (LogisticLoss)
- 提升方法 :指数损失 (ExponentialLoss)
什么是分类不平衡的数据集 (class-imbalanced data set)
- 一种二元分类问题,在此类问题中,两种类别的标签在出现频率方面具有很大的差距。
- 例如,在某个疾病数据集中,0.0001 的样本具有正类别标签,0.9999 的样本具有负类别标签,这就属于分类不平衡问题;但在某个足球比赛预测器中,0.51 的样本的标签为其中一个球队赢,0.49 的样本的标签为另一个球队赢,这就不属于分类不平衡问题
什么是分类阈值 (classification threshold)
- 一种标量值条件,应用于模型预测的得分,旨在将正类别与负类别区分开,将逻辑回归结果映射到二元分类时使用
- 以某个逻辑回归模型为例,该模型用于确定指定电子邮件是垃圾邮件的概率。如果分类阈值为 0.9,那么逻辑回归值高于 0.9 的电子邮件将被归类为 “垃圾邮件”,低于 0.9 的则被归类为 “非垃圾邮件”
什么是决策边界 (decision boundary)
- 在二元分类或多类别分类问题中,模型学到的类别之间的分界线
- 例如,在以下表示某个二元分类问题的图片中,决策边界是橙色类别和蓝色类别之间的分界线: 密集层 (dense layer) 与全连接层的含义相同
什么是广义线性模型 (GLM) ?
- 广义线性模型是普通最小二乘模型 (OLS) 的扩展,包括逻辑回归都是
- 广义线性模型将随机变量分布不再是简单的线性,而是推广至指数分散族 (exponential dispersion family):比如高斯正态分布 (normal)、泊松分布、二项分布、负二项分布、伽马分布、逆高斯分布
- 例子: 一个保险产品一共卖出 12 份保单,在保单期限内一共有 6 人退保。那么采用这 12 个投保人的特征数据如收入、职业、年龄等做为预测变量对退保 / 退保率进行回归分析时,普通线性模型不再适用,因为这里退保这一事件不再服从正态分布,而是二项分布