scikit-learn / scikit-learn/scikit-learn
add icl to mixture.GMM
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 67.3k
- Forks
- 27.4k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 58
Description
suggest adding icl = integrated completed likelihood [1], or its approximation icl-bic [2] which is an information criteria useful for determining the number of clusters. essentially it is: icl = bic + entropy of clustering
code to demonstrate:
_, probs = gmm.score_samples(X)
entropy = -sum(sum(prob_np.log(prob) for prob in probs))
icl = gmm.bic(X) + 2_entropy
[1] C. Biernacki, G. Celeux and G. Govaert, Assessing a Mixture model for Clustering with the integrated CompletedLikelihood, IEEE Transactions on Pattern analysis and Machine Intelligence 22 (2000), 719–725.
[2] G.F. McLachlan and D. Peel, Finite Mixture Models, John Wiley & Sons, Inc., 2000
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in mixture.GMM at the existing bic and score_samples entry points, then compare the requested ICL and ICL-BIC definitions with the cited references. Clarify which variant and public API are intended; the work is done when the model exposes the criterion and its result is verified against the demonstrated calculation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100