Changelog¶
All notable changes to this project are documented here. The format follows Keep a Changelog, and the project uses Semantic Versioning.
Unreleased¶
[0.1.1] - 2026-11-01¶
Fixed¶
test_notebook_parity.pyasserted the regression figures with an absolute tolerance of one cent, which only held on Windows with Python 3.11-3.13. The reference values are unchanged; they are now asserted with a 6% relative tolerance, covering the 4.3% spread observed across the CI matrix. Seedocs/DECISIONS.mdD29.-
test_cli.py::test_plots_command_wiringfailed wherever the temporary directory was long enough for Rich to wrap the filename mid-word. The test now widens the console for its own duration. -
CI no longer fails on
ubuntu-latestwith Python 3.9: Ubuntu 26.04 runners have no Python 3.9 build, so that one combination is skipped. Python 3.9 is still tested on macOS and Windows.
Changed¶
- Releases are distributed through GitHub: the release workflow now runs when
a GitHub release is published and attaches the wheel and source
distribution to it. Install with
pip install "amesml @ git+https://github.com/Ahsan-muhd-444/house-price-prediction@v0.1.1". Publishing to PyPI is deferred. - Documentation no longer claims the defaults reproduce the notebook "exactly" or "to the cent" without qualification.
0.1.0 - 2026-11-01¶
First packaged release of the house-price-prediction coursework as amesml.
Added¶
amesmlPython package with a typed public API:load_ames,build_preprocessor,train_regressor,train_classifier,train,evaluate_regressor,evaluate_classifier,predict,save_modelandload_model.- Defaults that reproduce the original notebook's published results closely
(linear regression MAE $21,139.99, R² 0.868; logistic regression accuracy
94.5%, F1 93.9%). The classification figures reproduce exactly; the
regression figures reproduce to the cent on Windows with Python 3.11-3.13
and to within about 5% elsewhere, because they come from an iterative
solver on an ill-conditioned matrix. See
docs/DECISIONS.mdD1. - Ridge, lasso and histogram gradient-boosting models for both regression and above/below-median classification, with cross-validated default regularisation.
- Optional engineered features: total area, house and remodel age, total bathrooms and porch area.
TrainConfig, loadable from YAML or JSON, with validation of every option.- Dataset loading with schema validation and a checksummed, atomic download pinned to an immutable URL.
- Model bundles with
metadata.json: configuration, metrics, feature defaults, training-data fingerprint, library versions and a checksum of the model file. amesmlcommand-line interface:data download,train,evaluate(including--split testto reproduce held-out metrics),predict,plotsandserve.- FastAPI service with
/predict,/predict/class,/healthand/model/info, partial-record support and reporting of unseen categories. - Multi-stage Docker image and Docker Compose file.
- Figures drawn with matplotlib: price distribution, missing values, residuals, confusion matrix and permutation importance.
- Test suite with 99% coverage, run on Linux, macOS and Windows for Python 3.9-3.13.
- CI, release (PyPI trusted publishing), documentation, CodeQL, labeler and stale-issue workflows, plus Dependabot.
- MkDocs Material documentation: user guide, model card, benchmarks, architecture, design decisions and API reference.
- Contributing guide, Code of Conduct, security policy, governance, support page, citation metadata, and issue and pull request templates.
Changed¶
- Repository reorganised: the report moved to
docs/, the notebook's pickled models tomodels/notebook/, and the notebook is committed with its outputs stripped (the original is kept innotebooks/archive/). - The author name and the licence's copyright holder corrected to Muhammad Ahsan.