A cleaner Python project structure
A maintainable project structure for machine learning, with packaging, configuration, and testing.
Separate code from everything else
Keep importable code under src/, tests in tests/ and experiments in notebooks/. A src layout prevents accidental imports from the working directory.
Package and configure it properly
Describe the project in pyproject.toml, pin dependencies and keep configuration in files or environment variables, never hard-coded in modules.
Make it reproducible
Add a lockfile, a short README with setup commands and a test run in CI. A new teammate should go from clone to passing tests in a few minutes.