Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add remaining static clustering models #19

Open
ablaom opened this issue Aug 31, 2022 · 8 comments
Open

Add remaining static clustering models #19

ablaom opened this issue Aug 31, 2022 · 8 comments

Comments

@ablaom
Copy link
Member

ablaom commented Aug 31, 2022

https://juliastats.org/Clustering.jl/stable/

@OkonSamuel

@Yuan-Ru-Lin
Copy link
Contributor

Hi @ablaom Affinity Propagation is used in the study that I am working on, but its interface hasn't been implemented in this package yet. Is there anything I should pay attention to if I have time to implement it next week?

@ablaom
Copy link
Member Author

ablaom commented Nov 24, 2024

Many thanks for the offer of help!

My only comment is that this looks like a Static model, as it cannot generalise to new data instances (like KMeans can), correct?

Assuming that is the case, you can use DBSCAN as a template. See here for the workflow you would be supporting.

@Yuan-Ru-Lin
Copy link
Contributor

It turns out I have some time in the weekend so I have drafted a PR (#28).

As for your question, the model looks a lot like KMedoids so I used it as a template and even directly extended the existing MMI.predict so that it works with AffinityPropagation. (I only realized it's Unsupervised instead of Static after I started working on it so sorry it's the wrong topic to talk about the model!)

@ablaom
Copy link
Member Author

ablaom commented Nov 25, 2024

Mmm. If it's a truly static model (no generalisation) you can't use KMedoids without some changes:

  • model type is Static
  • fit has not training data (all the work is done by predict, which does of course need data)

@Yuan-Ru-Lin
Copy link
Contributor

Judging from the algorithm of the model, I don't think the model can generalize to new data instances. (One can determine which exemplar a datum is closest to, but that's not necessarily a reasonable classifier for out-of-sample data.) It's better to implement it as a Static model. I'll do it later.

@ablaom
Copy link
Member Author

ablaom commented Nov 28, 2024

Great. Ping me when you are ready for review. No rush.

@ablaom
Copy link
Member Author

ablaom commented Dec 10, 2024

This is now merged. For @ablaom to do:

  • Tag new release of this pkg
  • Update model registry
  • Add to list of models at MLJ docs
  • Add model descriptor at MLJ docs

cc @Yuan-Ru-Lin

@Yuan-Ru-Lin
Copy link
Contributor

Yuan-Ru-Lin commented Dec 10, 2024

I have existing PRs addressing some of the unchecked boxes

One is JuliaAI/MLJModels.jl#574, the other is JuliaAI/MLJ.jl#1147.

EDIT: add a PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants