2013-08-23 31 views
1

我想根據個人興趣將人羣分組。例如。喜歡機器學習和圖形的人可能會被放置在一個組中,而對數學和經濟學感興趣的人可能被放置在不同的組中。將具有相似興趣的人聚類的算法

該算法應該能夠根據人們的興趣決定哪些人具有最匹配的興趣並創建羣集。還應該能夠輸出關於特定人員所在組中的其他人。

+5

有很多聚類算法。你有嘗試過嗎? –

回答

1

這聽起來不像是一個特別困難的聚類問題,以及任何現成的貨架聚類算法可能會工作得很好。如果你知道你想要多少個簇,那麼嘗試k-均值或k-medoid聚類。如果你不知道有多少個簇,那麼嘗試凝聚式聚類。

問題的難點在於功能。你提到'興趣'可以作爲聚類的特徵,但特徵工程和選擇總是會涉及一些試驗和錯誤。

0

沒有你的問題更多的背景,我真的不能給一個明確的答覆。大多數聚類算法都能正常工作,問題在於你的結果是多麼「好」。我引用了「好」這個詞,因爲您需要某種度量來衡量(通常是羣集間和羣內距離)。

以下是我在教授關於如何決定數據挖掘算法時給予的建議:首先嚐試最簡單的算法 - 通常這些算法被忽略,但表現相當好(監督學習的樸素貝葉斯是一個經典的例子)。

要開始您的嘗試,請嘗試使用K-means這種簡單而流行的方法,您可以在這裏找到更多信息http://en.wikipedia.org/wiki/K-means_clustering(如果您查看Software部分,還可以找到可以嘗試的實施列表)。

的標準的第二部分是能夠輸出的其他人的組中的基於目標的人。這在所有聚類算法中都是可行的,因爲您將擁有X個人的子集,您只需查找目標人員所在的子集,然後迭代該子集並將所有人打印出來即可。

0

我認爲正確的方法將是Kmeans聚類。您問題中最重要的部分是功能選擇。

嘗試,你認爲是最重要的,只是適用於如R一些統計編程語言的kmeans,檢查結果和特徵修改或選擇更合適的功能提高了它的一些功能。 如果您不確定功能選擇,點擊和試用可以爲您提供見解。

如果你能提供一些示例數據,這將有助於給你的問題的一些具體的解決辦法。