2013-08-23 29 views
1

我想根据个人兴趣将人群分组。例如。喜欢机器学习和图形的人可能会被放置在一个组中,而对数学和经济学感兴趣的人可能被放置在不同的组中。将具有相似兴趣的人聚类的算法

该算法应该能够根据人们的兴趣决定哪些人具有最匹配的兴趣并创建群集。还应该能够输出关于特定人员所在组中的其他人。

+5

有很多聚类算法。你有尝试过吗? –

回答

1

这听起来不像是一个特别困难的聚类问题,以及任何现成的货架聚类算法可能会工作得很好。如果你知道你想要多少个簇,那么尝试k-均值或k-medoid聚类。如果你不知道有多少个簇,那么尝试凝聚式聚类。

问题的难点在于功能。你提到'兴趣'可以作为聚类的特征,但特征工程和选择总是会涉及一些试验和错误。

0

没有你的问题更多的背景,我真的不能给一个明确的答复。大多数聚类算法都能正常工作,问题在于你的结果是多么“好”。我引用了“好”这个词,因为您需要某种度量来衡量(通常是群集间和群内距离)。

以下是我在教授关于如何决定数据挖掘算法时给予的建议:首先尝试最简单的算法 - 通常这些算法被忽略,但表现相当好(监督学习的朴素贝叶斯是一个经典的例子)。

要开始您的尝试,请尝试使用K-means这种简单而流行的方法,您可以在这里找到更多信息http://en.wikipedia.org/wiki/K-means_clustering(如果您查看Software部分,还可以找到可以尝试的实施列表)。

的标准的第二部分是能够输出的其他人的组中的基于目标的人。这在所有聚类算法中都是可行的,因为您将拥有X个人的子集,您只需查找目标人员所在的子集,然后迭代该子集并将所有人打印出来即可。

0

我认为正确的方法将是Kmeans聚类。您问题中最重要的部分是功能选择。

尝试,你认为是最重要的,只是适用于如R一些统计编程语言的kmeans,检查结果和特征修改或选择更合适的功能提高了它的一些功能。 如果您不确定功能选择,点击和试用可以为您提供见解。

如果你能提供一些示例数据,这将有助于给你的问题的一些具体的解决办法。