Here is the context of my problem: I want to classify between to classes. However, I have at disposal only non labeled data to do the training (the test set possess all labels for evaluation purposes). My approach is the following:
- I first use a clustering method to create as many clusters as needed. The method is of little importance, as I let the algorithm choose the best amount of clusters (elbow method for Kmeans, parameter selection for DBSCAN... you name it). The result is between 3-10 clusters created
- Then I use what would you could call an "expert opinion". As I have some knowledge about the data set, I assign all created clusters to one of the two initial classes, thus creating a labeled data set.
- Finally, I perform classification with the created data set as the training set. From there, I am able to get a confusion matrix to evaluate my model (As said before, the test set is different from training set).
Some could say that it is possible to remove the first step, as it would be possible to classify each sample with an expert. That is true, but way faster to classify few clusters than thousands of samples. The drawback is that some sample are labeled incorrectly.
So in what area would fall this method ? My opinion is that it could be called "self-supervised", but from what I read on wikipedia, self-supervised is limited to neural networks. Is that really it ? I think it might also fall inside a special case of semi-supervised, after all it is exaclty between supervised and unsupervised. But... meh. Not convinced.
What do you think ?