1
$\begingroup$

I know that for supervised classification one can use a confusion matrix to present the results. Is there an equivalent for this for clustering? And what's the best way to present clustering-unsupervised classification-results (k-means results for example)?

By presenting the clustering results I don't necessarily mean plots of scatter points but instead any representation: tables, schema, etc. that allows us to draw conclusions about the clustering performance.

To be more specific, I have to cluster electrical appliances. As a simple example, let's suppose I have a dataset of feature vectors $\mathbf{v}_i, i=1,\dots,N$ each extracted from a measurement (current signal) of a specific appliance. For example, we can imagine having appliances A, B and C, we measure 5 times each appliance and extract a feature vector from each measurement. This gives us a total of $N=15$ feature vectors.

Now, as a supervised classification problem, we can define the different appliance types (A, B and C) as classes, apply a supervised classification algo. and plot the confusion matrix or use any other metric to evaluate the classification accuracy. What I want is to apply a clustering algo. and present the results in the best way that will allow me to draw conclusions on the effectiveness of my clustering (maybe appliance A and B will be clustered together and I want to be able to say why is this right or wrong).

$\endgroup$
10
  • 2
    $\begingroup$ The question, as currently, is unclear/broad. Clustering results are simply a vector of cluster memberships (labels). What, beyond that, do you want to "present"? Start with data - what are they - continuous, categorical? Do you want a plot or some schema? What information do you want to relate by it? $\endgroup$
    – ttnphns
    Jan 17 '17 at 20:49
  • $\begingroup$ Clearly, a dendrogram. Forget those useless WCSS and Gap statistics. $\endgroup$ Jan 18 '17 at 0:30
  • 1
    $\begingroup$ why is that @Anony-Mousse? $\endgroup$ Jan 18 '17 at 12:56
  • $\begingroup$ It would help if you could provide a simple example, or 2, of a clustering result you would like advice on presenting. $\endgroup$ Jan 18 '17 at 14:30
  • 1
    $\begingroup$ Can you post the data? What do you mean by "present the results"? Usually presentation is about communicating a result to someone else so that they understand what you discovered. It sounds like you are trying to assess the quality of your clustering to determine if you can move forward or need to start over. $\endgroup$ Jan 18 '17 at 17:33
3
$\begingroup$

If you need metrics for tightness of clustering, you can present Within-Group-Sum-of-Squares (WGSS) value for clusters. It would be better if you have any baseline to compare these number with.

If you want to go for a visual representation, I would recommend using dimensionality reduction using PCA and then visualising the clusters in the first two or three principal component space.

$\endgroup$
3
  • $\begingroup$ What do you mean by a baseline? I am searching more for an equivalent of a confusion matrix for clustering supposing I already have the formed clusters. $\endgroup$ Jan 17 '17 at 9:31
  • $\begingroup$ Baseline would be say, if you have some clustering available with you from business team. You can calculate WGSS post clustering also. The equivalent of confusion matrix would be say, if you consider each cluster as a "class" and now you want to see how many of your examples fall tightly into one of the classes or not. $\endgroup$ Jan 17 '17 at 9:43
  • $\begingroup$ To do that, if you calculate each point's distance from its cluster's centre, bin these distances, and show the count of points in each bin for each cluster, it would give you an idea of how many points are clustered with different levels of confidence. The count can also be transformed to % of cluster-size, so that different clusters can be compared with each other. $\endgroup$ Jan 17 '17 at 9:44
3
$\begingroup$

My biggest question is: who is your audience?

If your audience is non-statistical end users, you're probably going to want to show that your clustering has practical meaning. They will measure "performance" in terms of "it found something I can accept and that I can use".

For example, you might be trying to cluster doctors based on billing records, in order to separate them into specialties. You could possibly pick some percentage of the doctors in each cluster and research them on the web -- manual and intensive, but you can be as rigorous as possible about it -- to see if and how well the clusters reflect specialties. Of course, this is subjective to some degree: you could explain almost any odd mixture of doctors via some clever (and obscure) linkage and say "yup, the clustering has detected a specialty that everyone else has missed!".

If your audience is statistical, you might simply want to show that your clustering is not too fuzzy: inter- versus intra-cluster variance and all of that, as in Karel Macek's good answer. I also like to resample and run clustering multiple times, to see if there is some stability: do the same samples tend to end up in clusters with each other?

$\endgroup$
1
  • $\begingroup$ This gives me a good insight on how answering this question might help me decide on the way I would like to present the results. I guess I want to do both. My audience is actually me :-) I want to know if my clustering has a practical meaning or not and it also helps to get some metrics. $\endgroup$ Jan 18 '17 at 15:07
2
$\begingroup$

Let $x_i\in\mathbb{R}^n, i=1,\dots, m$ are our data records with components $x_{i,j}, j=1,\dots,n$. Let us have $k$ clusters with means $\mu_l,l=1,\dots,k$. Let $X_l$ be a cluster corresponding to center $\mu_l$, i.e. all records corresponding to that center.

There are a couple of things that you can show as a result of clustering in a tabular way. The table will have $k$ rows, one per cluster and we can consider the following columns.

  • Centers $\mu_l$ - this is most likely the best human readable thing.
  • Ranges per component $(\min_{x_i\in X_l} x_{i,j},\max_{x_i\in X_l} x_{i,j})$ where $j$ is indes of the component, for all $j=1,\dots,n$ - in a given cluster, what are the max and min values of particular components. This is also quite readable.
  • Number of records in the cluster, i.e. $|X_l|$. You can use also relative number $\frac{|X_l|}{\sum_{l'=1}^k |X_{l'}|}$ which may be more human readable.
  • Characteristics of distances center-record $d_i=||x_i-\mu_l||$ in the cluster $X_l$. You can take mean, median, maximum, minumum, quantiles of the sample $d_i)_{x_i\in X_l}$. This information is interesting only if your metric for clustering can be understood easily. Note that you can even plot histograms of the distances in clusters.
  • Same for each record-to-record combinations, i.e. $\delta_{i,i'}=||x_i-x_{i'}||$.
  • Distance to the nearest next center $\min_{l'\neq l} ||\mu_l-\mu_{l'}||$. This will tell you if the cluster is individualistic or next to others.
$\endgroup$
2
  • $\begingroup$ what do you mean by variable and records? $\endgroup$ Jan 17 '17 at 9:43
  • $\begingroup$ It's more clear now :-) $\endgroup$ Jan 17 '17 at 17:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.