回答

2

這是一個太寬泛的問題。

一般而言,您可以使用任何clustering mechanism,例如,一個流行的k-means。爲了準備數據進行集羣,您需要將集合轉換爲數組X,其中每一行都是一個示例(圖像),每列都是一個特徵。

主要問題 - 你的功能應該是什麼。不知道你想要完成什麼,很難回答。如果您的圖像很小並且尺寸相同,則可以將每個像素作爲一個特徵。如果您有任何元數據並希望使用它進行排序 - 您可以將元數據中的每個標籤都作爲一項功能。

現在,如果您確實需要在圖像之間找到某些圖案,則必須應用額外的處理層,如convolutional neural network,它基本上允許您從圖像的不同部分提取特徵。你可以把它想象成一個過濾器,它會將每個圖像轉換成8x8矩陣,然後相應地可以在數組X中使用64行不同的特徵來進行聚類。

+0

我想讓每個簇都由相同對象/場景的照片組成,即我拍攝了三張我的房間照片,但是來自一些不同的位置,或者某張照片上的光線較少。所以照片不完全相同,但非常相似。 – alex

+0

在這種情況下,我建議先深入研究深度學習(convnet),然後再嘗試一種簡單的方法。我只是從每個圖像中提取像素的圖,特別是因爲它們都具有相同的大小。將照片轉換爲黑白色將幫助您降低複雜程度。然後嘗試應用scikit-learn的k-means。不同數量的集羣也可以查看影響。但最有可能的是,你將不得不應用某種方式來獲得有意義的結果。我只是建議分階段進行。 – omdv

+0

事實上,我建議看看mahotas圖書館,這可以很好地適用於你的情況。鏈接 - http://mahotas.readthedocs.io/en/latest/features.html – omdv