2014-01-21 50 views
4

我想在半監督(受限)聚類上運行一些實驗,特別是以實例級別成對約束(必須鏈接或無法鏈接約束)提供的背景知識。我想知道是否有任何實現半監督聚類的開源軟件包?我試圖看看PyBrain,mlpy,scikit和orange,並且我找不到任何受約束的聚類算法。特別是,我對約束K-Means或基於約束密度的聚類算法(如C-DBSCAN)感興趣。 Matlab,Python,Java或C++中的軟件包將是首選,但不必限於這些語言。實施半監督(約束)聚類的一些軟件包是什麼?

+0

你可能想看看ELKI。它有大量的聚類算法,但我不記得在那裏看到一個約束聚類。你有沒有任何非合成的數據集?我總覺得這是一個純粹的學術問題。 C-DBSCAN可能易於在ELKI的「GeneralizedDBSCAN」上實現。 –

+0

我會研究ELKI代碼,但第一眼就會發現我必須在'GeneralizedDBSCAN'類的基礎上構建C-DBSCAN。你是對的,我沒有任何非合成的數據集。這純粹是爲了學術興趣。 :) – user1271286

+1

即使對於學術興趣,它也應該適用於真實數據。有太多的算法已經只適用於合成高斯分佈,可能是因爲這是所有作者曾經研究過的... –

回答

4

python軟件包scikit-learn現在具有Ward分層聚類(自0.15)和凝聚聚類(自0.14)支持connectivity constraints的算法。另外,我確實有一個真實世界的應用程序,即從單元位置標識軌道,其中每個軌道只能從每個時間點包含一個位置。

2

將R包conclust實現了許多算法:

有在該封裝件4個的主要功能:ckmeans(),lcvqe(),mpckm()和CCLS()。他們將未標記的數據集和兩個必須鏈接列表以及無法鏈接的約束作爲輸入,並生成一個聚類作爲輸出。

python中還有一個COP-KMeans的實現。