{
"info": {
"author": "Ignat Drozdov",
"author_email": "idrozdov@beringresearch.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.6"
],
"description": "[](https://bering-ml-lab.readthedocs.io/en/latest/?badge=latest)\n\n# Machine Learning Lab\n\nA lightweight command line interface for the management of arbitrary machine learning tasks.\n\nDocumentation is available at: \n\nNOTE: Lab is in active development - expect a bumpy ride!\n\n\n\n## Installation\n\nThe latest stable version can be installed directly from PyPi:\n\n```bash\npip install lab-ml\n```\n\nDevelopment version can be installed from github.\n\n```bash\ngit clone https://github.com/beringresearch/lab\ncd lab\npip install --editable .\n```\n\n## Concepts\n\nLab employs three concepts: __reproducible environment__, __logging__, and __model persistence__.\nA typical machine learning workflow can be turned into a Lab Experiment by adding a single decorator.\n\n## Creating a new Lab Project\n\n```bash\nlab init --name [NAME]\n```\n\nLab will look for a **requirements.txt** file in the working directory to generate a portable virtual environment for ML experiments.\n\n## Setting up a Lab Experiment\n\nHere's a simple script that trains an SVM classifier on the iris data set:\n\n```python\nfrom sklearn import svm, datasets\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score, precision_score\n\nC = 1.0\ngamma = 0.7\niris = datasets.load_iris()\nX = iris.data\ny = iris.target\n\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.24, random_state=42)\n\nclf = svm.SVC(C, 'rbf', gamma=gamma, probability=True)\nclf.fit(X_train, y_train)\n\ny_pred = clf.predict(X_test)\naccuracy = accuracy_score(y_test, y_pred)\nprecision = precision_score(y_test, y_pred, average = 'macro')\n```\n\nIt's trivial to create a Lab Experiment using a simple decorator:\n\n```python\nfrom sklearn import svm, datasets\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score, precision_score\n\nfrom lab.experiment import Experiment ## New Line\n\ne = Experiment() ## New Line\n\n@e.start_run ## New Line\ndef train():\n C = 1.0\n gamma = 0.7\n iris = datasets.load_iris()\n X = iris.data\n y = iris.target\n\n X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.24, random_state=42)\n\n clf = svm.SVC(C, 'rbf', gamma=gamma, probability=True)\n clf.fit(X_train, y_train)\n\n y_pred = clf.predict(X_test)\n accuracy = accuracy_score(y_test, y_pred)\n precision = precision_score(y_test, y_pred, average = 'macro')\n\n e.log_metric('accuracy_score', accuracy) ## New Line\n e.log_metric('precision_score', precision) ## New Line\n\n e.log_parameter('C', C) ## New Line\n e.log_parameter('gamma', gamma) ## New Line\n\n e.log_model('svm', clf) ## New Line\n```\n\n## Running an Experiment\n\nLab Experiments can be run as:\n\n```bash\nlab run \n```\n\n## Comparing models\n\nLab assumes that all Experiments associated with a Project log consistent performance metrics. We can quickly assess performance of each experiment by running:\n\n```bash\nlab ls\n\nExperiment Source Date accuracy_score precision_score\n------------ ------------------ ---------- ---------------- -----------------\n49ffb76e train_mnist_mlp.py 2019-01-15 0.97: \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 0.97: \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n261a34e4 train_mnist_cnn.py 2019-01-15 0.98: \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 0.98: \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\n```\n\n## Pushing models to a centralised repository\n\nLab experiments can be pushed to a centralised filesystem through integration with [minio](https://minio.io). Lab assumes that you have setup minio on a private cloud.\n\nLab can be configured once to interface with a remote minio instance:\n\n```bash\nlab config minio --tag my-minio --endpoint [URL:PORT] --accesskey [STRING] --secretkey [STRING]\n```\n\nTo push a local lab experiment to minio:\n\n```bash\nlab push --tag my-minio --bucket [BUCKETNAME] .\n```\n\nCopyright 2019, Bering Limited\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/beringresearch/lab",
"keywords": "ml ai",
"license": "Apache License 2.0",
"maintainer": "",
"maintainer_email": "",
"name": "lab-ml",
"package_url": "https://pypi.org/project/lab-ml/",
"platform": "",
"project_url": "https://pypi.org/project/lab-ml/",
"project_urls": {
"Homepage": "https://github.com/beringresearch/lab"
},
"release_url": "https://pypi.org/project/lab-ml/0.81.87.dev0/",
"requires_dist": [
"click (>=6.7)",
"minio",
"numpy",
"pandas",
"pyyaml",
"tabulate",
"graphviz",
"joblib"
],
"requires_python": "",
"summary": "Lab: a command line interface for the management of arbitrary machine learning tasks.",
"version": "0.81.87.dev0"
},
"last_serial": 5516627,
"releases": {
"0.81.84.dev0": [
{
"comment_text": "",
"digests": {
"md5": "0ee7c89f004374551683da610e0f5b40",
"sha256": "c525730b255d37e4a299b1c8564f01682d80df82af2339a9ab7a75e1e5ac4bf8"
},
"downloads": -1,
"filename": "lab_ml-0.81.84.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0ee7c89f004374551683da610e0f5b40",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18741,
"upload_time": "2019-07-08T19:37:37",
"url": "https://files.pythonhosted.org/packages/4d/fe/a1966014a00e165b56ab823ccd4bd6082d7f6fd9f681bb43c3e68bdf2691/lab_ml-0.81.84.dev0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5b38df654f804aad0fc15669f7e763e5",
"sha256": "1e25e682ff7eebdba0401976a9fd6a3640a6b19229e3fc8f6651ebaa266c2d36"
},
"downloads": -1,
"filename": "lab-ml-0.81.84.dev0.tar.gz",
"has_sig": false,
"md5_digest": "5b38df654f804aad0fc15669f7e763e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5094,
"upload_time": "2019-07-08T19:27:42",
"url": "https://files.pythonhosted.org/packages/1f/89/4c78dc1ff1260529e02a87aedf1ec1071f10655d2256e8550fa468585762/lab-ml-0.81.84.dev0.tar.gz"
}
],
"0.81.85.dev0": [
{
"comment_text": "",
"digests": {
"md5": "f405a462c8ea76723a33874d0d800c27",
"sha256": "ccd0822411751b68c1cabd8fe959b0c862a88dde016d5e726b411b28c9fc2b64"
},
"downloads": -1,
"filename": "lab_ml-0.81.85.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f405a462c8ea76723a33874d0d800c27",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18742,
"upload_time": "2019-07-08T19:38:08",
"url": "https://files.pythonhosted.org/packages/95/23/02f1ccb6880aaf2020280c803d7641d473472bff87727aef5a6e2c03c652/lab_ml-0.81.85.dev0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d4caa5b2e1420227e6c4a7b7b4c853fb",
"sha256": "9a06a22aaa7facf908f2b42e76eec02e6c62d1fed4470555d5f5483663f94c0a"
},
"downloads": -1,
"filename": "lab-ml-0.81.85.dev0.tar.gz",
"has_sig": false,
"md5_digest": "d4caa5b2e1420227e6c4a7b7b4c853fb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13535,
"upload_time": "2019-07-08T19:38:10",
"url": "https://files.pythonhosted.org/packages/a5/b8/c58587219bcd8fc4eb924f0a26c250c18993d67534b14ec83c4fba646cc4/lab-ml-0.81.85.dev0.tar.gz"
}
],
"0.81.87.dev0": [
{
"comment_text": "",
"digests": {
"md5": "6dffb32db2f14bb39af24167a91f25bf",
"sha256": "15b4868b1cb962383945cfa2e2dd93c2b9b22028a8c6f33b99b771cdd3c8d10e"
},
"downloads": -1,
"filename": "lab_ml-0.81.87.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6dffb32db2f14bb39af24167a91f25bf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18693,
"upload_time": "2019-07-11T09:38:32",
"url": "https://files.pythonhosted.org/packages/83/1e/849c6e0d01041c52b66b12834a5e22721ac20c6d189f308d00dda1d8a408/lab_ml-0.81.87.dev0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a5caea6c82f357fd875083bcdcc8ea6",
"sha256": "43181c23ddcf8efb438bb3cd45ed74b98265897c893192fd5893011242bbe40c"
},
"downloads": -1,
"filename": "lab-ml-0.81.87.dev0.tar.gz",
"has_sig": false,
"md5_digest": "5a5caea6c82f357fd875083bcdcc8ea6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13487,
"upload_time": "2019-07-11T09:38:34",
"url": "https://files.pythonhosted.org/packages/17/d2/6b7c9976ea0ec581775e60ff86d5dd0e5b89b368690bfe436dd01b921b07/lab-ml-0.81.87.dev0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6dffb32db2f14bb39af24167a91f25bf",
"sha256": "15b4868b1cb962383945cfa2e2dd93c2b9b22028a8c6f33b99b771cdd3c8d10e"
},
"downloads": -1,
"filename": "lab_ml-0.81.87.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6dffb32db2f14bb39af24167a91f25bf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18693,
"upload_time": "2019-07-11T09:38:32",
"url": "https://files.pythonhosted.org/packages/83/1e/849c6e0d01041c52b66b12834a5e22721ac20c6d189f308d00dda1d8a408/lab_ml-0.81.87.dev0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5a5caea6c82f357fd875083bcdcc8ea6",
"sha256": "43181c23ddcf8efb438bb3cd45ed74b98265897c893192fd5893011242bbe40c"
},
"downloads": -1,
"filename": "lab-ml-0.81.87.dev0.tar.gz",
"has_sig": false,
"md5_digest": "5a5caea6c82f357fd875083bcdcc8ea6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13487,
"upload_time": "2019-07-11T09:38:34",
"url": "https://files.pythonhosted.org/packages/17/d2/6b7c9976ea0ec581775e60ff86d5dd0e5b89b368690bfe436dd01b921b07/lab-ml-0.81.87.dev0.tar.gz"
}
]
}