{ "info": { "author": "Nikolay Novik", "author_email": "nickolainovik@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Framework :: AsyncIO", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "mldissect\n=========\n.. image:: https://travis-ci.com/ml-libs/mldissect.svg?branch=master\n :target: https://travis-ci.com/ml-libs/mldissect\n.. image:: https://codecov.io/gh/ml-libs/mldissect/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/ml-libs/mldissect \n.. image:: https://api.codeclimate.com/v1/badges/bc29bc214f39b54ef30a/maintainability\n :target: https://codeclimate.com/github/ml-libs/mldissect/maintainability\n :alt: Maintainability\n\n\n**mldissect** is model agnostic predictions explainer, library can show\ncontribution of each feature of your prediction value.\n\nFeatures\n========\n* Supports predictions explanations for classification and regression\n* Easy to use API.\n* Works with ``pandas`` and ``numpy``\n\n\nInstallation\n------------\nInstallation process is simple, just::\n\n $ pip install mldissect\n\nBasic Usage\n===========\n\n.. code:: python\n\n # lets train a model\n boston = load_boston()\n columns = list(boston.feature_names)\n X, y = boston['data'], boston['target']\n X_train, X_test, y_train, y_test = train_test_split(\n X, y, test_size=.2, random_state=seed\n )\n\n clf = LassoCV()\n clf.fit(X_train, y_train)\n\n # select first observation in test split\n observation = X_test[0]\n # RegressionExplainer uses training data or sample of training data\n # for large dataset to figure out contributions of each feature\n explainer = RegressionExplainer(clf, X_train, columns)\n result = explainer.explain(observation)\n # print/visualize explanation\n explanation = Explanation(result)\n explanation.print()\n\n\nresult::\n\n +----------+---------+--------------------+\n | Feature | Value | Contribution |\n +----------+---------+--------------------+\n | baseline | - | 22.611881188118804 |\n | LSTAT | 7.34 | 3.6872 |\n | PTRATIO | 16.9 | 1.3652 |\n | CRIM | 0.06724 | 0.2323 |\n | B | 375.21 | 0.1195 |\n | RM | 6.333 | 0.0411 |\n | INDUS | 3.24 | 0.0312 |\n | CHAS | 0.0 | 0.0 |\n | NOX | 0.46 | 0.0 |\n | TAX | 430.0 | -0.3794 |\n | AGE | 17.2 | -0.5127 |\n | ZN | 0.0 | -0.6143 |\n | DIS | 5.2146 | -1.0792 |\n | RAD | 4.0 | -1.0993 |\n +----------+---------+--------------------+\n\n\nAlgorithm\n=========\nAlgorithm is based on ideas describe in paper *\"Explanations of model predictions\nwith live and breakDown packages\"* https://arxiv.org/abs/1804.01955\n\n\nDifference with pyBreakDown\n===========================\n``pyBreakDown`` is similar project, but there is key differences:\n\n* `mldissect` is maintained\n* Has tests and good code coverage.\n* Classification is working properly.\n* Multi class support.\n* Top down approach is not implemented.\n* Friendly license.\n\n\nRequirements\n------------\n\n* Python_ 3.6+\n* numpy_\n\n.. _Python: https://www.python.org\n.. _numpy: http://www.numpy.org/\n\nCHANGES\n=======", "description_content_type": "", "docs_url": null, "download_url": "https://pypi.python.org/pypi/mldissect", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ml-libs/mldissect", "keywords": "mldissect", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "mldissect", "package_url": "https://pypi.org/project/mldissect/", "platform": "POSIX", "project_url": "https://pypi.org/project/mldissect/", "project_urls": { "Download": "https://pypi.python.org/pypi/mldissect", "Homepage": "https://github.com/ml-libs/mldissect" }, "release_url": "https://pypi.org/project/mldissect/0.0.1a2/", "requires_dist": null, "requires_python": "", "summary": "mldissect - model agnostic explanations", "version": "0.0.1a2" }, "last_serial": 4450183, "releases": { "0.0.1a0": [ { "comment_text": "", "digests": { "md5": "230a577ef07f89f5ec61e07863b92032", "sha256": "35a49690289cc57a510dd5ba3663953edb367410f163d01375e46d9aba8fdfb8" }, "downloads": -1, "filename": "mldissect-0.0.1a0.tar.gz", "has_sig": false, "md5_digest": "230a577ef07f89f5ec61e07863b92032", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8632, "upload_time": "2018-09-26T21:23:28", "url": "https://files.pythonhosted.org/packages/2c/cc/2ff03c7496399f714442e83d3a6af40c065c12864dd3f5661e7131b5d656/mldissect-0.0.1a0.tar.gz" } ], "0.0.1a2": [ { "comment_text": "", "digests": { "md5": "78192f0f66780678a99303b1de86a435", "sha256": "76076b4cbe86a09c9e038785b62ec6ca18682fee9f2fccbc39711a09a1da7d86" }, "downloads": -1, "filename": "mldissect-0.0.1a2.tar.gz", "has_sig": false, "md5_digest": "78192f0f66780678a99303b1de86a435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8674, "upload_time": "2018-11-04T17:23:47", "url": "https://files.pythonhosted.org/packages/f0/17/0a2c31d9a6d70c6347c3f254fa757fe5b60944dc19bb9af82b18d033ffd0/mldissect-0.0.1a2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "78192f0f66780678a99303b1de86a435", "sha256": "76076b4cbe86a09c9e038785b62ec6ca18682fee9f2fccbc39711a09a1da7d86" }, "downloads": -1, "filename": "mldissect-0.0.1a2.tar.gz", "has_sig": false, "md5_digest": "78192f0f66780678a99303b1de86a435", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8674, "upload_time": "2018-11-04T17:23:47", "url": "https://files.pythonhosted.org/packages/f0/17/0a2c31d9a6d70c6347c3f254fa757fe5b60944dc19bb9af82b18d033ffd0/mldissect-0.0.1a2.tar.gz" } ] }