algorithm - 没有 ILP 的关系数据挖掘

标签 algorithm relational-database classification data-mining

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

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

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

最佳答案

首先,一些注意事项

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

没有 ILP 的大数据分类

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

  1. 外展
  2. 答案集
  3. 约束
  4. 实用

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

例如,在 函数逻辑编程 中,存在称为 归纳函数逻辑编程 的 ILP 扩展,它基于反转收缩(即收缩机制的反转)。这种方法克服了 ILP 的几个限制,并且 (according to some scholars, at least) 在表示方面同样适用于应用程序,并且具有允许以更自然的方式表达问题的好处。

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

ILP is contrasted with "classical" or "propositional" approaches to data mining .这些方法包括机器学习的基本内容,如决策树、神经网络、回归、装袋和其他统计方法。与其因为数据量大而放弃这些方法,不如加入许多数据科学家、大数据工程师和统计学家的行列,他们利用高性能计算 (HPC) 将这些方法应用于海量数据集(有您还可以选择使用抽样和其他统计技术来减少分析关系数据库中的大数据所需的计算资源和时间)。

HPC 包括利用多个 CPU 内核、通过弹性使用具有高内存和大量快速 CPU 内核的服务器来扩展分析、使用高性能数据仓库设备、采用集群或其他形式的并行计算等. 我不确定你用什么语言或统计套件来分析你的数据,但作为一个例子,这个 CRAN Task View列出了 R 语言的许多 HPC 资源,可让您扩展命题算法。

关于algorithm - 没有 ILP 的关系数据挖掘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260299/

相关文章:

ruby - Ruby 中的位掩码 : Get numbers which generated the bitmask

arrays - 给定一个包含 n 个元素的排序数组,在​​线性时间内对 n/2 个元素的子集进行排序

python - 从python中的连续列表中识别连续数字组

sql - 规范化和复合表结构

matlab - matlab中的贝叶斯分类

artificial-intelligence - 3D图像数据集的特征提取

algorithm - Real World Haskell book - Logger monad 示例的渐近复杂性

mysql - 如何使用两个中间表进行连接?

php - 如何进行有效的sql查询?

python - 使用逻辑回归来预测参数值