Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Production-ready K-Means clustering for Apache Spark with pluggable Bregman divergences (KL, Itakura-Saito, L1, etc). 6 algorithms, 740 tests, cross-version persistence. Drop-in replacement for MLlib with mathematically correct distance functions for probability distributions, spectral data, and count data.
| Date | Stars |
|---|---|
| 2026-07-24 | 342 |
| 2026-07-25 | 342 |
| 2026-07-28 | 342 |
| 2026-07-30 | 342 |
| 2026-08-06 | 342 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Generalized K-Means Clustering [](https://github.com/derrickburns/generalized-kmeans-clustering/actions/workflows/ci.yml) [](https://github.com/derrickburns/generalized-kmeans-clustering/actions/workflows/codeql.yml) [](https://opensource.org/licenses/Apache-2.0) [](https://www.scala-lang.org/) [](https://www.scala-lang.org/) [](https://spark.apache.org/) [](https://spark.apache.org/) > **Security**: This project follows security best practices. See [SECURITY.md](SECURITY.md) for vulnerability reporting and [dependabot.yml](.github/dependabot.yml) for automated dependency updates. [](https://central.sonatype.com/artifact/com.massivedatascience/massivedatascience-clusterer_2.13) [](https://pypi.org/project/massivedatascience-clusterer/) **DataFrame-only API** — Version 0.7.0 removes the legacy RDD API entirely. The library is now 100% DataFrame/Spark ML native with a clean, modern architecture. This project generalizes K-Means to multiple Bregman divergences and advanced variants (Bisecting, X-Means, Soft/Fuzzy, Streaming, K-Medians, K-Medoids). It provides a pure DataFrame/ML API following Spark's Estimator/Model pattern. ## Installation ### Scala / SBT ```scala // Spark 3.5.x with Scala 2.13 libraryDependencies += "com.massivedatascience" %% "massivedatascience-clusterer" % "0.7.0" // Spark 3.5.x with Scala 2.12 libraryDependencies += "com.massivedatascience" % "massivedatascience-clusterer_2.12" % "0.7.0" ``` ### Maven ```xml <dependency> <groupId>com.massivedatascience</groupId> <artifactId>massivedatascience-clusterer_2.13</artifactId> <version>0.7.0</version> </dependency> ``` ### spark-submit / spark-shell ```bash spark-submit --packages com.massivedatascience:massivedatascience-clusterer_2.13:0.7.0 your-app.jar spark-shell --packages com.massivedatascience:massivedatascience-clusterer_2.13:0.7.0 ``` ### PySpark ```bash pip install massivedatascience-clusterer ``` ### Databricks Upload the JAR as a cluster library, or use an init script: ```bash %pip install massivedatascience-clusterer ``` For Scala notebooks, add to your cluster's Maven libraries: `com.massivedatascience:massivedatascience-clusterer_2.12:0.7.0` ### Version Compatibility | Spark | Scala 2.13 | Scala 2.12 | |-------|-----------|-----------| | 4.0.x | ✅ | ❌ (dropped by Spark) | | 3.5.x | ✅ | ✅ | | 3.4.x | ✅ | ✅ | ## What's in here - Multiple divergences: Squared Euclidean, KL, Itakura–Saito, L1/Manhattan (K-Medians), Generalized-I, Logistic-loss, Spherical/Cosine - Variants: Bisecting, X-Means (BIC/AIC), Soft K-Means, Structured-Streaming K-Means, K-Medoids (PAM/CLARA) - Scale: Tested on tens of millions of points in 700+ dimensions - Tooling: Scala 2.13 (primary) / 2.12, Spark 4.0.x / 3.5.x / 3.4.x - **Spark 4.0.x**: Scala 2.13 only (Scala 2.12 support dropped in Spark 4.0) - **Spark 3.x**: Both Scala 2.13 and 2.12 supported --- ## Quick Start (DataFrame API) Recommended for all new projects. The DataFrame API follows the Spark ML Estimator/Model pattern. ```scala import org.apache.spark.ml.linalg.Vectors import com.massivedatascience.clusterer.ml.GeneralizedKMeans val df = spark.createDataFrame(Seq( Tuple1(Vectors.dense(0.0, 0.0)), Tuple1(Vectors.dense(1.0, 1.0)), Tuple1(Vectors.dense(9.0, 8
Excerpt of 29,805 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:68551dad05d71fdf, topic:similarity-search
matched fp:68551dad05d71fdf, topic:embeddings