【发布时间】:2011-11-16 17:22:34
【问题描述】:
我已经开始学习数据挖掘,并希望用 C++/Java 创建一个小项目,让我能够利用数据库,比如来自 twitter,然后发布一组特定的结果(例如,提要上的所有新闻项目)。我想知道该怎么做?我应该从哪里开始?
【问题讨论】:
标签: data-mining
我已经开始学习数据挖掘,并希望用 C++/Java 创建一个小项目,让我能够利用数据库,比如来自 twitter,然后发布一组特定的结果(例如,提要上的所有新闻项目)。我想知道该怎么做?我应该从哪里开始?
【问题讨论】:
标签: data-mining
我想建议您使用 python 或 R 进行数据挖掘过程。使用 java 或 c 工作,从某种意义上说你需要做很多编码有点困难
【讨论】:
对你来说很好的参考是
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 网站。
这不是一个简单的话题,但是,它很有趣。
【讨论】:
如果您只是想开始学习数据挖掘,有两本书我特别喜欢:
模式识别和机器学习。克里斯托弗·M·毕晓普。斯普林格。
还有这个是免费的:
【讨论】:
数据挖掘是涉及许多不同技术的广泛领域;分类、聚类、关联和模式挖掘、异常值检测等。
你应该首先决定你想做什么,然后决定你需要哪种算法。
如果您不熟悉数据挖掘,我建议您阅读一些书籍,例如 Tan、Steinbach 和 Kumar 的 Introduction to Data Mining。
【讨论】:
这是一个非常广泛的问题,因此很难回答。以下是一些需要考虑的事项:
您要从哪里获取数据?您提到了 twitter,但您仍然需要以某种方式收集数据。那里可能有用于收听 twitter 流的库,或者如果有人出售数据,您可能会购买数据。
您要将数据存储在哪里?根据您将拥有多少以及您打算用它做什么,传统的关系数据库可能是也可能不是最合适的。开箱即用支持运行 mapreduce 作业的东西可能会更好。
根据对这些问题的回答,编程语言和库的选择将更加容易。
如果您真的开始使用 Java,那么我认为 Hadoop 集群可能是您想要开始的。它支持用 Java 编写 mapreduce 作业,并可作为其他系统的有效平台,例如HBase,一个面向列的数据存储。
如果您的数据将是相当规则的(也就是说,从一条记录到另一条记录的结构变化不大),也许Hive 会更合适。使用 Hive,您可以编写类似 SQL 的查询,只需将数据文件作为输入。我从来没有用过Mahout,但我知道它的机器学习功能适合数据挖掘任务。
这些只是想到的一些想法。有很多选择,在它们之间进行选择与您要解决的特定问题和您自己的个人品味息息相关。
【讨论】: