recsyslearn


Namerecsyslearn JSON
Version 2.0.2 PyPI version JSON
download
home_pagehttps://github.com/giuliowaitforitdavide/recsyslearn
SummaryA library to compute fairness of recommender systems.
upload_time2024-05-22 08:26:14
maintainerNone
docs_urlNone
authorGiulio Davide Carparelli
requires_python>=3.10
licenseGNU General Public License v3
keywords recsyslearn
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ===========
Recsyslearn
===========


.. image:: https://github.com/giuliowaitforitdavide/recsyslearn/actions/workflows/tests.yml/badge.svg
        :target: https://github.com/giuliowaitforitdavide/recsyslearn/actions/workflows/tests.yml
        :alt: Test Status

.. image:: https://readthedocs.org/projects/recsyslearn/badge/?version=latest
     :target: https://recsyslearn.readthedocs.io/en/latest/?version=latest
     :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/recsyslearn.svg
        :target: https://pypi.python.org/pypi/recsyslearn
        :alt: Library Version


*recsyslearn* is a Python library designed to evaluate recommendation systems comprehensively.
It offers a set of tools to measure recommendation accuracy, coverage, novelty, and fairness.
This library is a valuable resource for data scientists and engineers who aim to enhance the performance
and fairness of their recommendation algorithms.


Key Features
------------


Dataset Utilities
^^^^^^^^^^^^^^^^^

*recsyslearn* simplifies the process of calculating item popularity and user activity, and of
segmenting (i.e., categorizing) users and items into groups. The users and items can be segmented
based on various criteria, hence providing the basis for group fairness analyses on
several dimensions.

In particular, the following type of segmentations are provided:
* item segmentation based on a popularity value, or user segmentation based on an activity value, corresponding to the percentage of user-item interactions.
* user or item segmentation based on one of their categorical features (e.g., user gender, or item genre).
* item segmentation based on the cumulative number of interactions of the items in each group. For instance, keeping the argument of the method to the default value of 80 − 20, the most popular items corresponding to the first group account for 80% of the interactions, and the items in the second group account for the remaining 20%.
* user segmentation based their grade of activity. For instance, keeping the argument of the method to the default value of 80 − 20, the most active 80% users will belong to the first group, and the least active 20% users to the second.


Accuracy Evaluation metrics
^^^^^^^^^^^^^^^^^^^^^^^^^^^

* NDCG@k: *recsyslearn* computes the Normalized Discounted Cumulative Gain (NDCG) metric to assess recommendation accuracy at a specific cutoff k. NDCG@k provides insights into the relevance of recommended items and their ranking.


Beyond Accuracy metrics
^^^^^^^^^^^^^^^^^^^^^^^

* Coverage: evaluate the coverage of your recommendation system using various metrics. These metrics measure the extent to which unique items are recommended to users and provide insights into the diversity of recommendations.
* Novelty: measure the novelty of recommendations to ensure that users receive fresh and engaging content.


*recsyslearn* helps you assess the diversity and freshness of recommended items.


Fairness metrics
^^^^^^^^^^^^^^^^

* Entropy: the measure of diversity (i.e., recommendations or accurate recommendations) over user or item groups.
* Mutual Information: measures to what extent the information on the user group provides information about the groups to which the recommendations belong.
* Kullback-Leibler: measures the KL divergence between the distribution of utility over user or item groups, computed on the list of recommendations, and a target distribution.


License
-------

Recsyslearn is released as free software under the GNU General Public License v3.

Documentation
-------------

For in-depth documentation, detailed explanations of functions, and usage examples, please visit the
`official documentation`_.

Citation
--------

If you use *recsyslearn* in your research, please cite the following paper:

