{ "info": { "author": "Lianfa Li", "author_email": "lspatial@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "baggingrnet: Library for Bagging of Deep Residual Neural Networks\n================\n\n### Introduction\n\nThis package provides The python Library for Bagging of Deep Residual Neural Networks (baggingrnet). Current version just supports the KERAS package of deep learning and will extend to the others in the future. The following functionaity is provoded in this package: \\* model multBagging: Major class to parallel bagging of autoencoder-based deep residual networks. You can setup its aruments for optimal effects. See the class and its member functions' help for details.\nresAutoencoder: Major class of the base model of autoencoder-based deep residual network. See the specifics for its details. ensPrediction: Major class to ensemble predictions and optional evaluation for independent test.\n\\* util pmetrics: main metrics including rsquare and rmse etc.\n\n- data data: function to access two sample datas to test and demonstrate parallel training and predictions of multiple models by bagging. simData: function to simulate the dataset for a test.\n\n### Installation of the package\n\n1. You can directly install this package using the following command for the latest version:\n\n pip install baggingrnet \n\n2. You can also clone the repository and then install:\n\n git clone --recursive https://github.com/lspatial/baggingrnet.git\n pip install ./setup.py install \n\n### Modeling Framework\n\nThe modeling is based on bagging of the encoding-decoding antoencoder based deep residual multilayer percepton (MLP). Residual connections were used from the encoding to decoding layers to improve the learning efficiency and use of bagging is to achieve the stable and improved ensemble predictions, with uncertainty metric (standard deviation). \n\nThe relevant paper will be published and will update here once published.\n\n### Example 1: Regression of Simulated Data\n\nThe dataset is simulated using the following formula: \n\neach covariate defined as:\n*x*1\u2004\u223c\u2004*U*(1,\u2006100),*x*2\u2004\u223c\u2004*U*(0,\u2006100),*x*3\u2004\u223c\u2004*U*(1,\u200610),*x*4\u2004\u223c\u2004*U*(1,\u2006100),*x*5\u2004\u223c\u2004*U*(9,\u2006100),*x*6\u2004\u223c\u2004*U*(1,\u20061009),*x*7\u2004\u223c\u2004*U*(5,\u2006300),*x*8\u00a0*U*(6\u2004\u223c\u2004200)\n This example is to illustrate how to use bagging class to train a model and compare the results by the models with and without use of residual connections in the models.\n\n###### 1) Load the dataset:\n\n``` python\nfrom baggingrnet.data import data\n\nsim_train=data('sim_train')\nsim_train['gindex']=np.array([i for i in range(sim_train.shape[0])])\n```\n\n``` r\nknitr::kable(py$sim_train[c(1:5),], format = \"html\")\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\nx1\n\nx2\n\nx3\n\nx4\n\nx5\n\nx6\n\nx7\n\nx8\n\ny\n\ngindex\n
\n9842\n\n69.59893\n\n6.368696\n\n5.950720\n\n97.97698\n\n81.77670\n\n38.12578\n\n38.71023\n\n124.90578\n\n168.7697448\n\n0\n
\n2513\n\n88.83580\n\n47.619385\n\n8.107348\n\n23.95389\n\n41.00300\n\n256.75319\n\n203.75759\n\n146.79040\n\n184.8472212\n\n1\n
\n9116\n\n65.32664\n\n49.473679\n\n5.982418\n\n75.99401\n\n80.56275\n\n849.48435\n\n204.52137\n\n161.61705\n\n-444.5390646\n\n2\n
\n2673\n\n21.72827\n\n64.946680\n\n2.592348\n\n70.32067\n\n42.27824\n\n387.42060\n\n13.15852\n\n88.47877\n\n-166.3553631\n\n3\n
\n5607\n\n69.45317\n\n18.811648\n\n5.624373\n\n39.81835\n\n84.80446\n\n333.43811\n\n89.22591\n\n77.25155\n\n-0.5405426\n\n4\n
\n###### 2) Set bagging path, list of predictor names, get the bagging class instance and input data:\n\n``` python\n# Load the major class for parallel bagging training\nfrom baggingrnet.model.bagging import multBagging \n\nfeasList = ['x'+str(i) for i in range(1,9)] #List of the covariates used in training \ntarget='y' # Name of the target variable \nbagpath='/tmp/sim_bagging/res' # Path used to \nchkpath(bagpath)\nmbag=multBagging(bagpath)\nmbag.getInputSample(sim_train, feasList,None,'gindex',target)\n```\n\n###### 3) Define the arguments of a model and append it to the list of modeling duties:\n\n``` python\nname = str(0) # model name as unique identifier \nnodes = [32,16,8,4] # List of number of nodes for the encoding and coding layers, adjustable optionally; \nminibatch = 512 # Size for mini batch \nisresidual = True # Whether to use residual connections in the model \nnepoch = 200 #Number of epoches \nsampling_fea = False # Whether to bootstrap the predictors/features \nnoutput = 1 # Number of the output node \nislog=False # Whether to make the log transformation \n# The following is to add the model's arguments to the list of duties. \nmbag.addTask(name,noutput,sampling_fea, nepoch, nodes, minibatch, isresidual,islog)\n```\n\n###### 4) Initiate the training:\n\n``` python\nmbag.startMProcess(1)\n```\n\nHere, just one core is used for one model.\n\n###### 5) Prediction using the trained models and optional evaluation of the trained model:\n\n``` python\nfrom baggingrnet.model.baggingpre import ensPrediction\n# Load the test dataset \nsim_test=data('sim_test')\nsim_test['gindex']=np.array([i for i in range(sim_test.shape[0])]) # Generate the unique id for merging the predicitons of multiple models \n# Setup the path and target variable \nprepath=\"/tmp/sim_bagging/res_pre\"\nchkpath(prepath)\n#Load the prdiction class\nmbagpre=ensPrediction(bagpath,prepath)\n#Load the test data \nmbagpre.getInputSample(sim_test, feasList,'gindex')\n#Start to make predictions for multiple trained models. \nmbagpre.startMProcess(1)\n#Obtain the ensemble predictions from those of multiple models and optional evaluation of the models. \nmbagpre.aggPredict(isval=True,tfld='y')\n```\n\nThe above five steps illustrate the process of loading data, training, testing, and predicting. To compare with the results of residual models, the following code is to get the results for the non-residual models.\n\n``` python\nmbag.removeTask(name)\nbagpath='/tmp/sim_bagging/nores'\nchkpath(bagpath)\nmbag_nores=multBagging(bagpath)\nmbag_nores.getInputSample(sim_train, feasList,None,'gindex','y')\nisresidual = False # This is to set no use of residual connections in the models. \nmbag_nores.addTask(name,noutput,sampling_fea, nepoch, nodes, minibatch, isresidual,islog)\nmbag_nores.startMProcess(1) \nprepath=\"/tmp/sim_bagging/nores_pre\"\nchkpath(prepath)\nmbagpre=ensPrediction(bagpath,prepath)\nmbagpre.getInputSample(sim_test, feasList,'gindex')\nmbagpre.startMProcess(1)\nmbagpre.aggPredict(isval=True,tfld='y')\n```\n\nThe comparison of the training/learning curves for residual and non-residual models:\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-10-1.png)\n\nThe comparison of the independent test for residual and non-residual models: performance (R2 and RMSE)\n\n ## [1] \"non residual model r2: 0.78, rmse: 150.17\"\n\n ## [1] \"residual model r2: 0.91, rmse: 98.37\"\n\n ## [1] \"Residual model improved R2 by 12.48%, compared with non-residual model\"\n\n ## [1] \"Residual model decreased rmse by -51.8, compared with non-residual model\"\n\nThe scatter comparison of residual vs. non-residual models for the independent test:\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-12-1.png)\n\n### Example 2: Spatiotemporal Estimation of PM2.5\n\nThis dataset is the real dataset of the 2015 PM2.5 and the relevant covariates for the Beijing-Tianjin-Tangshan area. Due to data security reason, it has been added with small Gaussian noise.\n\n\n\n###### 1) Load input data:\n\nHere the PM2.5 dataset is used to test the proposed methods.\n\n``` python\nfrom baggingrnet.data import data\npm25_train=data('pm2.5_train')\npm25_train['gindex']=np.array([i for i in range(pm25_train.shape[0])])\n```\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n\nsites\n\nsite\\_name\n\ncity\n\nlon\n\nlat\n\npm25\\_davg\n\nele\n\nprs\n\ntem\n\nrhu\n\nwin\n\naod\n
\n23123\n\n1010A\n\n\u660c\u5e73\u9547\n\n\u5317\u4eac\n\n116.2300\n\n40.1952\n\n6.80000\n\n57.0\n\n1007.709\n\n20.0859852\n\n0.7609952\n\n17.39427\n\n0.2877372\n
\n1339\n\n1014A\n\n\u5357\u53e3\u8def\n\n\u5929\u6d25\n\n117.1930\n\n39.1730\n\n84.59091\n\n8.5\n\n1021.859\n\n-0.2894622\n\n0.6565141\n\n40.61296\n\n0.2245625\n
\n11843\n\n1062A\n\n\u94c1\u8def\n\n\u627f\u5fb7\n\n117.9664\n\n40.9161\n\n21.27273\n\n362.0\n\n969.876\n\n15.3092365\n\n0.5288071\n\n16.61683\n\n0.4272831\n
\n9373\n\n\u6986\u57a1\n\n\u4eac\u5357\u6986\u57a1\uff0c\u4eac\u5357\u533a\u57df\u70b9\n\n\u5317\u4eac\n\n116.3000\n\n39.5200\n\n12.08696\n\n18.0\n\n1013.116\n\n14.0085974\n\n0.8100768\n\n39.46079\n\n0.5075859\n
\n19596\n\n1069A\n\n\u73af\u5883\u76d1\u6d4b\u76d1\u7406\u4e2d\u5fc3\n\n\u5eca\u574a\n\n116.7150\n\n39.5571\n\n64.20833\n\n35.0\n\n1005.249\n\n24.4960499\n\n0.8604047\n\n14.01048\n\n1.5149391\n
\n###### 2) Set bagging path, list of predictor names, get the bagging class instance and input data:\n\n``` python\nfrom baggingrnet.model.bagging import multBagging\nimport random as r \nfeasList = ['lat', 'lon', 'ele', 'prs', 'tem', 'rhu', 'win', 'pblh_re', 'pre_re', 'o3_re', 'aod', 'merra2_re', 'haod',\n 'shaod', 'jd','lat2','lon2','latlon']\ntarget='pm25_avg_log'\nbagpath='/tmp/baggingpm25_2/res'\nchkpath(bagpath)\nmbag=multBagging(bagpath)\n```\n\n ## initializing ...\n\n``` python\nmbag.getInputSample(pm25_train, feasList,None,'gindex',target)\n```\n\n ## (29475, 31)\n\n###### 3) Define the arguments of multiple models (here 100 models) and append them to the list of modeling duties:\n\n``` python\nimport random as r \nfor i in range(1,81):\n name = str(i)\n nodes = [128 + r.randint(-5,5),128+ r.randint(-5,5),96,64,32,12]\n minibatch = 2560+r.randint(-5,5)\n isresidual = False\n nepoch = 120\n sampling_fea = False\n noutput = 1\n islog=True\n mbag.addTask(name,noutput,sampling_fea, nepoch, nodes, minibatch, isresidual,islog)\n \n```\n\n###### 4) Initiate the training:\n\nInitiate the parallel programs using 10 cores\n\n``` python\nmbag.startMProcess(10)\n```\n\n###### 5) Prediction using the trained models and optional evaluation of the trained model:\n\n``` python\nfrom baggingrnet.model.baggingpre import ensPrediction\nprepath=\"/tmp/baggingpm25_2p/res\"\nchkpath(prepath)\nmbagpre=ensPrediction(bagpath,prepath)\nmbagpre.getInputSample(pm25_test, feasList,'gindex')\nmbagpre.startMProcess(10)\nmbagpre.aggPredict(isval=True,tfld='pm25_davg')\n```\n\nFinally, the following results were obtaned.\n\nThe results are shown as the following:\n\n###### 1) Typical learning curves of non-residual vs. residual models are shown as the following:\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-19-1.png)\n\n###### 2) Mean performance (R2 and RMSE) of the predictions of multiple non-residual vs residual models for the independent dataset :\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-20-1.png)\n\n###### 3) Performance (R2 and RMSE) of the ensembled predictions based on multiple models for the independent dataset:\n\n ## [1] \"non residual model r2: 0.88, rmse: 23.55\"\n\n ## [1] \"residual model r2: 0.91, rmse: 20.35\"\n\n ## [1] \"Residual model improved R2 by 2.97%, compared with non-residual model\"\n\n ## [1] \"Residual model decreased rmse by -3.2, compared with non-residual model\"\n\n###### 4) Scatter plots for the ensemble predictions of non-residual vs residual models:\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-22-1.png)\n\n###### 5) Comparison of ensemble predictions vs. predictions of single models:\n\nStatistics of the performance for the predictions of multiple models and ensemble predictions are made. The following shows R2 and RMSE, barplots and scatter plots.\n\nPerformance digits:\n\n ## [1] \"Ensemble predictions: R2=0.91, RMSE=20.35\"\n\n ## [1] \"Mean performance of predictions of multiple single models: R2=0.86, RMSE=26.07\"\n\n ## [1] \"Ensemble predictions averagely improved the single predictions by 6% for R2, and reduced -5.72ug/m3 for RMSE\"\n\nThe boxplot shows considerable improvement by bagging (6% in R2 and -5.72 *\u03bc*g/m3), in comparison with single models.\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-24-1.png)\n\nThe following shows the scatter plots of observed PM2.5 vs. ensemble predictions/residuals:\n\n![](https://raw.githubusercontent.com/lspatial/baggingrnet/master/README_files/figure-markdown_github/unnamed-chunk-25-1.png)\n\n### Contact\n\nFor this library and its relevant complete applications, welcome to contact Dr. Lianfa Li. Email: or ", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "baggingrnet", "package_url": "https://pypi.org/project/baggingrnet/", "platform": "", "project_url": "https://pypi.org/project/baggingrnet/", "project_urls": null, "release_url": "https://pypi.org/project/baggingrnet/0.0.12/", "requires_dist": null, "requires_python": "", "summary": "Library for Bagging of Deep Residual Neural Networks", "version": "0.0.12" }, "last_serial": 5660568, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8b3593123b5028fa90778a1b46f83ce9", "sha256": "cc502c5761ad6ae238aaa0dcdb2bfbd55c12cc58086286756f904d205b7248cc" }, "downloads": -1, "filename": "baggingrnet-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8b3593123b5028fa90778a1b46f83ce9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144588, "upload_time": "2019-08-10T06:25:55", "url": "https://files.pythonhosted.org/packages/1a/43/ee6bf2bd7969f3c8bf1aeab8dfb6397ce8e3cdb877751bee31fa700d221a/baggingrnet-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "a6fdb397c9ac03cbdaf638cc3378b170", "sha256": "fb78798747c4f14bbb1b6bbca03b9eb3b30ed7c8260a5d311d47ef36f956e1d3" }, "downloads": -1, "filename": "baggingrnet-0.0.10.tar.gz", "has_sig": false, "md5_digest": "a6fdb397c9ac03cbdaf638cc3378b170", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142894, "upload_time": "2019-08-10T22:05:11", "url": "https://files.pythonhosted.org/packages/3a/c0/54705e01d0d3abd67a0eeb7d93542d541140820c0aaef1295845cd01ac87/baggingrnet-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "3d70afe3dc7629a72edf3ade672a28d1", "sha256": "4207af787e46ae448d56696a711f584773b50ba12991407387869dfd4a715825" }, "downloads": -1, "filename": "baggingrnet-0.0.11.tar.gz", "has_sig": false, "md5_digest": "3d70afe3dc7629a72edf3ade672a28d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142815, "upload_time": "2019-08-10T22:29:37", "url": "https://files.pythonhosted.org/packages/f1/df/6e36d9632cc6001f579c231a1c1a3314144b9f59b192b7e3ae102cf2c478/baggingrnet-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "4c4bba735cccbeb4f0d369de752bf1ec", "sha256": "7b50a114558e494dce63a047120b90c610b7d88adb71529397419ba0f759130b" }, "downloads": -1, "filename": "baggingrnet-0.0.12.tar.gz", "has_sig": false, "md5_digest": "4c4bba735cccbeb4f0d369de752bf1ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142805, "upload_time": "2019-08-10T23:42:54", "url": "https://files.pythonhosted.org/packages/25/e7/0de1749d6dfd19cadd61b3435cb10cccc66d2ac39a4d573bfe3018aa3860/baggingrnet-0.0.12.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "52ca953efd495e35c680a7050589f0da", "sha256": "42ecd1c908f948c7f6d229d8bfe12b69499d3ff8450d1cd9d5935e35e8102602" }, "downloads": -1, "filename": "baggingrnet-0.0.2.tar.gz", "has_sig": false, "md5_digest": "52ca953efd495e35c680a7050589f0da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144677, "upload_time": "2019-08-10T06:31:54", "url": "https://files.pythonhosted.org/packages/18/e0/73de411fbb3cafedadea141c825d4d2f0fe3aafbeca33a002dd936fe2fb3/baggingrnet-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c07c1196fa5681dbd321e0c1474b3608", "sha256": "a799a2376ecca8c977b28d474e5bcf64ac8002471fc7bf3dc090e36e3bcaa5b9" }, "downloads": -1, "filename": "baggingrnet-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c07c1196fa5681dbd321e0c1474b3608", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144624, "upload_time": "2019-08-10T06:38:32", "url": "https://files.pythonhosted.org/packages/40/e3/45d9a4e2a7a0e632004b793c0980ca6c2226c00c8ba6e7e7a4033a55d420/baggingrnet-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c8f5f7dcce35554059682bb7239893a7", "sha256": "e4bf3e2688750f90591607cb355dd51419316bf1aaf76b5a692276486cb26356" }, "downloads": -1, "filename": "baggingrnet-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c8f5f7dcce35554059682bb7239893a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144692, "upload_time": "2019-08-10T06:51:26", "url": "https://files.pythonhosted.org/packages/08/78/e348b5d4b66a59d1985fbd0fed1fb6a3c463e73d30118f50c52c775b76e0/baggingrnet-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a2b4bcfc3ba5c2908da8e70f74feaf61", "sha256": "cbbcf73f42e06950c643a247103030743cc06c56302b7e51e6a8564585d93683" }, "downloads": -1, "filename": "baggingrnet-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a2b4bcfc3ba5c2908da8e70f74feaf61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6144696, "upload_time": "2019-08-10T06:54:45", "url": "https://files.pythonhosted.org/packages/e3/dd/e4735bd3abfa6b32ced88bb09e092b3753f336475c94d10b4bcb79c668fe/baggingrnet-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a70163f2a15b459d54bc1f7fa4beb565", "sha256": "901aa49f812c13098812452e35c034af1c7974a906c0afeda2bbadbc0882796e" }, "downloads": -1, "filename": "baggingrnet-0.0.6.tar.gz", "has_sig": false, "md5_digest": "a70163f2a15b459d54bc1f7fa4beb565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142050, "upload_time": "2019-08-10T07:01:25", "url": "https://files.pythonhosted.org/packages/9a/49/b2fcc655dc13b1e8d76b378f7e46ba4539f24024b9f514fb2cb0d779025d/baggingrnet-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "7e63fcbb4ae592852be280fcb40e11f4", "sha256": "51c6f6169af4c655fc39fe4dd346852c6fb585d7024e01f126a85c0551b22980" }, "downloads": -1, "filename": "baggingrnet-0.0.7.tar.gz", "has_sig": false, "md5_digest": "7e63fcbb4ae592852be280fcb40e11f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142813, "upload_time": "2019-08-10T21:25:43", "url": "https://files.pythonhosted.org/packages/d1/da/3017d0f14e3e4eac4f24c127d9ec37f53fa78509bbe3b9567091a08c9f04/baggingrnet-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8acf5b38e8266e8ada715cf1d6782373", "sha256": "c13c2f7580a079c50f1aa4a34d3c4cd73280fb142c9db80b4adf84f48cb59f1a" }, "downloads": -1, "filename": "baggingrnet-0.0.8.tar.gz", "has_sig": false, "md5_digest": "8acf5b38e8266e8ada715cf1d6782373", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142853, "upload_time": "2019-08-10T21:30:34", "url": "https://files.pythonhosted.org/packages/67/b7/d220c2aa6c73cc3aea40fecf2cbce6b0016b955816f72d17b29896676f55/baggingrnet-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "ea46681770939f9735e2ca9fda89d91e", "sha256": "ace0849c95f28703ab9594dc62aacc194a76775d4e09ca532be8d0171ef13ff8" }, "downloads": -1, "filename": "baggingrnet-0.0.9.tar.gz", "has_sig": false, "md5_digest": "ea46681770939f9735e2ca9fda89d91e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142844, "upload_time": "2019-08-10T21:36:09", "url": "https://files.pythonhosted.org/packages/ec/7a/fc15699c2c9f0f6af78723ce82f3b135c86165101a07dc7fe2e18959a779/baggingrnet-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c4bba735cccbeb4f0d369de752bf1ec", "sha256": "7b50a114558e494dce63a047120b90c610b7d88adb71529397419ba0f759130b" }, "downloads": -1, "filename": "baggingrnet-0.0.12.tar.gz", "has_sig": false, "md5_digest": "4c4bba735cccbeb4f0d369de752bf1ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6142805, "upload_time": "2019-08-10T23:42:54", "url": "https://files.pythonhosted.org/packages/25/e7/0de1749d6dfd19cadd61b3435cb10cccc66d2ac39a4d573bfe3018aa3860/baggingrnet-0.0.12.tar.gz" } ] }