Hot answers tagged

3

In graph clustering, we want to cluster the nodes of a given graph, such that nodes in the same cluster are highly connected (by edges) and nodes in different clusters are poorly or not connected at all. A simple (hierarchical and divisive) algorithm to perform clustering on a graph is based on first finding the minimum spanning tree of the graph (using e....


3

Yes, the silhouette method (which is implemented in sklearn as silhouette_score) is commonly used to assess the quality of clusters produced by any clustering algorithm (including $k$-means or any hierarchical clustering algorithm). Roughly, you can compute the silhouette value for different $k$, then you would pick the $k$ with the highest silhouette value.


2

If I understand correctly you want to find companies with similar patterns to yours. I would start with measuring cosine similarity between your company and others. It is really easy with Python, for example: In [21]: from sklearn.metrics.pairwise import cosine_similarity In [22]: cosine_similarity([[1,4,2,6], [1,9,5,4]]) Out[22]: array([[1. , 0....


2

I would recommend a hierarchical cluster algorithm, after normalising your numbers into proportions. Then the clustering should be able to identify similar patterns. Depending at which level you make the cut, you can decide how many clusters you want. A great resource on this topic is Kaufman, L., & Roussew, P. J. (1990). "Finding Groups in Data - An ...


1

Its not required, you can have $m=1$, actually it can be any number $\geq 1$. Now the better question is why to have it? The answer is that it adds a smoothing effect. Lets look at it in each of the limits ($\lim m \rightarrow 1$ and $\lim m \rightarrow \infty$) Towards $\infty$, it makes $u_{ij}$ equal to $\frac{1}{c}$, making each point have equal ...


1

If you look at Kaufman & Rousseeuw (1990), Finding Groups in Data, they describe an algorithm to evaluate the quality of clusters in agglomerative clustering. You run the clustering algorithm with a specific value k for the number of clusters you want, and that routine then gives you a score to reflect the cohesion of the clustering. If you then cluster ...


Only top voted, non community-wiki answers of a minimum length are eligible