机器学习算法的超参数优化

数据挖掘 分类 支持向量机 阶级失衡 超参数调整
2022-02-15 05:26:54

我有一个关于机器学习算法的超参数优化的问题。

我尝试拟合支持向量分类器并使用超参数调整(但它也可能是另一个分类器)。

我的班级高度不平衡(一个班级的 20%,我们称之为“红色”,另一个班级的 80%,我们称之为“黑色”)。

现在,我的超参数优化的目标是交叉验证损失。

例如,如果 20% 的观察结果是“红色”而 80% 是“黑色”,那么一个非常糟糕的分类器只会将每个案例标记为“黑色”,并平均实现 20% 的交叉验证损失。

现在我的问题是:如果我发现我的超参数优化的目标没有明显低于 20%,我可以推断它是无用的,无需进一步分析。正确的?还是有什么我不正确理解的?

这发生在我现在正在运行的所有优化中。我可以得出结论,我的特征没有提供信息。

我想我必须更改超参数优化例程的目标?(如果我的包裹允许的话)

3个回答

如果你的错误率保持在 20% 左右,那么听起来你的功能并没有真正帮助。

您的数据/特征关系可能并不简单,因此您需要让您的 SVM 模型更灵活和/或训练更长时间。这当然会带来过度拟合的危险,但应该会有所改善......你需要尝试一些不同的东西。

如果您使用的是 SciKit Learn,这可能等同于使用具有高参数值的径向基函数C(为模型提供更大的灵活性),并且还尝试为参数设置更高的值gamma,这将减少每个参数的影响半径个别数据点。 查看此示例以获取更多说明。

想想抛硬币的经典例子:我们期望得到 50% 的正面和 50% 的反面。所以在这个二元预测中,任何时候你做出预测,你都有 50-50 的几率,所以一个误差超过 50% 的模型比随机猜测更糟糕!

如果你得到 20% 的错误,听起来你的模型只是在预测黑色。查看和理解这一点的一种简单方法 - 以及为什么它可能真的有意义 - 是绘制数据。

如果在您的特征空间中,所有点看起来都像一个大混合物,一片云,其中大部分点都是黑色的,那么即使是人类也可能只会预测黑色:

在此处输入图像描述

所以有两个选择:

  1. 允许模型更高的灵活性(如上所述),这将让它(过度)拟合一条线,从黑色中干净地切掉稀疏的红点
  2. 获取新特征,或预处理您的特征,使绘图最终看起来更像下图,这将允许更简单的模型使用例如直线对红色和黑色进行分类。

在此处输入图像描述

你是对的,必须改变的是目标。您目前正在使用准确度来衡量分类器的好坏。当您遇到类不平衡时,准确性不是一个很好的衡量标准。出于这个原因,必须使用其他目标。AUC 是更好的度量,对数损失也是如此,尽管不是那么可解释。然而,AUC 和 log-loss 都需要你输出概率的方法,而不仅仅是类的预测。因此,您的 SVM 实现需要具有预测概率方法。

测量 ROC 曲线的 AUC 提供了一个很好的测量方法,因为它允许您评估模型正确分类输入的概率与其错误分类的概率,而不是简单地评估训练数据中正确分类的项目数量.

在寻找一个好的模型时,有一些工具可以帮助解决这个问题,包括在此处找到的 imblearn 库中的一个,它允许您随机地对主要类进行欠采样,因此差异不会那么高(即 80%)。