我已经开始学习数据挖掘,并希望用C ++ / Java创建一个小项目,允许我利用数据库,例如来自twitter,然后发布一组特定的结果(例如,Feed上的所有新闻项目) )。我想知道如何去做?我应该从哪里开始?
答案 0 :(得分:4)
这是一个非常广泛的问题,所以很难回答。以下是一些需要考虑的事项:
您要在哪里获取数据?你提到了twitter,但你仍然需要以某种方式收集数据。可能有些图书馆用于收听推特流,或者如果有人出售,你可能会购买这些数据。
您要在哪里存储数据?根据您将拥有多少以及您打算如何处理它,传统的关系数据库可能是最合适的,也可能不是。使用支持开箱即用的mapreduce作业的东西可能会更好。
根据这些问题的答案,编程语言和库的选择将更容易。
如果您真的使用Java,那么我认为Hadoop群集可能就是您想要开始的。它支持在Java中编写mapreduce作业,并作为其他系统(如HBase,一个面向列的数据存储区)的有效平台。
如果您的数据相当规律(即,从一个记录到下一个记录的结构没有太大变化),那么Hive可能更适合。使用Hive,您可以编写类似SQL的查询,仅将数据文件作为输入。我从未使用Mahout,但据我所知,它的机器学习功能适用于数据挖掘任务。
这些只是想到的一些想法。那里有很多选择,他们之间的选择与你试图解决的特定问题以及你自己的个人品味有很大关系。
答案 1 :(得分:1)
如果您只是想开始学习数据挖掘,那么我特别喜欢这两本书:
模式识别和机器学习。克里斯托弗M.毕晓普。斯普林格。
这一个是免费的:
答案 2 :(得分:1)
很好的参考资料
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。
第一个链接是由Peter Norvig和谷歌研究总监Sebastian Thrun以及Stanley的创造者(自动驾驶汽车)分别讲授人工智能的好介绍。
第二个链接,你带你到Weka网站。下载该软件 - 非常直观 - 并获得该书。确保您了解所有概念:什么是数据挖掘,什么是机器学习,什么是最常见的任务,以及它们背后的基本原理。通过示例进行大量操作 - 软件包捆绑了一些数据集 - 直到您了解生成结果的内容为止。
接下来,转到真实数据集并使用它们。在处理大量数据集时,您可能会遇到Weka的几个性能问题 - 就我的经验而言,这更像是一种学习工具。因此,我建议您查看第五个链接,它将带您进入Apache Mahout网站。
这远不是一个简单的话题,但它非常有趣。
答案 3 :(得分:1)
我可以告诉你我是怎么做到的。
1)我使用twitter4j得到了数据。
2)我使用JUNG分析了数据。 您必须定义一个表示边的类和一个表示顶点的类。 这些类将包含边和顶点的属性。
3)然后,有一个简单的函数来添加边g.addedge(V1,V2,edgeFromV1ToV2)或添加顶点g.addVertex(V)。
定义边或顶点的类很容易创建。举个例子:
`public class MyEdge {
int Id;
}`
顶点也是如此。 今天我会用R来做,但是如果你不想学习一种新的编程语言,那就输入jung这是一个java库。
答案 4 :(得分:0)
数据挖掘是一个广泛的领域,有许多不同的技术;分类,聚类,关联和模式挖掘,异常检测等。
首先应该决定你想做什么,然后决定你需要哪种算法。
如果您不熟悉数据挖掘,我建议您阅读Tan,Steinbach和Kumar等数据挖掘简介等书籍。
答案 5 :(得分:0)
我建议你使用python或R进行数据挖掘过程。使用java或c工作,在某种意义上你需要做很多编码很难