【问题标题】:Sequential Pattern - Data Mining顺序模式 - 数据挖掘
【发布时间】:2013-07-21 16:54:56
【问题描述】:

我是数据挖掘的新手,所以如果这个问题对任何人来说都是一个显而易见的问题,我深表歉意。我知道那里有很多数据挖掘算法,例如顺序模式挖掘或先验算法。我想知道我实现的以下代码是否会被视为数据挖掘,特别是对于顺序模式,如果我有一个包含大约 20,000 名学生的数据库,或者我是否必须专门使用现有的数据挖掘算法之一?

String x = "SELECT STUDENTS.ROW, STUDENTS.MAJOR, STUDENTS.NAME " +
"CASE WHEN prior_row.NAME IS NOT NULL" +
"AND EXISTS(SELECT 'x' FROM STUDENTS prior_row " +
"WHERE STUDENTS.MAJOR = prior_row.MAJOR" +
"AND STUDENTS.ROW > prior_row.ROW + 1" +
"SELECT STUDENTS.MAJOR, STUDENTS.ROW, STUDENTS.NAME WHERE" +
"MAJOR < (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'MATH' 
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'SCIENCE' THEN 1 ELSE NULL          END Flagged_Values";

 st.executeQuery(x);

  String y = "SELECT STUDENTS.ROW, STUDENTS.MAJOR, STUDENTS.NAME" +
"CASE WHEN previous.NAME IS NOT NULL" +
"AND EXISTS(SELECT 'y' FROM STUDENTS previous" +
"WHERE STUDENTS.MAJOR = previous.MAJOR" +
"AND STUDENTS.ROW > previous.ROW + 1" +
"SELECT STUDENTS.MAJOR, STUDENTS.ROW, STUDENTS.NAME WHERE" +
"MAJOR < (SELECT THE_OUTCOME FROM STUDENTINFO WHERE MAJOR ='Math' +
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'SCIENCE'" +
"AND WHERE MAJOR > (SELECT MAJOR FROM STUDENTS WHERE MAJOR = 'Engineering'
"THEN 1 ELSE NULL END Flag ";

 st.executeQuery(y);

【问题讨论】:

    标签: sql algorithm data-mining


    【解决方案1】:

    您正在做的是 SQL 选择语句。投影、选择和聚合。

    你读过Wikipedia article on data mining吗?

    实际的数据挖掘任务是对大量数据进行自动或半自动分析,以提取以前未知的有趣模式,例如数据记录组(聚类分析)、异常记录(异常检测)和依赖关系(关联规则挖掘) )。这通常涉及使用数据库技术,例如空间索引。这些模式可以被看作是输入数据的一种总结,并且可以用于进一步的分析,例如,用于机器学习和预测分析。例如,数据挖掘步骤可能会识别数据中的多个组,然后可以用于决策支持系统获得更准确的预测结果。数据收集、数据准备、结果解释和报告都不是数据挖掘步骤的一部分,但作为附加步骤属于整个 KDD 过程。

    “数据挖掘”一词经常误用用于任何类型的数据收集或选择,但人们应该将这些任务称为“数据收集”和“数据库查询”,而不是随意挑选流行语。 数据挖掘是统计、人工智能、机器学习和数据库的交集。如果这些组件丢失(除了数据库,我在您的查询中看不到它们),它应该被称为例如“数据库”、“机器学习”或“统计”。

    【讨论】:

    • 我认为不可能将静态学、人工智能和机器学习分开。事实上,我很确定任何时候你拥有人工智能或机器学习,你都必须拥有这三者。也就是说,您可以在没有 AI/ML 的情况下获得统计数据。此外,我认为我从未见过任何真正的 AI/ML 在没有某种数据库的情况下出现故障。
    • 我已经看到 AI/ML 一直在使用 R 矩阵下降,并且在实际任务中没有数据库加速。那么就不是数据挖掘了,而是纯粹的AI/ML……
    • 啊,我已经很长时间没有处理足够小的数据集了,这样做是有意义的。不管怎样,我一直很享受这次聊天。你在 Kaggle 上吗?
    • 不,我不做很多机器学习,而 Kaggle 上的一切实际上都是机器学习竞赛(因为这很容易自动评估)。无论是分类还是数值预测,都是有监督的,对数据库支持没有要求 -> 纯机器学习。
    【解决方案2】:

    一般来说,请记住,这本质上是基于意见的,数据挖掘是指获取相对不可用格式的数据并将其转换为更可用格式的过程。

    例如,如果我有一个巨大的 .txt 非结构化文本转储,然后我提取相关部分(根据相关的一些正式定义)并将其放入 .bson 存储或类似的东西中,这将是数据挖掘,不管我是如何提取的。

    但是,由于您的数据已经在 SQL 数据库中,我不会考虑这种数据挖掘。我会认为它是 SQL 开发,但同样,这在很大程度上是基于意见的。 SQL 数据库已经是一种非常有用的数据存储方式,因此访问该数据不会引入不存在的功能级别。

    tl;dr:我不会说这算作数据挖掘,但这是一个灰色地带。

    【讨论】:

    • 我不同意。以不可读的格式获取数据并使其可用称为预处理。数据挖掘是应用先进的统计和 AI/ML 方法来获取新知识。我在他的问题中没有看到高级统计数据。
    • @Anony-Mousse 就像我说的,数据挖掘仍然很新,所以像这样的基本事情仍然是见仁见智的问题。
    • 嗯,转换数据的需求比数据挖掘要古老得多,那为什么要叫数据挖掘呢?
    • @Anony-Mousse 好吧,这不仅仅是任何数据转换,对吧?它需要在挖掘发生之前不存在的数据的附加功能。我觉得参加人口普查在某种程度上是数据挖掘,但我认为说它是一个非常新的术语而不是一个新领域会更准确。需要明确的是,将 JPG 转换为 PNG 不是数据挖掘,而是将一系列风景转换为一系列树图片。至少按照我的定义。
    • 我称之为“计算机视觉”,而不是“数据挖掘”……总是选择最合适的术语。 “数据挖掘”是最合适的:数据库和规模以及 AI/ML/CV/...
    【解决方案3】:

    在数据挖掘领域,执行 SQL 查询不会被视为数据挖掘。

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 2012-12-29
      • 1970-01-01
      • 2011-02-07
      • 2018-02-02
      • 1970-01-01
      • 2019-04-24
      • 2011-07-28
      • 2011-11-28
      相关资源
      最近更新 更多