具有一对多关系的嵌套特征

数据挖掘 机器学习 数据集 分类数据 预处理
2021-09-20 05:22:22

我有一个数据集,其中包含(除其他外)一个具有多个级别的分类变量以及与每个级别相关的更多属性。

例如,考虑根据上次维修报告预测机器故障。

  • 一台机器有许多(许多)不同的部件。
    • 每个部分都可能已损坏或未损坏。
      • 如果损坏,它可能已经过检查、修理或更换等。
        • 这些操作具有相关成本,并且零件本身具有货币价值和其他属性(例如修复它所花费的时间......)。

如果我想对一台机器的水平进行预测,我需要汇总所有这些信息。我可以对所有部件进行一次热编码,以指示它们是否已损坏。但这仍然给我留下了较低级别的其他属性,例如价格和执行的操作。通过考虑所有的组合,我可能会进一步将它们扩展为单独的列,part_X-repaired-..-price, part_X-replaced-..-price, ... part_Z-replaced-..-price但这似乎失控了。

有没有更好的方法来处理这种类型的数据?我在想也许是一些聚类技术,但是当我尝试设置它时,我遇到了同样的问题。

它在某种程度上是一种颠倒的层次模型结构(在层次(线性)模型中,如果我没记错的话,结果变量处于最低级别)。

2个回答

这称为“双层优化”,其中一个问题嵌入(嵌套)在另一个问题中。如果在一个或两个级别上存在多个目标,则称为“多目标双层优化”。关于这个问题有丰富的文献,包括《多级优化:算法和应用》一书。

寻找最小化目标的解决方案通常不需要机器学习,只需要线性规划

我可能可以通过考虑所有组合(如 part_X-repaired-..-price、part_X-replaced-..-price、... part_Z-replaced-..-price )进一步将它们扩展为单独的列,但这似乎得到了解决手。

如果您使用的方法不喜欢高基数分类变量,这就是我会采用的方法。可能会出现一些有趣的关系,例如当 B 部分被廉价版本替换时,A 部分往往需要修复。如果最终变量太多,则可以尝试使用 PCA 之类的方法来减少它们

[编辑]想到另一件事要调查:Vowpal Wabbit这是一种几乎完全针对您的问题的算法 -大量稀疏变量。他们声称它可以处理 10 亿个。