【问题标题】:Starting with Data Mining从数据挖掘开始
【发布时间】:2011-11-16 17:22:34
【问题描述】:

我已经开始学习数据挖掘,并希望用 C++/Java 创建一个小项目,让我能够利用数据库,比如来自 twitter,然后发布一组特定的结果(例如,提要上的所有新闻项目)。我想知道该怎么做?我应该从哪里开始?

【问题讨论】:

    标签: data-mining


    【解决方案1】:

    我想建议您使用 python 或 R 进行数据挖掘过程。使用 java 或 c 工作,从某种意义上说你需要做很多编码有点困难

    【讨论】:

    • 它喜欢更多的评论,而不是回答
    【解决方案2】:

    我可以告诉你我是怎么做到的。

    1) 我使用twitter4j 获取数据。

    2) 我使用JUNG 分析了数据。 您必须定义一个表示边的类和一个表示顶点的类。 这些类将包含边和顶点的属性。

    3) 然后,有一个简单的函数可以添加边 g.addedge(V1,V2,edgeFromV1ToV2) 或添加顶点 g.addVertex(V)。

    定义边或顶点的类很容易创建。举个例子:

    `public class MyEdge {

    int Id;
    

    }`

    顶点也是如此。 今天我会用 R 来做,但如果你不想学习一门新的编程语言,只需导入 java 库 jung。

    【讨论】:

      【解决方案3】:

      对你来说很好的参考是

      AI course taught by people who actually know the subject,Weka website,Machine Learning datasets,Even more datasets,Framework for supporting the mining of larger datasets.

      第一个链接很好地介绍了由 Google 研究总监和 Stanley 的创造者(自动驾驶汽车)分别由 Peter Norvig 和 Sebastian Thrun 教授的 AI。

      第二个链接可以让您进入 Weka 网站。下载该软件 - 非常直观 - 并获得这本书。确保您了解所有概念:什么是数据挖掘,什么是机器学习,最常见的任务是什么,以及它们背后的基本原理是什么。大量使用示例 - 软件包捆绑了一些数据集 - 直到您了解生成结果的原因。

      接下来,转到真实数据集并与它们一起玩。在处理海量数据集时,您可能会遇到 Weka 的几个性能问题——据我的经验来看,这更像是一种学习工具。因此,我建议您查看第五个链接,它将带您进入 Apache Mahout 网站。

      这不是一个简单的话题,但是,它很有趣。

      【讨论】:

        【解决方案4】:

        如果您只是想开始学习数据挖掘,有两本书我特别喜欢:

        模式识别和机器学习。克里斯托弗·M·毕晓普。斯普林格。

        还有这个是免费的:

        http://infolab.stanford.edu/~ullman/mmds.html

        【讨论】:

          【解决方案5】:

          数据挖掘是涉及许多不同技术的广泛领域;分类、聚类、关联和模式挖掘、异常值检测等。

          你应该首先决定你想做什么,然后决定你需要哪种算法。

          如果您不熟悉数据挖掘,我建议您阅读一些书籍,例如 Tan、Steinbach 和 Kumar 的 Introduction to Data Mining。

          【讨论】:

            【解决方案6】:

            这是一个非常广泛的问题,因此很难回答。以下是一些需要考虑的事项:

            1. 您要从哪里获取数据?您提到了 twitter,但您仍然需要以某种方式收集数据。那里可能有用于收听 twitter 流的库,或者如果有人出售数据,您可能会购买数据。

            2. 您要将数据存储在哪里?根据您将拥有多少以及您打算用它做什么,传统的关系数据库可能是也可能不是最合适的。开箱即用支持运行 mapreduce 作业的东西可能会更好。

            根据对这些问题的回答,编程语言和库的选择将更加容易。

            如果您真的开始使用 Java,那么我认为 Hadoop 集群可能是您想要开始的。它支持用 Java 编写 mapreduce 作业,并可作为其他系统的有效平台,例如HBase,一个面向列的数据存储。

            如果您的数据将是相当规则的(也就是说,从一条记录到另一条记录的结构变化不大),也许Hive 会更合适。使用 Hive,您可以编写类似 SQL 的查询,只需将数据文件作为输入。我从来没有用过Mahout,但我知道它的机器学习功能适合数据挖掘任务。

            这些只是想到的一些想法。有很多选择,在它们之间进行选择与您要解决的特定问题和您自己的个人品味息息相关。

            【讨论】:

            • 但是我可以在没有 hdfs 的情况下在单台电脑上运行 hadoop 吗?
            • 是的,您可以在单个节点上运行 hadoop 以开始使用。我不确定它是否可以从本地文件系统读取,或者您是否必须使用 HDFS。自从我使用它以来已经很长时间了。社区非常有帮助,所以如果您想提出具体问题,请注册邮件列表。
            猜你喜欢
            • 1970-01-01
            • 2011-11-24
            • 2013-06-24
            • 1970-01-01
            • 2011-02-07
            • 2010-10-24
            • 1970-01-01
            • 2019-04-24
            • 2011-07-28
            相关资源
            最近更新 更多