Classifying new objects: build a classification model or simply assign to the closest cluster? Doing research on how to approach a problem I'm working on with text data. The gist of online advise I encountered was to cluster my corpus to create labels and then to build a classifier such as e.g. XGBoost based on the newly created labels from clustering.
I sensed it was frowned upon to use the cluster object to classify by determining the closest centroid. I picked up on this after a Google search for the phrase "r predict with kmeans cluster object". Many of the posts recommended flexclust package however the tone I picked up was that you should not use the clustering object to classify e.g. here.
Why is that? Why would it ever be "bad" to use a e.g. a previously built kmeans() cluster object to assign a new datapoint to a cluster by measuring the distance to the closest centroid? As opposed to using a classifier to determine the cluster?

Afterthought since posting. In the context of my current data problem I'm working with text data. It occurred to me that new data might have new tokens/words which would translate into new features and that in this case a classifier might return an error. Whereas, using a previously defined kmeans object would not throw an error, I could still calculate the distance of new data point to the nearest centroid.
In this case surely it's actually better to NOT build a classifier if I want to assign labels to new data where the labels are a previously determined set of clusters.
 A: Several reasons:


*

*The clusters will not be optimal. When you investigate a cluster, you may be seeing some "pattern", e.g., a cluster appears to be about cars. Then you are tempted to label the cluster as "cars". But there is no guarantee there are only cars in there. If you think "cars" is a good cluster found, you should define a pattern manually that captures only cars.

*Some clusters will likely turn out to be garbage. You want to drop them.

*You want classes to have meaningful labels, not 0,1,2,3,...

*Most classifiers are better at prediction than the nearest centroid classifier (which you would use to reassign new points to k-means centers). Because you can afford to learn more complex models on the final labels, while for clustering when you are still determining the labels iteratively, you need something very fast. So it usually gives better results to train a more advanced classifier once you have decided upon the labels.

*K-means assigns points to exactly one class. In real text data, documents will contain 0, 1, or multiple topics. One article may compare cars and bicycles, for example. An others may be just garbage and not belong into any class at all. K-means does not support this.
A: Because assigning a new data point to one of the 'classes' is a classification work, rather than clustering.
Let me elaborate more specifically. 


*

*If you have $n$ items and you want to form clusters in which similar (or close) items are included, you can carry out clustering analysis.

*However, if you already have $n$ items clustered (or classified), and you want to assing the $n+1$ th item to one of the clusters (or classes), it is better to perform classification. 


Clustering and classification are rather confusing concepts. Be sure to clarify the differences between them. Refer to here for the differences.
