我是这个hadoop平台的新手。
我已经完成了k-means implementation
here
。但在这里我们grouping points
。我需要分组不同的文件。因此,用户必须能够看到file falls in which group
。
有什么想法。我搜索了很多但却找不到方法。我应该在该代码中做出哪些更改。
**UPDATE2**
我想输入100个文件。
哪一个更好 - 输入directory
或输入file1,file2(single
)中的所有100个文件。
我们怎样才能handle
这个
答案 0 :(得分:1)
什么是K-means?
毫无疑问,K-means是最简单的聚类算法。
首先,k-means是聚类而不是分类。
给你一个人的名字,你不知道这是一个男人或女人,但你的朋友是一个男人有同一个名字,所以你认为他是一个男人,这是一个集群(Acutually,它是一个女人,也许,我们不确定,我们只是提供最可能的答案)。 给你一个男人,你确定他在你附近,所以你可以说他是你的邻居,这是分类。
将文件聚类在不同的文件中。您应该创建模型(K-means创建给定点并将其降至最近中心点的模型。)然后获得最可能的模型 答案。
例如,按文件名对它们进行聚类。一个名为apple的文件可能在fruit组中,一个名为mouse的文件可能在动物组中。(所有这些都取决于你的Points同义词库)
现在,我将向您展示如何对其进行矢量化的示例,嗯,必须是最简单的。
假设你有一个Point同义词库。也许是这样的
Bill Gates : IT
iphone : IT
basketball : sports
Michael Jordan : sports
四个文件
file1: I love iphone very much
file2: I like play basketball
file3: Bill Gates is the richest man.
file4: He is the fans of Michael Jordan.
我们在文件中获得关键词(在点词库中记录)。 然后我们计算每个文件的百分比。 现在,我们得到结果
file1:100%IT,0%运动
file2:0%IT,100%运动
file3:100%IT,0%运动
file4:0%IT,100%运动
然后我们可以得到两个组,IT和体育(通常,在一个文件中,有很多单词,所以真实数据中不存在100%和0%,不介意细节)
想一想,这个例子告诉我们什么。
什么是矢量化?仔细看,你会得到轴(X是IT,y是运动)
为什么我们强调矢量化?现在你找到了一件事!你现在得到轴,所以把它换成K-means,它现在有效,不是吗?!