Metadata-Version: 2.1
Name: tryangle
Version: 0.1.0
Summary: Tryangle Package - Scientific P&C Loss Reserving
Home-page: https://github.com/casact/tryangle
Maintainer: Caesar Balona
Maintainer-email: caesar.balona@gmail.com
License: MPL-2.0
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Office/Business :: Financial
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: pandas (>=0.23)
Requires-Dist: scikit-learn (>=0.23)
Requires-Dist: chainladder (>=0.8.4)

=============================================================
Tryangle: Machine Learning Techniques for Chainladder Methods
=============================================================

*Tryangle* is an automatic chainladder reserving framework. It provides scoring and optimisation methods based
on machine learning techniques to automatically select optimal parameters to minimise reserve prediction error.
Tryangle is built on top of the `chainladder <https://chainladder-python.readthedocs.io/en/latest/index.html>`__ reserving package.

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

Tryangle is flexible and modular in how it can be applied:

- Optimising loss development factors

  - Use `sklearn's <https://scikit-learn.org/>`__ `GridSearchCV` or `RandomizedSearchCV` to
    find the optimal method to calculate loss development factors

- Choosing between multiple reserving methods

  - Not sure if you should go with a basic chainladder, Bornhuetter-Ferguson, or Cape-Cod
    method? Let Tryangle decide.

- Finding the optimal blend of reserving methods

  - Or why not combine all three, and let Tryangle find the optimal blend.

- Using advanced optimisation methods

  - Not satisfied with an exhaustive grid search? Tryangle can be used with
    any optimisation framework, but we recommend `Optuna <https://optuna.org/>`__

Basic Example
-------------

.. code-block:: python

    from sklearn.model_selection import GridSearchCV
    from sklearn.pipeline import Pipeline
    from tryangle import Development, CapeCod
    from tryangle.metrics import neg_cdr_scorer
    from tryangle.model_selection import TriangleSplit
    from tryangle.utils.datasets import load_sample

    X = load_sample("swiss")
    tscv = TriangleSplit(n_splits=5)

    param_grid = {
        "dev__n_periods": range(15, 20),
        "dev__drop_high": [True, False],
        "dev__drop_low": [True, False],
        "cc__decay": [0.25, 0.5, 0.75, 0.95],
    }

    pipe = Pipeline([("dev", Development()), ("cc", CapeCod())])

    model = GridSearchCV(
        pipe, param_grid=param_grid, scoring=neg_cdr_scorer, cv=tscv, verbose=1, n_jobs=-1
    )
    model.fit(X, X)


Installation
------------

Todo.

.. Tryangle is available at `the Python Package Index <https://pypi.org/project/tryangle/>`__.

.. ```bash
.. # PyPI
.. $ pip install tryangle
.. ```

Tryangle supports Python 3.8.

Reference
---------

Caesar Balona, Ronald Richman. 2021.
The Actuary and IBNR Techniques: A Machine Learning Approach (`SSRN <https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3697256>`__).




