{"adoption": {"forks": 4193, "observed_at": "2026-08-28T04:11:37.638593+00:00", "stars": 24781}, "canonical_url": "https://ross.abutalabs.com/products/homemade-machine-learning", "card": {"archived": false, "artifact_type": "learning-resource", "description": "🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained", "domain": ["machine-learning", "education", "tutorials"], "enriched": true, "function": ["machine-learning", "data-visualization", "math"], "health_score": 52, "homepage": null, "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["trekhleb/homemade-machine-learning"], "name": "trekhleb/homemade-machine-learning", "platform": ["python"], "pushed_at": "2025-11-23T04:22:46+00:00", "repo": "trekhleb/homemade-machine-learning", "stars": 24781, "tags": ["from-scratch-implementations", "jupyter-notebooks", "interactive-demos", "supervised-learning", "unsupervised-learning", "neural-networks", "educational", "algorithms", "jupyter"], "topics": ["python", "jupyter", "jupyter-notebook", "machine-learning", "machinelearning", "machine-learning-algorithms", "algorithm"], "urls": [], "use_cases": ["learn how machine learning algorithms work under the hood", "understand the math behind linear regression and logistic regression", "implement k-means and neural networks from scratch", "find interactive jupyter demos of ml algorithms", "study machine learning fundamentals with code examples", "practice implementing ml algorithms without libraries"], "what_it_is": "A collection of popular machine learning algorithms implemented from scratch in Python, with the underlying mathematics explained. Each algorithm comes with interactive Jupyter Notebook demos for experimenting with training data and visualizing results in the browser.", "when_to_avoid": ["you need production-ready, optimized ML implementations", "you want a library with one-liner APIs like scikit-learn", "you need GPU-accelerated or distributed training", "you require guaranteed maintenance and up-to-date dependencies"], "when_to_choose": ["you want to deeply understand the mathematics behind ML algorithms", "you prefer learning through readable, from-scratch implementations", "you want interactive notebooks to experiment with parameters and see charts", "you are studying Andrew Ng's machine learning course and want code practice"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/homemade-machine-learning", "repo": "trekhleb/homemade-machine-learning", "role": "main", "score": 56}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:37.638593+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:56:09.642251+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f17c4eb9c810f5c6639c9f9ec2356fc0bcea236ff2668845a9e22cbe124998d", "fetched_at": "2026-08-28T04:11:37.638593+00:00", "kind": "readme", "missing": false, "url": "https://github.com/trekhleb/homemade-machine-learning"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2862, "days_push": 283, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 56, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}