0
$\begingroup$

I have a task to cluster an almost entirely unlabelled dataset. After reading the literature on semi-supervised clustering, I have not found any algorithms that suit my very particular needs.

Basically I have one true class A for which we have all samples, i.e. if something is labelled A it's definitely A, and if an object is not labelled A then it's definitely not A. This is the extent of the true labels.

Then I have an unknown number of other classes. There are some objects that I know must belong in the same class. For instance, I may know objects 1, 2 and 4 are of the same class, and objects 3, 5 and 6 are of the same class, but they could also all actually be one big class - that is unknown.

I also know some objects that cannot be in the same class. For instance, I may know objects 1 and 3 cannot be in the same class. Combined with above information I would have identified two definitely distinct classes B and C.

I am thinking of trying to construct a distance matrix with distances 0 or near zero between objects that I'm sure are in the same class, and very large distances between objects I'm sure are not in the same class, then use Euclidean distance between object features determine all other distances. Then I plan to use hierarchical clustering on this distance matrix. (So if object 7 was close to object 3 in the feature space, then we could cluster that in as class C too).

Would anyone happen to know any other methods to incorporate such information into a clustering? Or alternatively have any critiques of what I've proposed thus far?

$\endgroup$

1 Answer 1

1
$\begingroup$

There is PU Learning(Learning from Positive and Unlabeled data), but as far as I know it is used for binary classification where you have a positive data and and unlabeled data which a mixture of the positive and negative data, so what you can do is use a PU learning algorithm to classify your true class A and the other classes (Not A ), then After filtering class A, you can apply clustering algorithms to what is left of your data(other classes)! There is this survey that you teach about PU learning PU learning and there is this python library that you can use pulearn I hope this is the setting that you are talking about !

$\endgroup$
1
  • $\begingroup$ Awesome, thank you for your reply! I did come across PU Learning in the literature but also found that it only ever seemed to apply to binary classification. Since my data is instead Positive and Negative (where negative is many different classes) rather than Positive and Unlabelled, I can already just remove class A and cluster on the other classes. I suppose I figured that I could use knowledge of class A labels to evaluate how good the clustering is, and then use that knowledge for a final relabelling after that. So I don't think PU Learning is quite what I was looking for, but is close! $\endgroup$ Dec 14, 2021 at 12:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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