What clustering algorithm can be used with a distance matrix and without feaures? I have a dataset of binary files. I can't do feature extraction on them. I just computed the distance between every pair of file in the dataset with a distance metric (NCD = Normalized Compression Distance). So I have a distance matrix.  
My goal is to cluster these files. What is the best way to do that?
 A: Many, many algorithms are based on distances only:


*

*hierarchical clustering, with most linkages (single-link etc.)

*DBSCAN

*OPTICS

*PAM (Partitioning around Medoids, aka k-medoids)

*Affinity propagation


Of course there are also a number of methods that need coordinates. In particular


*

*Centroid-based methods such as k-means need coordinates to compute the centroid

*Grid-based methods such as DENCLUE need coordinates to compute a grid

A: so if you are able to do pair-wise distance calculation on your data, then you can certainly cluster your data with, for instance, k-means, which is based entirely on pair-wide distance calculation (though between each data point and a group of composite data point (aka centroids)
if you are not familiar with k-means, it works like so:


*

*choose N, an integer value that represents the number of centroids,
cluster centers (some refinements to the basic algorithm include a
step to calculate the optimum number of centroids, eg, k-means plus)

*select N data points at random; these are your centroids at t=0
(iteration 1)

*for each remaining data point, calculate the pairwise distance from
each of the N centroids; the centroid that give the smallest value
(the centroid the point is closest to) is the centroid that data
point is assigned to for iteration 1

*now your data is partitioned into N groups; for each group of data
points, calculate a single mean data point--these N points are the
new centroids at iteration 2

*repeat the step above until some stopping criteria is reached (eg,
less than one percent mean diff between the centroids in two
consecutive iterations)