.. code-block:: console
        
        @proceedings{Moscati2023MultiObjectiveHyperOpt,
        title = {Multiobjective Hyperparameter Optimization of Recommender Systems},
        author = {Moscati, Marta and Deldjoo, Yashar and Carparelli, Giulio Davide and Schedl, Markus},
        booktitle = {Proceedings of the 3rd Workshop on Perspectives on the Evaluation of Recommender Systems co-located with the 17th ACM Conference on Recommender Systems (RecSys 2023), Singapore, Singapore.},
        editor = {Said, Alan and Zangerle, Eva and Bauer, Christine},
        publisher = {CEUR-WS.org},
        url = {https://ceur-ws.org/Vol-3476/paper3.pdf},
        volume = {3476},
        year = {2023}
        }


Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
.. _`official documentation`: https://recsyslearn.readthedocs.io/en/latest/?version=latest


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/giuliowaitforitdavide/recsyslearn",
    "name": "recsyslearn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "recsyslearn",
    "author": "Giulio Davide Carparelli",
    "author_email": "giulio.davide.97@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f1/2b/08b9f0376229d9f098a2ba5793978cb6a4551ce3c86a7fbeb015952cc7d3/recsyslearn-2.0.2.tar.gz",
    "platform": null,
    "description": "===========\nRecsyslearn\n===========\n\n\n.. image:: https://github.com/giuliowaitforitdavide/recsyslearn/actions/workflows/tests.yml/badge.svg\n        :target: https://github.com/giuliowaitforitdavide/recsyslearn/actions/workflows/tests.yml\n        :alt: Test Status\n\n.. image:: https://readthedocs.org/projects/recsyslearn/badge/?version=latest\n     :target: https://recsyslearn.readthedocs.io/en/latest/?version=latest\n     :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/recsyslearn.svg\n        :target: https://pypi.python.org/pypi/recsyslearn\n        :alt: Library Version\n\n\n*recsyslearn* is a Python library designed to evaluate recommendation systems comprehensively.\nIt offers a set of tools to measure recommendation accuracy, coverage, novelty, and fairness.\nThis library is a valuable resource for data scientists and engineers who aim to enhance the performance\nand fairness of their recommendation algorithms.\n\n\nKey Features\n------------\n\n\nDataset Utilities\n^^^^^^^^^^^^^^^^^\n\n*recsyslearn* simplifies the process of calculating item popularity and user activity, and of\nsegmenting (i.e., categorizing) users and items into groups. The users and items can be segmented\nbased on various criteria, hence providing the basis for group fairness analyses on\nseveral dimensions.\n\nIn particular, the following type of segmentations are provided:\n* item segmentation based on a popularity value, or user segmentation based on an activity value, corresponding to the percentage of user-item interactions.\n* user or item segmentation based on one of their categorical features (e.g., user gender, or item genre).\n* item segmentation based on the cumulative number of interactions of the items in each group. For instance, keeping the argument of the method to the default value of 80 \u2212 20, the most popular items corresponding to the first group account for 80% of the interactions, and the items in the second group account for the remaining 20%.\n* user segmentation based their grade of activity. For instance, keeping the argument of the method to the default value of 80 \u2212 20, the most active 80% users will belong to the first group, and the least active 20% users to the second.\n\n\nAccuracy Evaluation metrics\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n* NDCG@k: *recsyslearn* computes the Normalized Discounted Cumulative Gain (NDCG) metric to assess recommendation accuracy at a specific cutoff k. NDCG@k provides insights into the relevance of recommended items and their ranking.\n\n\nBeyond Accuracy metrics\n^^^^^^^^^^^^^^^^^^^^^^^\n\n* Coverage: evaluate the coverage of your recommendation system using various metrics. These metrics measure the extent to which unique items are recommended to users and provide insights into the diversity of recommendations.\n* Novelty: measure the novelty of recommendations to ensure that users receive fresh and engaging content.\n\n\n*recsyslearn* helps you assess the diversity and freshness of recommended items.\n\n\nFairness metrics\n^^^^^^^^^^^^^^^^\n\n* Entropy: the measure of diversity (i.e., recommendations or accurate recommendations) over user or item groups.\n* Mutual Information: measures to what extent the information on the user group provides information about the groups to which the recommendations belong.\n* Kullback-Leibler: measures the KL divergence between the distribution of utility over user or item groups, computed on the list of recommendations, and a target distribution.\n\n\nLicense\n-------\n\nRecsyslearn is released as free software under the GNU General Public License v3.\n\nDocumentation\n-------------\n\nFor in-depth documentation, detailed explanations of functions, and usage examples, please visit the\n`official documentation`_.\n\nCitation\n--------\n\nIf you use *recsyslearn* in your research, please cite the following paper:\n\n.. code-block:: console\n        \n        @proceedings{Moscati2023MultiObjectiveHyperOpt,\n        title = {Multiobjective Hyperparameter Optimization of Recommender Systems},\n        author = {Moscati, Marta and Deldjoo, Yashar and Carparelli, Giulio Davide and Schedl, Markus},\n        booktitle = {Proceedings of the 3rd Workshop on Perspectives on the Evaluation of Recommender Systems co-located with the 17th ACM Conference on Recommender Systems (RecSys 2023), Singapore, Singapore.},\n        editor = {Said, Alan and Zangerle, Eva and Bauer, Christine},\n        publisher = {CEUR-WS.org},\n        url = {https://ceur-ws.org/Vol-3476/paper3.pdf},\n        volume = {3476},\n        year = {2023}\n        }\n\n\nCredits\n-------\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n.. _`official documentation`: https://recsyslearn.readthedocs.io/en/latest/?version=latest\n\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3",
    "summary": "A library to compute fairness of recommender systems.",
    "version": "2.0.2",
    "project_urls": {
        "Homepage": "https://github.com/giuliowaitforitdavide/recsyslearn"
    },
    "split_keywords": [
        "recsyslearn"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "172ffcf8e1d186dee701f6c900c080191f8d6be73d649e083d75cfd1f88b7362",
                "md5": "3b317ebd58ad0c38afeada9fb6ec4fcf",
                "sha256": "4c513d42d08f85baf739dc6ca68dd63c9d4052689a6f7c21758c920ba01c0ae5"
            },
            "downloads": -1,
            "filename": "recsyslearn-2.0.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3b317ebd58ad0c38afeada9fb6ec4fcf",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.10",
            "size": 25911,
            "upload_time": "2024-05-22T08:26:13",
            "upload_time_iso_8601": "2024-05-22T08:26:13.634077Z",
            "url": "https://files.pythonhosted.org/packages/17/2f/fcf8e1d186dee701f6c900c080191f8d6be73d649e083d75cfd1f88b7362/recsyslearn-2.0.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f12b08b9f0376229d9f098a2ba5793978cb6a4551ce3c86a7fbeb015952cc7d3",
                "md5": "e762cf793b41d140fd38c107fe0c106d",
                "sha256": "3dcd0d4da0852ab1fa1841a80ce024c86b823aa9f3de0c68a87c7aeaeceb9def"
            },
            "downloads": -1,
            "filename": "recsyslearn-2.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "e762cf793b41d140fd38c107fe0c106d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 319162,
            "upload_time": "2024-05-22T08:26:14",
            "upload_time_iso_8601": "2024-05-22T08:26:14.714397Z",
            "url": "https://files.pythonhosted.org/packages/f1/2b/08b9f0376229d9f098a2ba5793978cb6a4551ce3c86a7fbeb015952cc7d3/recsyslearn-2.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-22 08:26:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "giuliowaitforitdavide",
    "github_project": "recsyslearn",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "recsyslearn"
}
        
Elapsed time: 0.23821s