我们通常过滤掉具有低相关性或对目标变量没有显著影响的特性(列)。使用高维数据集(例如,超过数千个特征)训练的算法如何包含具有很高相关性但有不同目标变量的行?它不会使ML算法在分类任务中混淆吗?
让我举一个简单的例子来解释我的意思。假设我们得到了一辆车的价格,任务是把它归类为“廉价车”、“经济型车”、“豪华车”和“精英车”。进一步假设,两行之间的距离一般预期大于1000。例如,如果一行描述的是价格为1000的汽车,那么在我们的分类中,下一个更高级别的汽车至少应该是2000辆。如果数据集中存在一些异常情况,比如价格1000的汽车被归类为‘便宜’,而价格为1050的汽车被归为‘精英’。那真是大错特错。我们消除了不相关的特征。难道不应该有什么东西来消除混乱的训练例子吗?
发布于 2018-10-27 01:44:34
答案是肯定的,数据集中具有不同目标类的高度相似的实例将导致模型执行不佳。
这是所有分类机器学习算法如何工作的核心。分类器的目标是找到一个能将两个类分开的函数。因此,如果这两个类非常混合,那么产生分类错误的概率就会增加,从而导致分类的精度下降。
纠正此问题的一种方法是向数据集添加更多功能。您应该尝试找到将这两个类的分布相隔很远的特性。例如,如果对猫和狗进行分类,使用诸如:腿数、眼睛数等功能将不是一个好主意。这将导致类无法区分。尝试添加一些功能,例如:体重、哭的频率等。这通常是很难做到的,因为收集额外的数据是昂贵的。您还可以尝试将数据转换为新的功能空间。将您的特性映射到不同的空间的转换会导致它们的发行版与它们自己保持距离。
发布于 2018-10-27 06:25:35
你所描述的是在两个类的边界上的行为。在一些合法的情况下,两个具有类似特性的数据点可能具有不同的类标签。从一个类标签到另一个类标签的更改必须发生在特性的某个地方,如果它与类标签有任何关系。从某种程度上说,这辆车将不再是一辆“预算”汽车,而开始成为一辆“豪华”汽车。根据数据集的构造方式,即同一人在不同的时间点标记,或者由不同的人标记,等等,如果域在边界附近有任何数据点,则可以期望不同类的特征间隔在一定程度上重叠。
鲁棒模型通常可以处理这些边界条件,并且应该是“容错的”,这样它们就不会因为这些情况而产生不稳定或意外的行为。例如,在SVMs中,正则化允许进行一些分类错误,以便在两个类之间画出更健壮的边界。
https://datascience.stackexchange.com/questions/40299
复制相似问题