没有 ILP 的关系数据挖掘

数据挖掘 数据挖掘 分类 关系数据库
2021-10-13 10:02:48

我有一个来自关系数据库的庞大数据集,我需要为其创建分类模型。通常对于这种情况我会使用归纳逻辑编程(ILP),但由于特殊情况我不能这样做。

解决这个问题的另一种方法是在我有外来关系时尝试聚合值。但是,对于某些名义属性,我有数千个重要且不同的行(例如:与多个不同药物处方有关的患者)。因此,如果不为该名义属性的每个不同行创建一个新属性,我就无法做到这一点,而且如果我这样做,大多数新列将具有 NULL 值。

是否有任何非 ILP 算法允许我对关系数据库进行数据挖掘,而无需求助于诸如旋转之类的技术,这会创建数千个新列?

1个回答

首先,一些注意事项

我不确定为什么您不能使用您喜欢的编程(子)范式*、归纳逻辑编程 (ILP)或您要分类的内容。提供更多细节可能会导致更好的答案;特别是因为根据与之相关的编程范式来选择分类算法有点不寻常。如果您在现实世界中的示例是机密的,那么只需编造一个虚构但类似的示例。

没有 ILP 的大数据分类

话虽如此,在排除 ILP 之后,我们的考虑集中还有 4 个其他逻辑编程范式:

  1. 诱拐
  2. 答案集
  3. 约束
  4. 功能性

除了逻辑编程之外的几十种范式和子范式。

例如,在功能逻辑编程中,存在称为归纳功能逻辑编程的 ILP 扩展,它基于反转缩小(即缩小机制的反转)。这种方法克服了 ILP 的几个限制,并且(至少根据一些学者的说法)同样适用于表示方面的应用,并且具有允许以更自然的方式表达问题的好处。

如果不了解更多关于您的数据库的细节以及您在使用 ILP 时面临的障碍,我不知道这是否解决了您的问题或遇到了同样的问题。因此,我也会提出一种完全不同的方法。

ILP 与数据挖掘的“经典”或“命题”方法形成对比这些方法包括机器学习的精髓,如决策树、神经网络、回归、装袋和其他统计方法。与其因为数据量大而放弃这些方法,不如加入许多数据科学家、大数据工程师和统计学家的行列,他们利用高性能计算 (HPC) 在海量数据集上使用这些方法(有还可以选择使用抽样和其他统计技术来减少分析关系数据库中的大数据所需的计算资源和时间)。

HPC 包括利用多个 CPU 内核、通过弹性使用具有高内存和大量快速 CPU 内核的服务器来扩展分析、使用高性能数据仓库设备、使用集群或其他形式的并行计算等。我不确定您正在使用哪种语言或统计套件来分析您的数据,但作为一个示例,此CRAN 任务视图列出了许多用于 R 语言的 HPC 资源,这将允许您扩展命题算法。