在机器学习领域,经常使用监督学习算法,如随机森林分类器、支持向量机、逻辑回归(用于二分类)等来解决问题。其中,单类分类(One-Class Classification, OCC)是一种特殊的二分类问题,它在训练时只有单一类别的样本。单类分类通常使用无监督或半监督学习算法来解决,例如单类支持向量机(One-Class Support Vector Machines, 1-SVM)和支持向量数据描述(Support Vector Data Description, SVDD)。单类分类的一个流行例子是异常检测(Anomaly Detection, AD),包括异常值检测和新颖性检测。
单类分类的目标是在训练期间从单一类别的样本中学习,以区分特定类别的样本。它是解决异常检测问题最常用的方法之一,异常检测是机器学习的一个子领域,涉及识别模型以前从未见过的异常情况。单类分类也被称为一元分类或类别建模。
支持向量机(Support Vector Machines, SVMs)是用于分类和回归问题的强大统计算法之一。由于其对未见数据的泛化能力更强,SVMs通常用于分类问题。为了更直观地理解SVMs,可以考虑一个包含正例(绿色球)和负例(蓝色方块)的数据集。目标是绘制最佳拟合线,将正例与负例分开。与线性分类器不同,SVM绘制的最佳拟合线确保两个类别的极端点到最佳拟合线(或中位数)的距离几乎相等且最大。这种通过学习形成沟渠或最宽街道的想法使SVMs在测试未见数据时更加稳健。SVM已经在SK-learn中直接从libsvm实现。SVC可以导入并应用于任何分类问题。
为了确保街道最宽,需要最大化的函数是2/|w|,其中w是随机权重向量,以便最大化函数在支持向量之间的街道。最大化2/|w|类似于最小化函数1/2*(|w|^2)。为了找到函数(1/2*(|w|^2))的极值,并带有约束条件,即如果函数对任何样本进行错误分类,则会有惩罚,应用拉格朗日乘数。应用拉格朗日乘数会产生一个复杂的方程,通过对w求导得到以下关系:
w = sum(alpha * y * x)
其中w是权重向量,alpha是拉格朗日乘数,y表示+1或-1,即样本的类别,x表示来自数据的样本。
单类支持向量机是一种无监督学习技术,用于学习区分特定类别的测试样本与其他类别。1-SVM是解决包括AD在内的OCC问题最方便的方法之一。1-SVM的基本思想是最小化训练数据中单一类别样本的超球体,并认为所有超球体外的其他样本都是异常值或超出训练数据分布。下图展示了1-SVM形成的超球体,用于学习如何根据超球体对训练分布之外的数据进行分类。
计算中心为c、半径为r的超球体的数学表达式是:
min ||x - c||^2 subject to ||x - c||^2 <= r^2
上述表达式试图最小化超球体的半径。然而,上述公式对异常值非常严格,因此更灵活的公式允许在一定程度上容忍异常值:
min ||x - c||^2 + nu * sum(1(||x - c||^2 > r^2))
这里的函数phi是x样本的超球体转换。下图展示了如何通过最小化半径r、中心c来形成超球体。1-SVM可以用于两种类型的异常检测应用,即异常值检测和新颖性检测。
通过SK-learn实现1-SVM非常容易。SK-learn实现了libsvm的1-SVM。SK-learn提供了一个名为‘OneClassSVM’的类,该类内部实现了通过训练数据样本最小化超球体的数学建模。要了解最小化超球体函数背后的数学原理,请参考相关页面。
以下是一个使用1到10的随机正整数训练One-Class SVM的例子。进一步地,模型在一组随机正负整数上进行测试,模型成功地将整数分类为正类和负类或样本。
from sklearn.svm import OneClassSVM
X = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
y = [[-1],[1],[-2],[2],[-3]]
one_svm = OneClassSVM(gamma='auto', nu=0.01).fit(X)
print(one_svm.predict(y))
print(one_svm.score_samples(y))
print(one_svm.decision_function(y))
注意:One-Class SVM模型将正整数视为+1类,负整数视为-1类。训练数据集中的样本始终被视为One-Class SVM的正样本。
单类分类在异常检测(AD)中非常流行。AD是机器学习算法泛化的一个挑战领域。AD的一些例子包括:
1. 异常值检测:从训练数据中检测异常值是清洁数据的重要步骤,以确保机器学习模型在现实世界部署后的性能稳健。
2. 声学信号中的AD:AD的主要应用之一是使用机器部件产生的声学信号来检测工业机械中的异常。
3. 新颖性检测等。