{"id":19410839,"url":"https://github.com/d3group/ddop","last_synced_at":"2025-04-24T10:33:01.945Z","repository":{"id":51727507,"uuid":"249996843","full_name":"d3group/ddop","owner":"d3group","description":"Data-Driven operations management - https://d3group.github.io/ddop","archived":false,"fork":false,"pushed_at":"2024-06-17T23:28:32.000Z","size":60048,"stargazers_count":15,"open_issues_count":3,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-13T13:56:06.141Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://d3group.github.io/ddop","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d3group.png","metadata":{"files":{"readme":"README.rst","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-25T14:12:30.000Z","updated_at":"2024-10-09T12:34:14.000Z","dependencies_parsed_at":"2022-08-03T07:00:33.155Z","dependency_job_id":"2c9864db-69a3-4701-9eef-1311389edc2a","html_url":"https://github.com/d3group/ddop","commit_stats":null,"previous_names":["andreasphilippi/ddop","opimwue/ddop"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3group%2Fddop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3group%2Fddop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3group%2Fddop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3group%2Fddop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3group","download_url":"https://codeload.github.com/d3group/ddop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223949037,"owners_count":17230226,"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":[],"created_at":"2024-11-10T12:18:17.151Z","updated_at":"2024-11-10T12:18:17.749Z","avatar_url":"https://github.com/d3group.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":".. -*- mode: rst -*-\n\n.. image:: https://travis-ci.com/opimwue/ddop.svg?branch=master\n    :target: https://travis-ci.com/opimwue/ddop\n\n.. image:: https://d25lcipzij17d.cloudfront.net/badge.svg?id=py\u0026type=6\u0026v=0.6.5\u0026x2=0\n    :target: https://badge.fury.io/py/ddop\n\n.. image:: https://img.shields.io/github/license/andreasphilippi/ddop\n    :target: https://github.com/andreasphilippi/ddop/blob/master/LICENSE\n    \n.. image:: https://www.code-inspector.com/project/22456/status/svg\n    :target: https://frontend.code-inspector.com/public/project/22456/ddop/dashboard\n    \n.. image:: https://joss.theoj.org/papers/0de119f95840b69fcea94309c18058e4/status.svg\n    :target: https://joss.theoj.org/papers/0de119f95840b69fcea94309c18058e4   \n    \n\n----------------------\n\n\nWelcome to ddop!\n====================\n\n.. image:: /docsrc/logos/logo.png\n    :width: 300\n\n``ddop`` is a Python library for data-driven operations management. The goal of ``ddop`` is to provide well-established\ndata-driven operations management tools within a programming environment that is accessible and easy to use even\nfor non-experts. At the current state ``ddop`` contains well known data-driven newsvendor models, a set of\nperformance metrics that can be used for model evaluation and selection, as well as datasets that are useful to\nquickly illustrate the behavior of the various algorithms implemented in ``ddop`` or as benchmark for testing new\nmodels. Through its consistent and easy-to-use interface one can run and compare provided models with only a few\nlines of code.\n\n------------------------------------------------------------\n\nInstallation\n------------\n\nddop is available via PyPI using:\n\n.. code-block:: bash\n\n    pip install ddop\n\nThe installation requires the following dependencies:\n\n- numpy==1.18.2\n- scipy==1.4.1\n- pandas==1.1.4\n- statsmodels==0.11.1\n- scikit-learn==0.23.0\n- tensorflow==2.4.1\n- pulp==2.0\n- mpmath\n\nNote: The package is actively developed and conflicts with other packages may occur during\ninstallation. To avoid any installation conflicts we therefore recommend to install the\npackage in an empty environment with the above mentioned dependencies\n\nQuickstart\n----------\n``ddop`` provides a varity of newsvendor models. The following example\nshows how to use one of these models for decision making. It assumes\na very basic knowledge of data-driven operations management practices.\n\nAs first step we initialize the model we want to use. In this example\n`LinearRegressionNewsvendor \u003chttps://opimwue.github.io/ddop/modules/auto_generated/ddop.newsvendor.LinearRegressionNewsvendor.html#ddop.newsvendor.LinearRegressionNewsvendor\u003e`__.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e from ddop.newsvendor import LinearRegressionNewsvendor\n    \u003e\u003e\u003e mdl = LinearRegressionNewsvendor(cu=2,co=1)\n\nA model can take a set of parameters, each describing the model or the optimization\nproblem it tries to solve. Here we set the underage costs ``cu`` to 2 and\nthe overage costs ``co`` to 1.\n\nAs next step we load the `Yaz Dataset \u003chttps://opimwue.github.io/ddop/modules/auto_generated/ddop.datasets.load_yaz.html#ddop.datasets.load_yaz\u003e`__ and split it into train and test set.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e from ddop.datasets import load_yaz\n    \u003e\u003e\u003e from sklearn.model_selection import train_test_split\n    \u003e\u003e\u003e X, y = load_yaz(one_hot_encoding=True, return_X_y=True)\n    \u003e\u003e\u003e X_train, X_test, y_train, y_test = train_test_split(X, y, shuffle=False, random_state=0)\n\nAfter the model is initialized, the ``fit`` method can be used to learn a decision model from the training data ``X_train``, ``y_train``.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e mdl.fit(X_train, y_train)\n\nWe can then use the ``predict`` method to make a decision for new data samples.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e mdl.predict(X_test)\n    \u003e\u003e\u003e array([[ 8.32..,  7.34.., 16.92.., ..]])\n\nTo get a representation of the model's decision quality we can use the ``score`` function, which takes as input\n``X_test`` and  ``y_test``. The score function makes a decision for each sample in ``X_test`` and calculates\nthe negated average costs with respect to the true values ``y_test`` and the overage and underage costs.\n\n.. code-block:: python\n\n    \u003e\u003e\u003e mdl.score(X_test,y_test)\n    -7.05..\n\n------------------------------------------------------------\n\nSee also\n-----------\n* Follow the `API reference \u003chttps://opimwue.github.io/ddop/api_reference.html\u003e`__ to get an overview of available functionalities and for detailed class and function information.\n* To get familiar with ``ddop`` and to learn more about data-driven operations management check out our `Tutorials \u003chttps://opimwue.github.io/ddop/tutorial.html\u003e`__.\n\n------------------------------------------------------------\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3group%2Fddop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3group%2Fddop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3group%2Fddop/lists"}