2011-09-14 89 views
4

我已经开始学习数据挖掘,并希望在C++/Java中创建一个小型项目,使我能够利用数据库,从twitter发布数据,然后发布一组特定的结果(例如,所有新闻项目在饲料)。我想知道如何去解决它?我应该从哪里开始?从数据挖掘开始

回答

4

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

  1. 您打算何时获取数据?你提到Twitter,但你仍然需要以某种方式收集数据。可能有用于收听推特流的图书馆,或者如果有人正在销售它,你可能会购买这些数据。

  2. 你打算如何存储数据?取决于你有多少以及你打算如何处理它,传统的关系数据库可能最适合或不适合。使用支持直接运行mapreduce作业的东西可能会更好。

基础上回答这些问题,编程语言和库的选择上会更容易做。

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

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

这些只是想到一些想法。这里有很多选择,在它们之间进行选择与你试图解决的特定问题以及你自己的个人品味是一样的。

+0

但是我能在一台没有hdfs的PC上运行hadoop吗? –

+0

是的,您可以在单个节点上运行hadoop以开始使用。我不确定它是否可以从本地文件系统读取,或者您是否必须使用HDFS。自从我使用它以来已经很长时间了。该社区是非常有帮助的,所以如果你想提出具体问题,请注册邮件列表。 – jimbojw

0

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

你应该先决定你想要做什么,然后决定你需要的最佳算法。

如果您不熟悉数据挖掘,那么我建议您阅读Tan,Steinbach和Kumar撰写的“数据挖掘简介”等书籍。

1

很好的参考因为你是

AI course taught by people who actually know the subjectWeka websiteMachine Learning datasetsEven more datasetsFramework for supporting the mining of larger datasets

第一个链接是由Peter Norvig和Google研究总监Sebastian Thrun和Stanley的创作者(自主汽车)分别讲授的AI的一个很好的介绍。

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

接下来,转到真实的数据集并与他们一起玩。在处理大量数据集时,您可能会面临Weka的几个性能问题 - 根据我的经验可以看出,这更像是一种学习工具。因此,我建议你看看第五个链接,它会让你访问Apache Mahout网站。

然而,这不是一个简单的话题,而是非常有趣。

1

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

1)我使用twitter4j获得了数据。

2)我使用JUNG分析了数据。 你必须定义一个表示边的类和一个表示顶点的类。 这些类将包含边和顶点的属性。 3)然后,有一个简单的函数来添加边g.addedge(V1,V2,edgeFromV1ToV2)或添加顶点g.addVertex(V)。

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

'公共类MyEdge {

int Id; 

}`

这同样适用于顶点完成。 今天我会用R来做,但是如果你不想学习一门新的编程语言,只需要导入一个java库的jung。

0

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

+0

它喜欢更多的评论,而不是回答 – Alexan