{"id":16450947,"url":"https://github.com/lpfann/fri","last_synced_at":"2025-10-30T14:21:42.800Z","repository":{"id":17538830,"uuid":"75085912","full_name":"lpfann/fri","owner":"lpfann","description":"Python implementation of the feature relevance interval (FRI) algorithm","archived":false,"fork":false,"pushed_at":"2025-08-02T01:02:19.000Z","size":16507,"stargazers_count":8,"open_issues_count":10,"forks_count":4,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2025-08-02T02:34:15.744Z","etag":null,"topics":["bioinformatics","biomarker-discovery","data-science","feature-relevance-interval","feature-selection","machine-learning-algorithms","python","scikit-learn"],"latest_commit_sha":null,"homepage":"https://fri.lpfann.me","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/lpfann.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-29T13:51:59.000Z","updated_at":"2025-08-02T00:24:18.000Z","dependencies_parsed_at":"2023-01-11T20:26:48.580Z","dependency_job_id":null,"html_url":"https://github.com/lpfann/fri","commit_stats":null,"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/lpfann/fri","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpfann%2Ffri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpfann%2Ffri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpfann%2Ffri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpfann%2Ffri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lpfann","download_url":"https://codeload.github.com/lpfann/fri/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpfann%2Ffri/sbom","scorecard":{"id":600513,"data":{"date":"2025-08-11","repo":{"name":"github.com/lpfann/fri","commit":"58aa2b33a9fa5ffb306f5125d4ba0b8c223e3c6d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.3,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/6 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":6,"reason":"5 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: topLevel 'contents' permission set to 'read': .github/workflows/deploy_pypi.yml:8","Info: topLevel 'contents' permission set to 'read': .github/workflows/docs.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/test.yml:10","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy_pypi.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/deploy_pypi.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy_pypi.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/deploy_pypi.yml/dev?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy_pypi.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/deploy_pypi.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/deploy_pypi.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/deploy_pypi.yml/dev?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/deploy_pypi.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/deploy_pypi.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/docs.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/docs.yml/dev?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/docs.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/docs.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/lpfann/fri/test.yml/dev?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/test.yml:36","Info:   0 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during GetBranch(master): error during branchesHandler.query: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-42969"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T00:17:41.960Z","repository_id":17538830,"created_at":"2025-08-21T00:17:41.960Z","updated_at":"2025-08-21T00:17:41.960Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281819673,"owners_count":26567204,"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","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bioinformatics","biomarker-discovery","data-science","feature-relevance-interval","feature-selection","machine-learning-algorithms","python","scikit-learn"],"created_at":"2024-10-11T10:06:35.896Z","updated_at":"2025-10-30T14:21:42.788Z","avatar_url":"https://github.com/lpfann.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Feature Relevance Intervals - FRI\n\n![Feature Relevance Intervals - FRI](docs/relevancebars.png)\n\n\n![Travis (.org)](https://img.shields.io/travis/lpfann/fri)\n![Coveralls github](https://img.shields.io/coveralls/github/lpfann/fri)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1188749.svg)](https://doi.org/10.5281/zenodo.1188749)\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lpfann/fri/blob/master/doc/source/notebooks/Guide.ipynb)\n![PyPI](https://img.shields.io/pypi/v/fri)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/fri)\n![GitHub](https://img.shields.io/github/license/lpfann/fri)\n\n__FRI__ is a Python 3 package for analytical feature selection\npurposes. It allows superior feature selection in the sense that all\nimportant features are conserved. At the moment we support multiple\nlinear models for solving Classification, Regression and Ordinal\nRegression Problems. We also support LUPI paradigm where at learning\ntime, privileged information is available.\n\n# Usage\nPlease refer to the [documentation](https://lpfann.github.io/fri/) for advice.\nFor a quick start we provide a simple guide which leads through the main functions.\n\n## Installation\n`FRI` requires __Python 3.6+__. \n\nFor a __stable__ version from `PyPI` use\n```shell\n$ pip install fri\n```\nor with new versions of `pip` (\u003e=19?) you can clone the repository and run\n```shell\n$ pip install .\n```\nin the folder on the `master` or `dev` branch.\n## Documentation\nCheck out our online documentation [here](https://lpfann.github.io/fri/).\nThere you can find a quick start guide and more background information.\n\nYou can also run the guide directly online without setup [here](https://colab.research.google.com/github/lpfann/fri/blob/master/doc/source/notebooks/Guide.ipynb).\n\n\n\n\n# Development\nFor dependency management we use the newly released [poetry](https://python-poetry.org/) tool.\n\nIf you have `poetry` installed, use\n```shell\n$ poetry install\n```  \ninside the project folder to create a new `venv` and to install all dependencies.\nTo enter the newly created `venv` use \n```shell \n$ poetry env\n```\nto open a new shell inside.\nOr alternatively run commands inside the `venv` with `poetry run ...`.\n\n#### Docs\nThe [documentation](https://lpfann.github.io/fri/) is compiled using [portray](https://github.com/timothycrosley/portray/).\nIf the dependencies are installed with `poetry install` you should be able to run \n```shell\n$ poetry run portray in_browser\n```\nto compile the files into html and launch a browser to preview changes.\n\n(Be sure not to mix up `poetry` != `portray`.)\n\nThe documentation files are generated from `Python` docstrings inside the source files\n and from Markdown located in the `docs` folder.\n\n#### Releases\nTo create a new release:\n1. Create a new GitHub release with a version tag (e.g., `v8.2.0` or `8.2.0`)\n2. The version will be automatically extracted from the tag and updated in `pyproject.toml`\n3. The package will be built and published to PyPI automatically via GitHub Actions\n \n\n## References  \n\n[1] Göpfert C, Pfannschmidt L, Hammer B. Feature Relevance Bounds for Linear Classification. In: Proceedings of the ESANN. 25th European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning;\n\u003chttps://pub.uni-bielefeld.de/publication/2908201\u003e\n\n[2] Göpfert C, Pfannschmidt L, Göpfert JP, Hammer B. Interpretation of Linear Classifiers by Means of Feature Relevance Bounds. Neurocomputing.\n\u003chttps://pub.uni-bielefeld.de/publication/2915273\u003e\n\n[3] Lukas Pfannschmidt, Jonathan Jakob, Michael Biehl, Peter Tino, Barbara Hammer: Feature Relevance Bounds for Ordinal Regression. Proceedings of the ESANN. 27th European Symposium on Artificial Neural Networks, Computational Intelligence and Machine Learning; Accepted.\n\u003chttps://pub.uni-bielefeld.de/record/2933893\u003e\n\n[4] Pfannschmidt L, Göpfert C, Neumann U, Heider D, Hammer B: FRI - Feature Relevance Intervals for Interpretable and Interactive Data Exploration. Presented at the 16th IEEE International Conference on Computational Intelligence in Bioinformatics and Computational Biology, Certosa di Pontignano, Siena - Tuscany, Italy. \u003chttps://ieeexplore.ieee.org/document/8791489\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpfann%2Ffri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flpfann%2Ffri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpfann%2Ffri/lists"}