具有几乎相同特征但输出不同的训练示例会导致机器学习分类算法表现不佳吗?

数据挖掘 机器学习 分类
2022-02-23 03:15:12

我们通常会过滤掉相关性较低或对目标变量没有显着影响的特征(列)。使用高维数据集(比方说,超过数千个特征)训练的算法将如何执行包含具有非常高相关性但具有不同目标变量的行?它不会让 ML 算法在分类任务中感到困惑吗?

让我举一个简单的例子来解释我的意思。假设给定汽车的价格,任务是将其分类为“廉价汽车”、“经济型汽车”、“豪华汽车”和“精英汽车”。进一步假设,一般预计两行之间的距离大于 1000。例如,如果一行描述价格为 1000 的汽车,那么我们分类中下一个更高级别的汽车预计至少为 2000。如果有一些数据集中的异常情况,例如价格为 1000 的汽车被归类为“便宜”,而价格为 1050 的汽车被归类为“精英”。这是大错特错。我们消除了不相关的特征。难道不应该有一些东西可以消除令人困惑的训练示例吗?

2个回答

答案是肯定的,数据集中具有不同目标类的高度相似的实例会导致模型表现不佳。

其原因是所有分类机器学习算法如何工作的核心。分类器的目标是找到一个可以将两个类分开的函数。因此,如果这两个类别非常混合,则产生分类错误的可能性会增加,因此您将失去分类结果的精度。

解决此问题的一种方法是向数据集添加更多特征。您应该尝试找到可以使这两个类别的分布保持距离的特征例如,如果对猫和狗进行分类,使用诸如腿数、眼睛数等特征就不是一个好主意。这将导致类无法区分。尝试添加诸如体重、哭泣频率等特征。这通常很难做到,因为收集额外数据的成本很高。您还可以尝试将数据转换到新的特征空间将您的要素映射到不同空间的转换可能会导致它们的分布相互拉开距离。

您描述的是两个类边界处的行为。在某些情况下,具有相似特征的两个数据点可能具有不同的类别标签。从一个类标签到另一个类标签的变化必须发生在特征的某个地方,如果它与类标签有任何关系的话。例如:在某个时候,汽车将不再是“预算”汽车,而是开始成为“豪华”汽车。根据数据集的构建方式,即同一个人在不同时间点标记,或者由不同人标记等,如果域在边界附近有任何数据点,则可以预期不同的特征间隔类在一定程度上重叠。

健壮的模型通常可以处理这些边界条件,并且应该是“容错的”,这样它们就不会因为这些情况而出现不稳定或意外的行为。例如,在 SVM 中,正则化允许产生一些分类错误,因此可以在两个类之间绘制更稳健的边界。