# 类平衡

在二分类问题中，可能会为两个类中的一个收集更多的数据。类之间的这种不均衡平衡导致模型对多数类的了解多于少数类。您可以使用类平衡来改进模型。

## 什么是类平衡

在用于二分类的数据集中，有两个类。类平衡是这些类的相对频率。

如果你掷一枚完全随机的硬币足够多次，你会得到一组完全平衡的两个类（正面和反面）。在完全平衡的情况下，平均类值为 0.5（其中一个类是 1，另一个类为 0）。

两个完全平衡的类

两个完全平衡的类

两个完全平衡的类 ![带有两个平衡类的条形图。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/class-balancing-1.png)

在许多情况下，类平衡将不相等。这可能会导致模型学习更多关于多数类而非少数类的知识。

失衡类示例

失衡类示例

失衡类示例 ![具有失衡类的条形图。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/AutomatedMachineLearning/class-balancing-2.png)

## 比例偏差

通过猜测失衡数据中的多数类，模型可以非常准确。例如，如果 95% 的网站访问者没有购买，那么模型可以通过表示没有人会购买来达到 95% 的准确率。模型学习的是多数类，但了解少数类往往更重要。例如，为什么网站的其他 5% 的访问者会进行购买？

## 类平衡的影响

通过对数据执行类平衡，您可能会得到一个更加注重特征的模型，并且了解了更多关于少数类的信息。对模型的潜在影响包括：

* F1 分数更高，因为少数群体的权重增加了。

* 总体准确度得分略低，因为它不太依赖比例偏差。

* 这是一个信息量更大的模型，因为它更多地依赖于特征以及如何区分不同的类。在类平衡模型中，SHAP 值可能更具信息性。

注意，在小数据集中，类平衡可能会导致特征数据丢失。此外，通过改变数据集中的比例，可能会丢失一些信息，这可能会使模型预测产生偏差。

## 如何进行类平衡

要对数据进行分类平衡，您首先需要找出特定业务案例的理想平衡。可能需要 80/20 到 50/50 的任何位置。平衡只需满足您的需要，因为过度调整类平衡可能会导致模型过度拟合。然后用手动保持来测试模型。

### 过采样

当您的少数群体类没有足够的数据时，往往需要进行过采样。

在过采样的情况下，添加数据记录以表示少数类。具体而言，就是提取多个少数类样本，并将其添加到原始数据集中。

其结果是，数据集中的多数类和少数类更加均衡。

对少数类别（蓝色）进行过采样，以获得与多数类（绿色）相等的平衡

对少数类别（蓝色）进行过采样，以获得与多数类（绿色）相等的平衡

对少数类别（蓝色）进行过采样，以获得与多数类（绿色）相等的平衡 ![欠采样图示。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/machine-learning_oversampling.png)

### 欠采样

当数据过多时，尤其是多数类数据过多时，可使用欠采样。

在欠采样的情况下，对多数类进行随机采样，使其与少数类达到更好的平衡。该图说明了如何从原始数据集中的多数类获取样本，以获得具有平衡类的数据集。

对多数类（蓝色）进行欠采样，以获得与少数类（绿色）相等的平衡

对多数类（蓝色）进行欠采样，以获得与少数类（绿色）相等的平衡

对多数类（蓝色）进行欠采样，以获得与少数类（绿色）相等的平衡 ![欠采样图示。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/machine-learning_undersampling.png)

## Qlik Predict 中自动类平衡

本帮助主题主要概述了如何在需要时手动执行类平衡。如果使用智能模型优化（在新的 ML 实验中默认已激活）训练模型，Qlik Predict 会在训练过程中自动执行类平衡。

关于失衡检测和所用具体处理方法的更多信息，请参阅[类别平衡](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/intelligent-model-optimization.htm#ClassBal) 。