{"id":28529214,"url":"https://github.com/simonprovost/scikit-longitudinal","last_synced_at":"2025-06-30T10:07:17.201Z","repository":{"id":246832380,"uuid":"619384608","full_name":"simonprovost/scikit-longitudinal","owner":"simonprovost","description":"☂️ Scikit-longitudinal (Sklong) is an open-source Python library \u0026 Scikit-Learn API compliant, tailored to longitudinal machine learning classification tasks. It is ideal for researchers, data scientists, and analysts, as it provides specialist tools for dealing with repeated-measures data challenges ","archived":false,"fork":false,"pushed_at":"2025-05-13T10:35:22.000Z","size":57723,"stargazers_count":38,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-22T02:38:32.715Z","etag":null,"topics":["classification","longitudinal","longitudinal-classification","longitudinal-data","longitudinal-studies","machine-learning","repeated-measurements","scikit-learn","supervised-learning"],"latest_commit_sha":null,"homepage":"https://scikit-longitudinal.readthedocs.io/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonprovost.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.MD","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-27T03:09:51.000Z","updated_at":"2025-06-18T12:09:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"50396b9d-1ac3-4459-9eca-6e253a1c907c","html_url":"https://github.com/simonprovost/scikit-longitudinal","commit_stats":{"total_commits":147,"total_committers":3,"mean_commits":49.0,"dds":0.1496598639455783,"last_synced_commit":"f35f09c9d81c6f17f9f05f2b0f2054b243a6f01c"},"previous_names":["simonprovost/scikit-longitudinal"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/simonprovost/scikit-longitudinal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonprovost%2Fscikit-longitudinal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonprovost%2Fscikit-longitudinal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonprovost%2Fscikit-longitudinal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonprovost%2Fscikit-longitudinal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonprovost","download_url":"https://codeload.github.com/simonprovost/scikit-longitudinal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonprovost%2Fscikit-longitudinal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262074069,"owners_count":23254523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","longitudinal","longitudinal-classification","longitudinal-data","longitudinal-studies","machine-learning","repeated-measurements","scikit-learn","supervised-learning"],"created_at":"2025-06-09T14:09:36.095Z","updated_at":"2025-06-30T10:07:17.191Z","avatar_url":"https://github.com/simonprovost.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\u003cdiv align=\"center\"\u003e\n   \u003cp align=\"center\"\u003e\n   \u003ch1 align=\"center\"\u003e\n      \u003cbr\u003e\n      \u003ca href=\"https://i.imgur.com/jCtPpTF.png\"\u003e\n         \u003cimg src=\"https://i.imgur.com/jCtPpTF.png\" alt=\"Scikit-longitudinal\" width=\"200\"\u003e\n      \u003c/a\u003e\n      \u003cbr\u003e\n      Scikit-longitudinal\n      \u003cbr\u003e\n   \u003c/h1\u003e\n   \u003ch4 align=\"center\"\u003eA specialised Python library for longitudinal data analysis built on Scikit-learn\u003c/h4\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- All badges in a row --\u003e\n\n\u003ca href=\"https://pytest.org/\"\u003e\n   \u003cimg alt=\"pytest\" src=\"https://img.shields.io/badge/pytest-passing-green?style=for-the-badge\u0026logo=pytest\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.pylint.org/\"\u003e\n   \u003cimg alt=\"pylint\" src=\"https://img.shields.io/badge/pylint-checked-blue?style=for-the-badge\u0026logo=python\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://pre-commit.com/\"\u003e\n   \u003cimg alt=\"pre-commit\" src=\"https://img.shields.io/badge/pre--commit-checked-blue?style=for-the-badge\u0026logo=python\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\n   \u003cimg alt=\"black\" src=\"https://img.shields.io/badge/black-formatted-black?style=for-the-badge\u0026logo=python\"\u003e\n\u003c/a\u003e\n\n\u003cimg src=\"https://img.shields.io/badge/Jupyter-F37626?style=for-the-badge\u0026logo=jupyter\u0026logoColor=white\" alt=\"Jupyter\"\u003e\n\u003cimg src=\"https://img.shields.io/static/v1?label=RUFF\u0026message=compliant\u0026color=9C27B0\u0026style=for-the-badge\u0026logo=RUFF\u0026logoColor=white\" alt=\"RUFF compliant\"\u003e\n\u003cimg src=\"https://img.shields.io/static/v1?label=UV\u0026message=compliant\u0026color=2196F3\u0026style=for-the-badge\u0026logo=UV\u0026logoColor=white\" alt=\"UV compliant\"\u003e\n\u003ca href=\"https://codecov.io/gh/Scikit-Longitudinal/Scikit-Longitudinal\"\u003e\n   \u003cimg alt=\"Codecov\" src=\"https://img.shields.io/badge/coverage-88%25-brightgreen.svg?style=for-the-badge\u0026logo=appveyor\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/openml-labs/gama\"\u003e\n   \u003cimg src=\"https://img.shields.io/badge/Fork-SKLEARN-green?labelColor=Purple\u0026style=for-the-badge\"\n        alt=\"Fork Sklearn\" /\u003e\n\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/static/v1?label=Python\u0026message=3.9%2B%3C3.10\u0026color=3776AB\u0026style=for-the-badge\u0026logo=python\u0026logoColor=white\" alt=\"Python 3.9+ \u003c 3.10\"\u003e\n\n\u003c/div\u003e\n\n---\n\n## \u003ca id=\"about-the-project\"\u003e\u003c/a\u003e💡 About The Project\n\n`Scikit-longitudinal` (Sklong) is a machine learning library designed to analyse\nlongitudinal data (Classification tasks focussed as of today). It offers tools and models for processing, analysing,\nand predicting longitudinal data, with a user-friendly interface that\nintegrates with the `Scikit-learn` ecosystem.\n\nFor more details, visit the [official documentation](https://scikit-longitudinal.readthedocs.io/latest//).\n\n---\n\n## \u003ca id=\"installation\"\u003e\u003c/a\u003e🛠️ Installation\n\n\u003e [!NOTE]\n\u003e Want to be using `Jupyter Notebook`, `Marimo`, `Google Colab`, or `JupyterLab`?\n\u003e Head to the `Getting Started` section of the documentation, we explain it all! 🎉\n\nTo install Scikit-longitudinal:\n\n1. ✅ Install the latest version:\n   ```bash\n   pip install Scikit-longitudinal\n   ```\n\n   To install a specific version:\n   ```bash\n   pip install Scikit-longitudinal==0.1.0\n   ```\n\n\u003e [!CAUTION]\n\u003e `Scikit-longitudinal` is currently compatible with Python versions `3.9` only. \n\u003e Ensure you have one of these versions installed before proceeding with the installation. \n\u003e \n\u003e Now, while we understand that this is a limitation, we are tied for the time being because of `Deep Forest`.\n\u003e `Deep Forest` is a dependency of `Scikit-longitudinal` that is not compatible with Python versions greater than `3.9`.\n\u003e `Deep Forest` helps us with the `Deep Forest` algorithm, to which we have made some modifications to \n\u003e welcome `Lexicographical Deep Forest`. \n\u003e \n\u003e To follow up on this discussion, please refer to [this github issue](https://github.com/LAMDA-NJU/Deep-Forest/issues/124).\n\u003e \n\u003e If you encounter any errors, feel free to explore further the `installation` section in the `Getting Started` of the documentation.\n\u003e If it still doesn't work, please open an issue on GitHub.\n\n---\n\n## \u003ca id=\"getting-started\"\u003e\u003c/a\u003e🚀 Getting Started\n\nHere's how to analyse longitudinal data with Scikit-longitudinal:\n\n``` py\nfrom scikit_longitudinal.data_preparation import LongitudinalDataset\nfrom scikit_longitudinal.estimators.ensemble.lexicographical.lexico_gradient_boosting import LexicoGradientBoostingClassifier\n\ndataset = LongitudinalDataset('./stroke.csv') # Note this is a fictional dataset. Use yours!\ndataset.load_data_target_train_test_split(\n  target_column=\"class_stroke_wave_4\",\n)\n\n# Pre-set or manually set your temporal dependencies \ndataset.setup_features_group(input_data=\"elsa\")\n\nmodel = LexicoGradientBoostingClassifier(\n  features_group=dataset.feature_groups(),\n  threshold_gain=0.00015 # Refer to the API for more hyper-parameters and their meaning\n)\n\nmodel.fit(dataset.X_train, dataset.y_train)\ny_pred = model.predict(dataset.X_test)\n\n# Classification report\nprint(classification_report(y_test, y_pred))\n```\n\n---\n\n## \u003ca id=\"citation\"\u003e\u003c/a\u003e📝 How to Cite\n\nWe are currently cooking a JOSS submission, wait a bit for it! Meanwhile, click on `Cite This Repository` on the top right corner of this page to get a BibTeX entry.\n\n---\n\n## \u003ca id=\"license\"\u003e\u003c/a\u003e🔐 License\n\nScikit-longitudinal is licensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonprovost%2Fscikit-longitudinal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonprovost%2Fscikit-longitudinal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonprovost%2Fscikit-longitudinal/lists"}