{"adoption": {"forks": 662, "observed_at": "2026-08-28T04:06:23.210869+00:00", "stars": 2180}, "canonical_url": "https://ross.abutalabs.com/products/statistical-learning-method", "card": {"archived": false, "artifact_type": "learning-resource", "description": "《统计学习方法》笔记-基于Python算法实现", "domain": ["machine-learning", "education", "tutorials", "data-science"], "enriched": true, "function": ["machine-learning", "data-science", "developer-tools"], "health_score": 78, "homepage": null, "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["wzyonggege/statistical-learning-method"], "name": "wzyonggege/statistical-learning-method", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-12T06:10:49+00:00", "repo": "wzyonggege/statistical-learning-method", "stars": 2180, "tags": ["jupyter-notebooks", "statistical-learning", "chinese", "textbook-companion", "algorithms-from-scratch", "scikit-learn"], "topics": ["python", "statistical-learning"], "urls": [], "use_cases": ["learn statistical learning algorithms from scratch in python", "study the statistical learning methods textbook with code", "implement perceptron knn svm adaboost by hand", "notebooks explaining the math behind classic ml algorithms", "practice machine learning fundamentals with jupyter", "compare hand-written implementations with scikit-learn"], "what_it_is": "A collection of Jupyter notebooks implementing the algorithms from the classic Chinese textbook 'Statistical Learning Methods' (统计学习方法) in Python, covering least squares, perceptron, kNN, Naive Bayes, decision trees, logistic regression, SVM, AdaBoost, and EM. It is educational material first, with hand-written implementations and scikit-learn used only for comparison.", "when_to_avoid": ["you need a production machine learning library", "you want modern deep learning or transformer-based methods", "you need actively developed features rather than maintained educational notes"], "when_to_choose": ["you are studying Li Hang's Statistical Learning Methods and want runnable code per chapter", "you want to understand classic ML algorithms by reading from-scratch implementations", "you prefer notebook-based, math-plus-code learning material"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/statistical-learning-method", "repo": "wzyonggege/statistical-learning-method", "role": "main", "score": 76}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "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:06:23.210869+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.210869+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:44.851870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "df7d91578e883a664e19cceaf9bb9471be323216d8c4748c80ae0e5c2ed00302", "fetched_at": "2026-08-28T04:06:23.210869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wzyonggege/statistical-learning-method"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "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": 3170, "days_push": 21, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 76, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}