【问题标题】:Any reference for good Datamining tools in Java?Java中好的数据挖掘工具有什么参考吗?
【发布时间】:2011-07-23 16:44:47
【问题描述】:

我们正在为公司做一个实习项目。该项目本身由数据挖掘组成。假设我们必须工作的数据库结构很大(以千兆字节为单位)。

遗憾的是,数据库本身的结构非常糟糕,值不一致,最重要的是没有主键或外键。因此,在我们用于提取和显示不一致数据的简单 Servlet 模块中,查询需要永远执行并显示在 servlet 上。

作为 n00b 程序员,我们不知道 DB 中的 Join 和此类事情。我们也使用 MySQL 作为我们的数据库服务器。该数据库由来自电信塔的实时数据组成。

为了发现表值中的样本不一致,我们使用了多个查询的组合,一个查询的输出作为另一个查询的输入,例如:

"SELECT distinct(tow_id) FROM 'tower_data' WHERE TIME_STAMP LIKE ? ";

//查询tower-id。

"SELECT time_stamp FROM tower_data WHERE 'TIME_STAMP' LIKE ? AND 'PARAM_CODE' = ? AND 'TOW_ID'=? GROUP BY time_stamp HAVING count( * ) >1";

//查询重复数据的时间戳。

等等。

数据库中还有大约 10 个表。我们需要组合 2-3 个表来获取自定义查询的值。

在找到多个因素的所有不一致值后,我们必须在下一阶段进行数据清洗、去噪、数据预测等任务。

所以我们认为我们可以应用一些 Java 数据挖掘工具,这些工具反过来会应用一些算法来加速数据检索。

请指导我们使用一些好的数据挖掘工具。任何有关优化/重写查询的指导也将受到高度赞赏。

【问题讨论】:

  • 如果表没有键或由于某种原因不允许它,则没有什么可优化的。
  • @BaluC 什么都没有?没有我们可以使用的算法、连接或查询技术?

标签: java database data-mining


【解决方案1】:

我不是 100% 确定它会对您的情况有所帮助,但请查看 google-refine...

【讨论】:

    【解决方案2】:

    由于您似乎有很多结构不良的数据,我认为数据挖掘不会有帮助。 您可以考虑使用Apache Hadoop 来检查所有这些数据并发现不一致之处。您可以使用Amazon EC2 以一种简单且相对便宜的方式运行 Hadoop。您还可以使用 Hadoop 将数据库移植到更好的架构,前提是您可以构建一个。

    编辑:我猜你也可以在 MySQL 中做一些事情。使用query explanation 查找查询中较慢的部分 - 我相信“LIKE”通常很慢,也许您可​​以将查询重新表述为更快的内容。也许您可以先按时间戳对架构进行排序,然后查看子范围。同样,您首先必须有一种有效的方法来获取数据,然后您可以尝试挖掘它。祝你好运。

    【讨论】:

    • 您确定您阅读了我们的问题以及我们是谁? EC2 很好,但 Hadoop 适合学生?严重地?我们没有这样的资源。
    • 是的!我在谈论用于集群和节点的机器数量。我认为它对于具有 3 或 4 GB RAM 的单台机器不会有太大用处。
    • @Anurag - Hadoop 是开源的。如果你有一台linux机器,你可以安装hadoop。然而,Hadoop 确实会随着机器的数量而扩展。但是带有 Hadoop 的 Amazon EC2 是针对这种情况的 - 基本上你需要为计算时间付费 - 通常在数十个虚拟机上运行计算比购买服务器便宜得多。
    • 报名费是多少?基于时间的计算对吗?我还听说他们提供了一段时间的免费演示。
    • @Anurag - 对不起。我看到他们只在美国和欧盟支持这一点。无论如何,这是价格:aws.amazon.com/elasticmapreduce/pricing 另外,我建议如果您遇到具体问题,请将它们作为单独的 SO 问题发布。
    猜你喜欢
    • 2010-11-12
    • 2010-11-18
    • 2011-05-13
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多