Compare commits

...

71 Commits

Author SHA1 Message Date
Sheri Gilley
98d24243bd add cell metadata 2020-02-04 11:32:41 -06:00
Sheri Gilley
3ee5a4c2b2 Update train-within-notebook.ipynb 2020-02-04 11:06:41 -06:00
Sheri Gilley
fd60846887 Update train-within-notebook.ipynb 2020-02-04 09:13:56 -06:00
Harneet Virk
e895d7c2bf update samples - test (#758)
Co-authored-by: vizhur <vizhur@live.com>
2020-01-31 15:19:58 -05:00
Shané Winner
3588eb9665 Update index.md 2020-01-23 15:46:43 -08:00
Harneet Virk
a09e726f31 update samples - test (#748)
Co-authored-by: vizhur <vizhur@live.com>
2020-01-23 16:50:29 -05:00
Shané Winner
4fb1d9ee5b Update index.md 2020-01-22 11:38:24 -08:00
Harneet Virk
b05ff80e9d update samples from Release-169 as a part of 1.0.85 SDK release (#742)
Co-authored-by: vizhur <vizhur@live.com>
2020-01-21 18:00:15 -05:00
Shané Winner
512630472b Update index.md 2020-01-08 14:52:23 -08:00
vizhur
ae1337fe70 Merge pull request #724 from Azure/release_update/Release-167
update samples from Release-167 as a part of 1.0.83 SDK release
2020-01-06 15:38:25 -05:00
vizhur
c95f970dc8 update samples from Release-167 as a part of 1.0.83 SDK release 2020-01-06 20:16:21 +00:00
Shané Winner
9b9d112719 Update index.md 2019-12-24 07:40:48 -08:00
vizhur
fe8fcd4b48 Merge pull request #712 from Azure/release_update/Release-31
update samples - test
2019-12-23 20:28:02 -05:00
vizhur
296ae01587 update samples - test 2019-12-24 00:42:48 +00:00
Shané Winner
8f4efe15eb Update index.md 2019-12-10 09:05:23 -08:00
vizhur
d179080467 Merge pull request #690 from Azure/release_update/Release-163
update samples from Release-163 as a part of 1.0.79 SDK release
2019-12-09 15:41:03 -05:00
vizhur
0040644e7a update samples from Release-163 as a part of 1.0.79 SDK release 2019-12-09 20:09:30 +00:00
Shané Winner
8aa04307fb Update index.md 2019-12-03 10:24:18 -08:00
Shané Winner
a525da4488 Update index.md 2019-11-27 13:08:21 -08:00
Shané Winner
e149565a8a Merge pull request #679 from Azure/release_update/Release-30
update samples - test
2019-11-27 13:05:00 -08:00
vizhur
75610ec31c update samples - test 2019-11-27 21:02:21 +00:00
Shané Winner
0c2c450b6b Update index.md 2019-11-25 14:34:48 -08:00
Shané Winner
0d548eabff Merge pull request #677 from Azure/release_update/Release-29
update samples - test
2019-11-25 14:31:50 -08:00
vizhur
e4029801e6 update samples - test 2019-11-25 22:24:09 +00:00
Shané Winner
156974ee7b Update index.md 2019-11-25 11:42:53 -08:00
Shané Winner
1f05157d24 Merge pull request #676 from Azure/release_update/Release-160
update samples from Release-160 as a part of 1.0.76 SDK release
2019-11-25 11:39:27 -08:00
vizhur
2214ea8616 update samples from Release-160 as a part of 1.0.76 SDK release 2019-11-25 19:28:19 +00:00
Sheri Gilley
b54b2566de Merge pull request #667 from Azure/sdk-codetest
remove deprecated auto_prepare_environment
2019-11-21 09:25:15 -06:00
Sheri Gilley
57b0f701f8 remove deprecated auto_prepare_environment 2019-11-20 17:28:44 -06:00
Shané Winner
d658c85208 Update index.md 2019-11-12 14:59:15 -08:00
vizhur
a5f627a9b6 Merge pull request #655 from Azure/release_update/Release-28
update samples - test
2019-11-12 17:11:45 -05:00
vizhur
a8b08bdff0 update samples - test 2019-11-12 21:53:12 +00:00
Shané Winner
0dc3f34b86 Update index.md 2019-11-11 14:49:44 -08:00
Shané Winner
9ba7d5e5bb Update index.md 2019-11-11 14:48:05 -08:00
Shané Winner
c6ad2f8ec0 Merge pull request #654 from Azure/release_update/Release-158
update samples from Release-158 as a part of 1.0.74 SDK release
2019-11-11 10:25:18 -08:00
vizhur
33d6def8c3 update samples from Release-158 as a part of 1.0.74 SDK release 2019-11-11 16:57:02 +00:00
Shané Winner
69d4344dff Update index.md 2019-11-04 10:09:41 -08:00
Shané Winner
34aeec1439 Update index.md 2019-11-04 10:08:10 -08:00
Shané Winner
a9b9ebbf7d Merge pull request #641 from Azure/release_update/Release-27
update samples - test
2019-11-04 10:02:25 -08:00
vizhur
41fa508d53 update samples - test 2019-11-04 17:57:28 +00:00
Shané Winner
e1bfa98844 Update index.md 2019-11-04 08:41:15 -08:00
Shané Winner
2bcee9aa20 Update index.md 2019-11-04 08:40:29 -08:00
Shané Winner
37541b1071 Merge pull request #638 from Azure/release_update/Release-26
update samples - test
2019-11-04 08:31:59 -08:00
Shané Winner
4aff1310a7 Merge branch 'master' into release_update/Release-26 2019-11-04 08:31:37 -08:00
Shané Winner
51ecb7c54f Update index.md 2019-11-01 10:38:46 -07:00
Shané Winner
4e7fc7c82c Update index.md 2019-11-01 10:36:02 -07:00
Sheri Gilley
7db93bcb1d update comments 2019-01-22 17:18:19 -06:00
Sheri Gilley
fcbe925640 Merge branch 'sdk-codetest' of https://github.com/Azure/MachineLearningNotebooks into sdk-codetest 2019-01-07 13:06:12 -06:00
Sheri Gilley
bedfbd649e fix files 2019-01-07 13:06:02 -06:00
Sheri Gilley
fb760f648d Delete temp.py 2019-01-07 12:58:32 -06:00
Sheri Gilley
a9a0713d2f Delete donotupload.py 2019-01-07 12:57:58 -06:00
Sheri Gilley
c9d018b52c remove prepare environment 2019-01-07 12:56:54 -06:00
Sheri Gilley
53dbd0afcf hdi run config code 2019-01-07 11:29:40 -06:00
Sheri Gilley
e3a64b1f16 code for remote vm 2019-01-04 12:51:11 -06:00
Sheri Gilley
732eecfc7c update names 2019-01-04 12:45:28 -06:00
Sheri Gilley
6995c086ff change snippet names 2019-01-03 22:39:06 -06:00
Sheri Gilley
80bba4c7ae code for amlcompute section 2019-01-03 18:55:31 -06:00
Sheri Gilley
3c581b533f for local computer 2019-01-03 18:07:12 -06:00
Sheri Gilley
cc688caa4e change names 2019-01-03 08:53:49 -06:00
Sheri Gilley
da225e116e new code 2019-01-03 08:02:35 -06:00
Sheri Gilley
73c5d02880 Update quickstart.py 2018-12-17 12:23:03 -06:00
Sheri Gilley
e472b54f1b Update quickstart.py 2018-12-17 12:22:40 -06:00
Sheri Gilley
716c6d8bb1 add quickstart code 2018-11-06 11:27:58 -06:00
Sheri Gilley
23189c6f40 move folder 2018-10-17 16:24:46 -05:00
Sheri Gilley
361b57ed29 change all names to camelCase 2018-10-17 11:47:09 -05:00
Sheri Gilley
3f531fd211 try camelCase 2018-10-17 11:09:46 -05:00
Sheri Gilley
111f5e8d73 playing around 2018-10-17 10:46:33 -05:00
Sheri Gilley
96c59d5c2b testing 2018-10-17 09:56:04 -05:00
Sheri Gilley
ce3214b7c6 fix name 2018-10-16 17:33:24 -05:00
Sheri Gilley
53199d17de add delete 2018-10-16 16:54:08 -05:00
Sheri Gilley
54c883412c add test service 2018-10-16 16:49:41 -05:00
187 changed files with 7426 additions and 7975 deletions

View File

@@ -20,8 +20,8 @@ If you want to...
* ...try out and explore Azure ML, start with image classification tutorials: [Part 1 (Training)](./tutorials/img-classification-part1-training.ipynb) and [Part 2 (Deployment)](./tutorials/img-classification-part2-deploy.ipynb). * ...try out and explore Azure ML, start with image classification tutorials: [Part 1 (Training)](./tutorials/img-classification-part1-training.ipynb) and [Part 2 (Deployment)](./tutorials/img-classification-part2-deploy.ipynb).
* ...learn about experimentation and tracking run history, first [train within Notebook](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), then try [training on remote VM](./how-to-use-azureml/training/train-on-remote-vm/train-on-remote-vm.ipynb) and [using logging APIs](./how-to-use-azureml/training/logging-api/logging-api.ipynb). * ...learn about experimentation and tracking run history, first [train within Notebook](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), then try [training on remote VM](./how-to-use-azureml/training/train-on-remote-vm/train-on-remote-vm.ipynb) and [using logging APIs](./how-to-use-azureml/training/logging-api/logging-api.ipynb).
* ...train deep learning models at scale, first learn about [Machine Learning Compute](./how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb), and then try [distributed hyperparameter tuning](./how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) and [distributed training](./how-to-use-azureml/training-with-deep-learning/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb). * ...train deep learning models at scale, first learn about [Machine Learning Compute](./how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb), and then try [distributed hyperparameter tuning](./how-to-use-azureml/training-with-deep-learning/train-hyperparameter-tune-deploy-with-pytorch/train-hyperparameter-tune-deploy-with-pytorch.ipynb) and [distributed training](./how-to-use-azureml/training-with-deep-learning/distributed-pytorch-with-horovod/distributed-pytorch-with-horovod.ipynb).
* ...deploy models as a realtime scoring service, first learn the basics by [training within Notebook and deploying to Azure Container Instance](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), then learn how to [register and manage models, and create Docker images](./how-to-use-azureml/deployment/register-model-create-image-deploy-service/register-model-create-image-deploy-service.ipynb), and [production deploy models on Azure Kubernetes Cluster](./how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb). * ...deploy models as a realtime scoring service, first learn the basics by [training within Notebook and deploying to Azure Container Instance](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), then learn how to [production deploy models on Azure Kubernetes Cluster](./how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.ipynb).
* ...deploy models as a batch scoring service, first [train a model within Notebook](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), learn how to [register and manage models](./how-to-use-azureml/deployment/register-model-create-image-deploy-service/register-model-create-image-deploy-service.ipynb), then [create Machine Learning Compute for scoring compute](./how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb), and [use Machine Learning Pipelines to deploy your model](https://aka.ms/pl-batch-scoring). * ...deploy models as a batch scoring service, first [train a model within Notebook](./how-to-use-azureml/training/train-within-notebook/train-within-notebook.ipynb), then [create Machine Learning Compute for scoring compute](./how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb), and [use Machine Learning Pipelines to deploy your model](https://aka.ms/pl-batch-scoring).
* ...monitor your deployed models, learn about using [App Insights](./how-to-use-azureml/deployment/enable-app-insights-in-production-service/enable-app-insights-in-production-service.ipynb). * ...monitor your deployed models, learn about using [App Insights](./how-to-use-azureml/deployment/enable-app-insights-in-production-service/enable-app-insights-in-production-service.ipynb).
## Tutorials ## Tutorials

View File

@@ -103,7 +103,7 @@
"source": [ "source": [
"import azureml.core\n", "import azureml.core\n",
"\n", "\n",
"print(\"This notebook was created using version 1.0.72 of the Azure ML SDK\")\n", "print(\"This notebook was created using version 1.0.85 of the Azure ML SDK\")\n",
"print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")" "print(\"You are currently using version\", azureml.core.VERSION, \"of the Azure ML SDK\")"
] ]
}, },

View File

@@ -9,7 +9,6 @@ As a pre-requisite, run the [configuration Notebook](../configuration.ipynb) not
* [train-on-amlcompute](./training/train-on-amlcompute): Use a 1-n node Azure ML managed compute cluster for remote runs on Azure CPU or GPU infrastructure. * [train-on-amlcompute](./training/train-on-amlcompute): Use a 1-n node Azure ML managed compute cluster for remote runs on Azure CPU or GPU infrastructure.
* [train-on-remote-vm](./training/train-on-remote-vm): Use Data Science Virtual Machine as a target for remote runs. * [train-on-remote-vm](./training/train-on-remote-vm): Use Data Science Virtual Machine as a target for remote runs.
* [logging-api](./track-and-monitor-experiments/logging-api): Learn about the details of logging metrics to run history. * [logging-api](./track-and-monitor-experiments/logging-api): Learn about the details of logging metrics to run history.
* [register-model-create-image-deploy-service](./deployment/register-model-create-image-deploy-service): Learn about the details of model management.
* [production-deploy-to-aks](./deployment/production-deploy-to-aks) Deploy a model to production at scale on Azure Kubernetes Service. * [production-deploy-to-aks](./deployment/production-deploy-to-aks) Deploy a model to production at scale on Azure Kubernetes Service.
* [enable-app-insights-in-production-service](./deployment/enable-app-insights-in-production-service) Learn how to use App Insights with production web service. * [enable-app-insights-in-production-service](./deployment/enable-app-insights-in-production-service) Learn how to use App Insights with production web service.

View File

@@ -154,6 +154,12 @@ jupyter notebook
- [auto-ml-continuous-retraining.ipynb](continuous-retraining/auto-ml-continuous-retraining.ipynb) - [auto-ml-continuous-retraining.ipynb](continuous-retraining/auto-ml-continuous-retraining.ipynb)
- Continous retraining using Pipelines and Time-Series TabularDataset - Continous retraining using Pipelines and Time-Series TabularDataset
- [auto-ml-classification-text-dnn.ipynb](classification-text-dnn/auto-ml-classification-text-dnn.ipynb)
- Classification with text data using deep learning in AutoML
- AutoML highlights here include using deep neural networks (DNNs) to create embedded features from text data.
- Depending on the compute cluster the user provides, AutoML tried out Bidirectional Encoder Representations from Transformers (BERT) when a GPU compute is used.
- Bidirectional Long-Short Term neural network (BiLSTM) when a CPU compute is used, thereby optimizing the choice of DNN for the uesr's setup.
<a name="documentation"></a> <a name="documentation"></a>
See [Configure automated machine learning experiments](https://docs.microsoft.com/azure/machine-learning/service/how-to-configure-auto-train) to learn how more about the the settings and features available for automated machine learning experiments. See [Configure automated machine learning experiments](https://docs.microsoft.com/azure/machine-learning/service/how-to-configure-auto-train) to learn how more about the the settings and features available for automated machine learning experiments.
@@ -191,6 +197,17 @@ If automl_setup_linux.sh fails on Ubuntu Linux with the error: `unable to execut
4) Check that the region is one of the supported regions: `eastus2`, `eastus`, `westcentralus`, `southeastasia`, `westeurope`, `australiaeast`, `westus2`, `southcentralus` 4) Check that the region is one of the supported regions: `eastus2`, `eastus`, `westcentralus`, `southeastasia`, `westeurope`, `australiaeast`, `westus2`, `southcentralus`
5) Check that you have access to the region using the Azure Portal. 5) Check that you have access to the region using the Azure Portal.
## import AutoMLConfig fails after upgrade from before 1.0.76 to 1.0.76 or later
There were package changes in automated machine learning version 1.0.76, which require the previous version to be uninstalled before upgrading to the new version.
If you have manually upgraded from a version of automated machine learning before 1.0.76 to 1.0.76 or later, you may get the error:
`ImportError: cannot import name 'AutoMLConfig'`
This can be resolved by running:
`pip uninstall azureml-train-automl` and then
`pip install azureml-train-automl`
The automl_setup.cmd script does this automatically.
## workspace.from_config fails ## workspace.from_config fails
If the call `ws = Workspace.from_config()` fails: If the call `ws = Workspace.from_config()` fails:
1) Make sure that you have run the `configuration.ipynb` notebook successfully. 1) Make sure that you have run the `configuration.ipynb` notebook successfully.

View File

@@ -2,7 +2,7 @@ name: azure_automl
dependencies: dependencies:
# The python interpreter version. # The python interpreter version.
# Currently Azure ML only supports 3.5.2 and later. # Currently Azure ML only supports 3.5.2 and later.
- pip - pip<=19.3.1
- python>=3.5.2,<3.6.8 - python>=3.5.2,<3.6.8
- nb_conda - nb_conda
- matplotlib==2.1.0 - matplotlib==2.1.0
@@ -13,8 +13,9 @@ dependencies:
- scikit-learn>=0.19.0,<=0.20.3 - scikit-learn>=0.19.0,<=0.20.3
- pandas>=0.22.0,<=0.23.4 - pandas>=0.22.0,<=0.23.4
- py-xgboost<=0.80 - py-xgboost<=0.80
- pyarrow>=0.11.0 - fbprophet==0.5
- conda-forge::fbprophet==0.5 - pytorch=1.1.0
- cudatoolkit=9.0
- pip: - pip:
# Required packages for AzureML execution, history, and data preparation. # Required packages for AzureML execution, history, and data preparation.
@@ -23,6 +24,14 @@ dependencies:
- azureml-train - azureml-train
- azureml-widgets - azureml-widgets
- azureml-explain-model - azureml-explain-model
- azureml-pipeline
- azureml-contrib-interpret - azureml-contrib-interpret
- pandas_ml - pytorch-transformers==1.0.0
- spacy==2.1.8
- joblib
- onnxruntime==1.0.0
- https://aka.ms/automl-resources/packages/en_core_web_sm-2.1.0.tar.gz
channels:
- conda-forge
- pytorch

View File

@@ -2,7 +2,7 @@ name: azure_automl
dependencies: dependencies:
# The python interpreter version. # The python interpreter version.
# Currently Azure ML only supports 3.5.2 and later. # Currently Azure ML only supports 3.5.2 and later.
- pip - pip<=19.3.1
- nomkl - nomkl
- python>=3.5.2,<3.6.8 - python>=3.5.2,<3.6.8
- nb_conda - nb_conda
@@ -14,8 +14,9 @@ dependencies:
- scikit-learn>=0.19.0,<=0.20.3 - scikit-learn>=0.19.0,<=0.20.3
- pandas>=0.22.0,<0.23.0 - pandas>=0.22.0,<0.23.0
- py-xgboost<=0.80 - py-xgboost<=0.80
- pyarrow>=0.11.0 - fbprophet==0.5
- conda-forge::fbprophet==0.5 - pytorch=1.1.0
- cudatoolkit=9.0
- pip: - pip:
# Required packages for AzureML execution, history, and data preparation. # Required packages for AzureML execution, history, and data preparation.
@@ -24,6 +25,14 @@ dependencies:
- azureml-train - azureml-train
- azureml-widgets - azureml-widgets
- azureml-explain-model - azureml-explain-model
- azureml-pipeline
- azureml-contrib-interpret - azureml-contrib-interpret
- pandas_ml - pytorch-transformers==1.0.0
- spacy==2.1.8
- joblib
- onnxruntime==1.0.0
- https://aka.ms/automl-resources/packages/en_core_web_sm-2.1.0.tar.gz
channels:
- conda-forge
- pytorch

View File

@@ -14,8 +14,9 @@ IF "%CONDA_EXE%"=="" GOTO CondaMissing
call conda activate %conda_env_name% 2>nul: call conda activate %conda_env_name% 2>nul:
if not errorlevel 1 ( if not errorlevel 1 (
echo Upgrading azureml-sdk[automl,notebooks,explain] in existing conda environment %conda_env_name% echo Upgrading existing conda environment %conda_env_name%
call pip install --upgrade azureml-sdk[automl,notebooks,explain] call pip uninstall azureml-train-automl -y -q
call conda env update --name %conda_env_name% --file %automl_env_file%
if errorlevel 1 goto ErrorExit if errorlevel 1 goto ErrorExit
) else ( ) else (
call conda env create -f %automl_env_file% -n %conda_env_name% call conda env create -f %automl_env_file% -n %conda_env_name%

View File

@@ -22,8 +22,9 @@ fi
if source activate $CONDA_ENV_NAME 2> /dev/null if source activate $CONDA_ENV_NAME 2> /dev/null
then then
echo "Upgrading azureml-sdk[automl,notebooks,explain] in existing conda environment" $CONDA_ENV_NAME echo "Upgrading existing conda environment" $CONDA_ENV_NAME
pip install --upgrade azureml-sdk[automl,notebooks,explain] && pip uninstall azureml-train-automl -y -q
conda env update --name $CONDA_ENV_NAME --file $AUTOML_ENV_FILE &&
jupyter nbextension uninstall --user --py azureml.widgets jupyter nbextension uninstall --user --py azureml.widgets
else else
conda env create -f $AUTOML_ENV_FILE -n $CONDA_ENV_NAME && conda env create -f $AUTOML_ENV_FILE -n $CONDA_ENV_NAME &&

View File

@@ -22,8 +22,9 @@ fi
if source activate $CONDA_ENV_NAME 2> /dev/null if source activate $CONDA_ENV_NAME 2> /dev/null
then then
echo "Upgrading azureml-sdk[automl,notebooks,explain] in existing conda environment" $CONDA_ENV_NAME echo "Upgrading existing conda environment" $CONDA_ENV_NAME
pip install --upgrade azureml-sdk[automl,notebooks,explain] && pip uninstall azureml-train-automl -y -q
conda env update --name $CONDA_ENV_NAME --file $AUTOML_ENV_FILE &&
jupyter nbextension uninstall --user --py azureml.widgets jupyter nbextension uninstall --user --py azureml.widgets
else else
conda env create -f $AUTOML_ENV_FILE -n $CONDA_ENV_NAME && conda env create -f $AUTOML_ENV_FILE -n $CONDA_ENV_NAME &&

View File

@@ -92,6 +92,32 @@
"from azureml.explain.model._internal.explanation_client import ExplanationClient" "from azureml.explain.model._internal.explanation_client import ExplanationClient"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Accessing the Azure ML workspace requires authentication with Azure.\n",
"\n",
"The default authentication is interactive authentication using the default tenant. Executing the `ws = Workspace.from_config()` line in the cell below will prompt for authentication the first time that it is run.\n",
"\n",
"If you have multiple Azure tenants, you can specify the tenant by replacing the `ws = Workspace.from_config()` line in the cell below with the following:\n",
"\n",
"```\n",
"from azureml.core.authentication import InteractiveLoginAuthentication\n",
"auth = InteractiveLoginAuthentication(tenant_id = 'mytenantid')\n",
"ws = Workspace.from_config(auth = auth)\n",
"```\n",
"\n",
"If you need to run in an environment where interactive login is not possible, you can use Service Principal authentication by replacing the `ws = Workspace.from_config()` line in the cell below with the following:\n",
"\n",
"```\n",
"from azureml.core.authentication import ServicePrincipalAuthentication\n",
"auth = auth = ServicePrincipalAuthentication('mytenantid', 'myappid', 'mypassword')\n",
"ws = Workspace.from_config(auth = auth)\n",
"```\n",
"For more details, see [aka.ms/aml-notebook-auth](http://aka.ms/aml-notebook-auth)"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -285,9 +311,10 @@
"|**task**|classification or regression or forecasting|\n", "|**task**|classification or regression or forecasting|\n",
"|**primary_metric**|This is the metric that you want to optimize. Classification supports the following primary metrics: <br><i>accuracy</i><br><i>AUC_weighted</i><br><i>average_precision_score_weighted</i><br><i>norm_macro_recall</i><br><i>precision_score_weighted</i>|\n", "|**primary_metric**|This is the metric that you want to optimize. Classification supports the following primary metrics: <br><i>accuracy</i><br><i>AUC_weighted</i><br><i>average_precision_score_weighted</i><br><i>norm_macro_recall</i><br><i>precision_score_weighted</i>|\n",
"|**iteration_timeout_minutes**|Time limit in minutes for each iteration.|\n", "|**iteration_timeout_minutes**|Time limit in minutes for each iteration.|\n",
"|**blacklist_models** or **whitelist_models** |*List* of *strings* indicating machine learning algorithms for AutoML to avoid in this run.<br><br> Allowed values for **Classification**<br><i>LogisticRegression</i><br><i>SGD</i><br><i>MultinomialNaiveBayes</i><br><i>BernoulliNaiveBayes</i><br><i>SVM</i><br><i>LinearSVM</i><br><i>KNN</i><br><i>DecisionTree</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>GradientBoosting</i><br><i>TensorFlowDNN</i><br><i>TensorFlowLinearClassifier</i><br><br>Allowed values for **Regression**<br><i>ElasticNet</i><br><i>GradientBoosting</i><br><i>DecisionTree</i><br><i>KNN</i><br><i>LassoLars</i><br><i>SGD</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>TensorFlowLinearRegressor</i><br><i>TensorFlowDNN</i><br><br>Allowed values for **Forecasting**<br><i>ElasticNet</i><br><i>GradientBoosting</i><br><i>DecisionTree</i><br><i>KNN</i><br><i>LassoLars</i><br><i>SGD</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>TensorFlowLinearRegressor</i><br><i>TensorFlowDNN</i><br><i>Arima</i><br><i>Prophet</i>|\n", "|**blacklist_models** | *List* of *strings* indicating machine learning algorithms for AutoML to avoid in this run. <br><br> Allowed values for **Classification**<br><i>LogisticRegression</i><br><i>SGD</i><br><i>MultinomialNaiveBayes</i><br><i>BernoulliNaiveBayes</i><br><i>SVM</i><br><i>LinearSVM</i><br><i>KNN</i><br><i>DecisionTree</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>GradientBoosting</i><br><i>TensorFlowDNN</i><br><i>TensorFlowLinearClassifier</i><br><br>Allowed values for **Regression**<br><i>ElasticNet</i><br><i>GradientBoosting</i><br><i>DecisionTree</i><br><i>KNN</i><br><i>LassoLars</i><br><i>SGD</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>TensorFlowLinearRegressor</i><br><i>TensorFlowDNN</i><br><br>Allowed values for **Forecasting**<br><i>ElasticNet</i><br><i>GradientBoosting</i><br><i>DecisionTree</i><br><i>KNN</i><br><i>LassoLars</i><br><i>SGD</i><br><i>RandomForest</i><br><i>ExtremeRandomTrees</i><br><i>LightGBM</i><br><i>TensorFlowLinearRegressor</i><br><i>TensorFlowDNN</i><br><i>Arima</i><br><i>Prophet</i>|\n",
"| **whitelist_models** | *List* of *strings* indicating machine learning algorithms for AutoML to use in this run. Same values listed above for **blacklist_models** allowed for **whitelist_models**.|\n",
"|**experiment_exit_score**| Value indicating the target for *primary_metric*. <br>Once the target is surpassed the run terminates.|\n", "|**experiment_exit_score**| Value indicating the target for *primary_metric*. <br>Once the target is surpassed the run terminates.|\n",
"|**experiment_timeout_minutes**| Maximum amount of time in minutes that all iterations combined can take before the experiment terminates.|\n", "|**experiment_timeout_hours**| Maximum amount of time in hours that all iterations combined can take before the experiment terminates.|\n",
"|**enable_early_stopping**| Flag to enble early termination if the score is not improving in the short term.|\n", "|**enable_early_stopping**| Flag to enble early termination if the score is not improving in the short term.|\n",
"|**featurization**| 'auto' / 'off' Indicator for whether featurization step should be done automatically or not. Note: If the input data is sparse, featurization cannot be turned on.|\n", "|**featurization**| 'auto' / 'off' Indicator for whether featurization step should be done automatically or not. Note: If the input data is sparse, featurization cannot be turned on.|\n",
"|**n_cross_validations**|Number of cross validation splits.|\n", "|**n_cross_validations**|Number of cross validation splits.|\n",
@@ -305,7 +332,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"automl_settings = {\n", "automl_settings = {\n",
" \"experiment_timeout_minutes\" : 20,\n", " \"experiment_timeout_hours\" : 0.3,\n",
" \"enable_early_stopping\" : True,\n", " \"enable_early_stopping\" : True,\n",
" \"iteration_timeout_minutes\": 5,\n", " \"iteration_timeout_minutes\": 5,\n",
" \"max_concurrent_iterations\": 4,\n", " \"max_concurrent_iterations\": 4,\n",
@@ -334,8 +361,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Call the `submit` method on the experiment object and pass the run configuration. Execution of local runs is synchronous. Depending on the data and the number of iterations this can run for a while.\n", "Call the `submit` method on the experiment object and pass the run configuration. Execution of local runs is synchronous. Depending on the data and the number of iterations this can run for a while."
"In this example, we specify `show_output = True` to print currently running iterations to the console."
] ]
}, },
{ {
@@ -382,6 +408,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Wait for the remote run to complete\n",
"remote_run.wait_for_completion()" "remote_run.wait_for_completion()"
] ]
}, },
@@ -463,8 +490,31 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Retrieve the Best Model's explanation\n", "### Retrieve the Best Model's explanation\n",
"Retrieve the explanation from the best_run which includes explanations for engineered features and raw features.\n", "Retrieve the explanation from the best_run which includes explanations for engineered features and raw features. Make sure that the run for generating explanations for the best model is completed."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Wait for the best model explanation run to complete\n",
"from azureml.train.automl.run import AutoMLRun\n",
"model_explainability_run_id = remote_run.get_properties().get('ModelExplainRunId')\n",
"print(model_explainability_run_id)\n",
"if model_explainability_run_id is not None:\n",
" model_explainability_run = AutoMLRun(experiment=experiment, run_id=model_explainability_run_id)\n",
" model_explainability_run.wait_for_completion()\n",
"\n", "\n",
"# Get the best run object\n",
"best_run, fitted_model = remote_run.get_output()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Download engineered feature importance from artifact store\n", "#### Download engineered feature importance from artifact store\n",
"You can use ExplanationClient to download the engineered feature explanations from the artifact store of the best_run." "You can use ExplanationClient to download the engineered feature explanations from the artifact store of the best_run."
] ]
@@ -475,13 +525,32 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"best_run, fitted_model = remote_run.get_output()\n",
"client = ExplanationClient.from_run(best_run)\n", "client = ExplanationClient.from_run(best_run)\n",
"engineered_explanations = client.download_model_explanation(raw=False)\n", "engineered_explanations = client.download_model_explanation(raw=False)\n",
"exp_data = engineered_explanations.get_feature_importance_dict()\n", "exp_data = engineered_explanations.get_feature_importance_dict()\n",
"exp_data" "exp_data"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Download raw feature importance from artifact store\n",
"You can use ExplanationClient to download the raw feature explanations from the artifact store of the best_run."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"client = ExplanationClient.from_run(best_run)\n",
"engineered_explanations = client.download_model_explanation(raw=True)\n",
"exp_data = engineered_explanations.get_feature_importance_dict()\n",
"exp_data"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
@@ -515,7 +584,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.automl.core.onnx_convert import OnnxConverter\n", "from azureml.automl.runtime.onnx_convert import OnnxConverter\n",
"onnx_fl_path = \"./best_model.onnx\"\n", "onnx_fl_path = \"./best_model.onnx\"\n",
"OnnxConverter.save_onnx_model(onnx_mdl, onnx_fl_path)" "OnnxConverter.save_onnx_model(onnx_mdl, onnx_fl_path)"
] ]
@@ -527,15 +596,6 @@
"### Predict with the ONNX model, using onnxruntime package" "### Predict with the ONNX model, using onnxruntime package"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_df = test_dataset.to_pandas_dataframe()"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -552,12 +612,8 @@
"else:\n", "else:\n",
" python_version_compatible = False\n", " python_version_compatible = False\n",
"\n", "\n",
"try:\n",
"import onnxruntime\n", "import onnxruntime\n",
" from azureml.automl.core.onnx_convert import OnnxInferenceHelper \n", "from azureml.automl.runtime.onnx_convert import OnnxInferenceHelper\n",
" onnxrt_present = True\n",
"except ImportError:\n",
" onnxrt_present = False\n",
"\n", "\n",
"def get_onnx_res(run):\n", "def get_onnx_res(run):\n",
" res_path = 'onnx_resource.json'\n", " res_path = 'onnx_resource.json'\n",
@@ -566,7 +622,8 @@
" onnx_res = json.load(f)\n", " onnx_res = json.load(f)\n",
" return onnx_res\n", " return onnx_res\n",
"\n", "\n",
"if onnxrt_present and python_version_compatible: \n", "if python_version_compatible:\n",
" test_df = test_dataset.to_pandas_dataframe()\n",
" mdl_bytes = onnx_mdl.SerializeToString()\n", " mdl_bytes = onnx_mdl.SerializeToString()\n",
" onnx_res = get_onnx_res(best_run)\n", " onnx_res = get_onnx_res(best_run)\n",
"\n", "\n",
@@ -576,10 +633,7 @@
" print(pred_onnx)\n", " print(pred_onnx)\n",
" print(pred_prob_onnx)\n", " print(pred_prob_onnx)\n",
"else:\n", "else:\n",
" if not python_version_compatible:\n", " print('Please use Python version 3.6 or 3.7 to run the inference helper.')"
" print('Please use Python version 3.6 or 3.7 to run the inference helper.') \n",
" if not onnxrt_present:\n",
" print('Please install the onnxruntime package to do the prediction with ONNX model.')"
] ]
}, },
{ {
@@ -613,20 +667,6 @@
"best_run, fitted_model = remote_run.get_output()" "best_run, fitted_model = remote_run.get_output()"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import shutil\n",
"\n",
"sript_folder = os.path.join(os.getcwd(), 'inference')\n",
"project_folder = '/inference'\n",
"os.makedirs(project_folder, exist_ok=True)"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -680,10 +720,10 @@
"from azureml.core.webservice import AciWebservice\n", "from azureml.core.webservice import AciWebservice\n",
"from azureml.core.webservice import Webservice\n", "from azureml.core.webservice import Webservice\n",
"from azureml.core.model import Model\n", "from azureml.core.model import Model\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime = \"python\", \n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=conda_env_file_name)\n",
" entry_script = script_file_name,\n", "inference_config = InferenceConfig(entry_script=script_file_name, environment=myenv)\n",
" conda_file = conda_env_file_name)\n",
"\n", "\n",
"aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n", "aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n",
" memory_gb = 1, \n", " memory_gb = 1, \n",
@@ -826,13 +866,6 @@
"\n", "\n",
"[Moro et al., 2014] S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to Predict the Success of Bank Telemarketing. Decision Support Systems, Elsevier, 62:22-31, June 2014" "[Moro et al., 2014] S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to Predict the Success of Bank Telemarketing. Decision Support Systems, Elsevier, 62:22-31, June 2014"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {

View File

@@ -2,12 +2,10 @@ name: auto-ml-classification-bank-marketing-all-features
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- interpret
- azureml-defaults
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - interpret
- onnxruntime - onnxruntime==1.0.0
- azureml-explain-model - azureml-explain-model
- azureml-contrib-interpret - azureml-contrib-interpret

View File

@@ -210,10 +210,9 @@
"automl_settings = {\n", "automl_settings = {\n",
" \"n_cross_validations\": 3,\n", " \"n_cross_validations\": 3,\n",
" \"primary_metric\": 'average_precision_score_weighted',\n", " \"primary_metric\": 'average_precision_score_weighted',\n",
" \"preprocess\": True,\n",
" \"enable_early_stopping\": True,\n", " \"enable_early_stopping\": True,\n",
" \"max_concurrent_iterations\": 2, # This is a limit for testing purpose, please increase it as per cluster size\n", " \"max_concurrent_iterations\": 2, # This is a limit for testing purpose, please increase it as per cluster size\n",
" \"experiment_timeout_minutes\": 10, # This is a time limit for testing purposes, remove it for real use cases, this will drastically limit ablity to find the best model possible\n", " \"experiment_timeout_hours\": 0.2, # This is a time limit for testing purposes, remove it for real use cases, this will drastically limit ablity to find the best model possible\n",
" \"verbosity\": logging.INFO,\n", " \"verbosity\": logging.INFO,\n",
"}\n", "}\n",
"\n", "\n",
@@ -230,8 +229,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Call the `submit` method on the experiment object and pass the run configuration. Depending on the data and the number of iterations this can run for a while.\n", "Call the `submit` method on the experiment object and pass the run configuration. Depending on the data and the number of iterations this can run for a while."
"In this example, we specify `show_output = True` to print currently running iterations to the console."
] ]
}, },
{ {
@@ -306,7 +304,7 @@
"source": [ "source": [
"#### Explain model\n", "#### Explain model\n",
"\n", "\n",
"Automated ML models can be explained and visualized using the SDK Explainability library. [Learn how to use the explainer](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/model-explanation-remote-amlcompute/auto-ml-model-explanations-remote-compute.ipynb)." "Automated ML models can be explained and visualized using the SDK Explainability library. "
] ]
}, },
{ {
@@ -335,17 +333,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"#### Print the properties of the model\n", "#### Print the properties of the model\n",
"The fitted_model is a python object and you can read the different properties of the object.\n", "The fitted_model is a python object and you can read the different properties of the object.\n"
"See *Print the properties of the model* section in [this sample notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy\n",
"\n",
"To deploy the model into a web service endpoint, see _Deploy_ section in [this sample notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb)"
] ]
}, },
{ {
@@ -452,7 +440,7 @@
"AML Compute" "AML Compute"
], ],
"datasets": [ "datasets": [
"creditcard" "Creditcard"
], ],
"deployment": [ "deployment": [
"None" "None"

View File

@@ -2,10 +2,8 @@ name: auto-ml-classification-credit-card-fraud
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- interpret
- azureml-defaults
- azureml-explain-model
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - interpret
- azureml-explain-model

View File

@@ -0,0 +1,560 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/automated-machine-learning/classification-text-dnn/auto-ml-classification-text-dnn.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Automated Machine Learning\n",
"_**Text Classification Using Deep Learning**_\n",
"\n",
"## Contents\n",
"1. [Introduction](#Introduction)\n",
"1. [Setup](#Setup)\n",
"1. [Data](#Data)\n",
"1. [Train](#Train)\n",
"1. [Evaluate](#Evaluate)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"This notebook demonstrates classification with text data using deep learning in AutoML.\n",
"\n",
"AutoML highlights here include using deep neural networks (DNNs) to create embedded features from text data. Depending on the compute cluster the user provides, AutoML tried out Bidirectional Encoder Representations from Transformers (BERT) when a GPU compute is used, and Bidirectional Long-Short Term neural network (BiLSTM) when a CPU compute is used, thereby optimizing the choice of DNN for the uesr's setup.\n",
"\n",
"Make sure you have executed the [configuration](../../../configuration.ipynb) before running this notebook.\n",
"\n",
"An Enterprise workspace is required for this notebook. To learn more about creating an Enterprise workspace or upgrading to an Enterprise workspace from the Azure portal, please visit our [Workspace page](https://docs.microsoft.com/azure/machine-learning/service/concept-workspace#upgrade).\n",
"\n",
"Notebook synopsis:\n",
"1. Creating an Experiment in an existing Workspace\n",
"2. Configuration and remote run of AutoML for a text dataset (20 Newsgroups dataset from scikit-learn) for classification\n",
"3. Evaluating the final model on a test set\n",
"4. Deploying the model on ACI"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"import os\n",
"import shutil\n",
"\n",
"import pandas as pd\n",
"\n",
"import azureml.core\n",
"from azureml.core.experiment import Experiment\n",
"from azureml.core.workspace import Workspace\n",
"from azureml.core.dataset import Dataset\n",
"from azureml.core.compute import AmlCompute\n",
"from azureml.core.compute import ComputeTarget\n",
"from azureml.core.run import Run\n",
"from azureml.widgets import RunDetails\n",
"from azureml.core.model import Model \n",
"from helper import run_inference, get_result_df\n",
"from azureml.train.automl import AutoMLConfig\n",
"from sklearn.datasets import fetch_20newsgroups"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As part of the setup you have already created a <b>Workspace</b>. To run AutoML, you also need to create an <b>Experiment</b>. An Experiment corresponds to a prediction problem you are trying to solve, while a Run corresponds to a specific approach to the problem."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ws = Workspace.from_config()\n",
"\n",
"# Choose an experiment name.\n",
"experiment_name = 'automl-classification-text-dnn'\n",
"\n",
"experiment = Experiment(ws, experiment_name)\n",
"\n",
"output = {}\n",
"output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace Name'] = ws.name\n",
"output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n",
"output['Experiment Name'] = experiment.name\n",
"pd.set_option('display.max_colwidth', -1)\n",
"outputDf = pd.DataFrame(data = output, index = [''])\n",
"outputDf.T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Set up a compute cluster\n",
"This section uses a user-provided compute cluster (named \"cpu-cluster\" in this example). If a cluster with this name does not exist in the user's workspace, the below code will create a new cluster. You can choose the parameters of the cluster as mentioned in the comments.\n",
"\n",
"Whether you provide/select a CPU or GPU cluster, AutoML will choose the appropriate DNN for that setup - BiLSTM or BERT text featurizer will be included in the candidate featurizers on CPU and GPU respectively."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"cpu-dnntext\"\n",
"\n",
"found = False\n",
"# Check if this compute target already exists in the workspace.\n",
"cts = ws.compute_targets\n",
"if amlcompute_cluster_name in cts and cts[amlcompute_cluster_name].type == 'AmlCompute':\n",
" found = True\n",
" print('Found existing compute target.')\n",
" compute_target = cts[amlcompute_cluster_name]\n",
"\n",
"if not found:\n",
" print('Creating a new compute target...')\n",
" provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # CPU for BiLSTM\n",
" # To use BERT, select a GPU such as \"STANDARD_NC6\" \n",
" # or similar GPU option\n",
" # available in your workspace\n",
" max_nodes = 6)\n",
"\n",
" # Create the cluster\n",
" compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n",
"\n",
"print('Checking cluster status...')\n",
"# Can poll for a minimum number of nodes and for a specific timeout.\n",
"# If no min_node_count is provided, it will use the scale settings for the cluster.\n",
"compute_target.wait_for_completion(show_output = True, min_node_count = None, timeout_in_minutes = 20)\n",
"\n",
"# For a more detailed view of current AmlCompute status, use get_status()."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get data\n",
"For this notebook we will use 20 Newsgroups data from scikit-learn. We filter the data to contain four classes and take a sample as training data. Please note that for accuracy improvement, more data is needed. For this notebook we provide a small-data example so that you can use this template to use with your larger sized data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data_dir = \"text-dnn-data\" # Local directory to store data\n",
"blobstore_datadir = data_dir # Blob store directory to store data in\n",
"target_column_name = 'y'\n",
"feature_column_name = 'X'\n",
"\n",
"def get_20newsgroups_data():\n",
" '''Fetches 20 Newsgroups data from scikit-learn\n",
" Returns them in form of pandas dataframes\n",
" '''\n",
" remove = ('headers', 'footers', 'quotes')\n",
" categories = [\n",
" 'alt.atheism',\n",
" 'talk.religion.misc',\n",
" 'comp.graphics',\n",
" 'sci.space',\n",
" ]\n",
"\n",
" data = fetch_20newsgroups(subset = 'train', categories = categories,\n",
" shuffle = True, random_state = 42,\n",
" remove = remove)\n",
" data = pd.DataFrame({feature_column_name: data.data, target_column_name: data.target})\n",
"\n",
" data_train = data[:200]\n",
" data_test = data[200:300] \n",
"\n",
" data_train = remove_blanks_20news(data_train, feature_column_name, target_column_name)\n",
" data_test = remove_blanks_20news(data_test, feature_column_name, target_column_name)\n",
" \n",
" return data_train, data_test\n",
" \n",
"def remove_blanks_20news(data, feature_column_name, target_column_name):\n",
" \n",
" data[feature_column_name] = data[feature_column_name].replace(r'\\n', ' ', regex=True).apply(lambda x: x.strip())\n",
" data = data[data[feature_column_name] != '']\n",
" \n",
" return data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Featch data and upload to datastore for use in training"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data_train, data_test = get_20newsgroups_data()\n",
"\n",
"if not os.path.isdir(data_dir):\n",
" os.mkdir(data_dir)\n",
" \n",
"train_data_fname = data_dir + '/train_data.csv'\n",
"test_data_fname = data_dir + '/test_data.csv'\n",
"\n",
"data_train.to_csv(train_data_fname, index=False)\n",
"data_test.to_csv(test_data_fname, index=False)\n",
"\n",
"datastore = ws.get_default_datastore()\n",
"datastore.upload(src_dir=data_dir, target_path=blobstore_datadir,\n",
" overwrite=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"train_dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, blobstore_datadir + '/train_data.csv')])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prepare AutoML run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This step requires an Enterprise workspace to gain access to this feature. To learn more about creating an Enterprise workspace or upgrading to an Enterprise workspace from the Azure portal, please visit our [Workspace page](https://docs.microsoft.com/azure/machine-learning/service/concept-workspace#upgrade)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_settings = {\n",
" \"experiment_timeout_minutes\": 20,\n",
" \"primary_metric\": 'accuracy',\n",
" \"max_concurrent_iterations\": 4, \n",
" \"max_cores_per_iteration\": -1,\n",
" \"enable_dnn\": True,\n",
" \"enable_early_stopping\": True,\n",
" \"validation_size\": 0.3,\n",
" \"verbosity\": logging.INFO,\n",
" \"enable_voting_ensemble\": False,\n",
" \"enable_stack_ensemble\": False,\n",
"}\n",
"\n",
"automl_config = AutoMLConfig(task = 'classification',\n",
" debug_log = 'automl_errors.log',\n",
" compute_target=compute_target,\n",
" training_data=train_dataset,\n",
" label_column_name=target_column_name,\n",
" **automl_settings\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Submit AutoML Run"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_run = experiment.submit(automl_config, show_output=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Displaying the run objects gives you links to the visual tools in the Azure Portal. Go try them!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Retrieve the Best Model\n",
"Below we select the best model pipeline from our iterations, use it to test on test data on the same compute cluster."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can test the model locally to get a feel of the input/output. This step may require additional package installations such as pytorch."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#best_run, fitted_model = automl_run.get_output()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploying the model\n",
"We now use the best fitted model from the AutoML Run to make predictions on the test set. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Get results stats, extract the best model from AutoML run, download and register the resultant best model"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"summary_df = get_result_df(automl_run)\n",
"best_dnn_run_id = summary_df['run_id'].iloc[0]\n",
"best_dnn_run = Run(experiment, best_dnn_run_id)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"model_dir = 'Model' # Local folder where the model will be stored temporarily\n",
"if not os.path.isdir(model_dir):\n",
" os.mkdir(model_dir)\n",
" \n",
"best_dnn_run.download_file('outputs/model.pkl', model_dir + '/model.pkl')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Register the model in your Azure Machine Learning Workspace. If you previously registered a model, please make sure to delete it so as to replace it with this new model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Register the model\n",
"model_name = 'textDNN-20News'\n",
"model = Model.register(model_path = model_dir + '/model.pkl',\n",
" model_name = model_name,\n",
" tags=None,\n",
" workspace=ws)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Evaluate on Test Data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now use the best fitted model from the AutoML Run to make predictions on the test set. \n",
"\n",
"Test set schema should match that of the training set."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, blobstore_datadir + '/test_data.csv')])\n",
"\n",
"# preview the first 3 rows of the dataset\n",
"test_dataset.take(3).to_pandas_dataframe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_experiment = Experiment(ws, experiment_name + \"_test\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"script_folder = os.path.join(os.getcwd(), 'inference')\n",
"os.makedirs(script_folder, exist_ok=True)\n",
"shutil.copy2('infer.py', script_folder)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_run = run_inference(test_experiment, compute_target, script_folder, best_dnn_run, test_dataset,\n",
" target_column_name, model_name)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Display computed metrics"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_run"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"RunDetails(test_run).show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"test_run.wait_for_completion()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pd.Series(test_run.get_metrics())"
]
}
],
"metadata": {
"authors": [
{
"name": "anshirga"
}
],
"compute": [
"AML Compute"
],
"datasets": [
"None"
],
"deployment": [
"None"
],
"exclude_from_index": false,
"framework": [
"None"
],
"friendly_name": "DNN Text Featurization",
"index_order": 2,
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
},
"tags": [
"None"
],
"task": "Text featurization using DNNs for classification"
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -0,0 +1,8 @@
name: auto-ml-classification-text-dnn
dependencies:
- pip:
- azureml-sdk
- azureml-train-automl
- azureml-widgets
- matplotlib
- azurmel-train

View File

@@ -0,0 +1,60 @@
import pandas as pd
from azureml.core import Environment
from azureml.core.conda_dependencies import CondaDependencies
from azureml.train.estimator import Estimator
from azureml.core.run import Run
def run_inference(test_experiment, compute_target, script_folder, train_run,
test_dataset, target_column_name, model_name):
train_run.download_file('outputs/conda_env_v_1_0_0.yml',
'inference/condafile.yml')
inference_env = Environment("myenv")
inference_env.docker.enabled = True
inference_env.python.conda_dependencies = CondaDependencies(
conda_dependencies_file_path='inference/condafile.yml')
est = Estimator(source_directory=script_folder,
entry_script='infer.py',
script_params={
'--target_column_name': target_column_name,
'--model_name': model_name
},
inputs=[test_dataset.as_named_input('test_data')],
compute_target=compute_target,
environment_definition=inference_env)
run = test_experiment.submit(
est, tags={
'training_run_id': train_run.id,
'run_algorithm': train_run.properties['run_algorithm'],
'valid_score': train_run.properties['score'],
'primary_metric': train_run.properties['primary_metric']
})
run.log("run_algorithm", run.tags['run_algorithm'])
return run
def get_result_df(remote_run):
children = list(remote_run.get_children(recursive=True))
summary_df = pd.DataFrame(index=['run_id', 'run_algorithm',
'primary_metric', 'Score'])
goal_minimize = False
for run in children:
if('run_algorithm' in run.properties and 'score' in run.properties):
summary_df[run.id] = [run.id, run.properties['run_algorithm'],
run.properties['primary_metric'],
float(run.properties['score'])]
if('goal' in run.properties):
goal_minimize = run.properties['goal'].split('_')[-1] == 'min'
summary_df = summary_df.T.sort_values(
'Score',
ascending=goal_minimize).drop_duplicates(['run_algorithm'])
summary_df = summary_df.set_index('run_algorithm')
return summary_df

View File

@@ -0,0 +1,54 @@
import numpy as np
import argparse
from azureml.core import Run
from sklearn.externals import joblib
from azureml.automl.core._vendor.automl.client.core.common import metrics
from automl.client.core.common import constants
from azureml.core.model import Model
parser = argparse.ArgumentParser()
parser.add_argument(
'--target_column_name', type=str, dest='target_column_name',
help='Target Column Name')
parser.add_argument(
'--model_name', type=str, dest='model_name',
help='Name of registered model')
args = parser.parse_args()
target_column_name = args.target_column_name
model_name = args.model_name
print('args passed are: ')
print('Target column name: ', target_column_name)
print('Name of registered model: ', model_name)
model_path = Model.get_model_path(model_name)
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
run = Run.get_context()
# get input dataset by name
test_dataset = run.input_datasets['test_data']
X_test_df = test_dataset.drop_columns(columns=[target_column_name]) \
.to_pandas_dataframe()
y_test_df = test_dataset.with_timestamp_columns(None) \
.keep_columns(columns=[target_column_name]) \
.to_pandas_dataframe()
predicted = model.predict_proba(X_test_df)
# use automl metrics module
scores = metrics.compute_metrics_classification(
np.array(predicted),
np.array(y_test_df),
class_labels=model.classes_,
metrics=list(constants.Metric.SCALAR_CLASSIFICATION_SET)
)
print("scores:")
print(scores)
for key, value in scores.items():
run.log(key, value)

View File

@@ -210,7 +210,24 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Data Ingestion Pipeline \n", "## Data Ingestion Pipeline \n",
"For this demo, we will use NOAA weather data from [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/). You can replace this with your own dataset, or you can skip this pipeline if you already have a time-series based `TabularDataset`.\n", "For this demo, we will use NOAA weather data from [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/). You can replace this with your own dataset, or you can skip this pipeline if you already have a time-series based `TabularDataset`.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# The name and target column of the Dataset to create \n",
"dataset = \"NOAA-Weather-DS4\"\n",
"target_column_name = \"temperature\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n", "\n",
"### Upload Data Step\n", "### Upload Data Step\n",
"The data ingestion pipeline has a single step with a script to query the latest weather data and upload it to the blob store. During the first run, the script will create and register a time-series based `TabularDataset` with the past one week of weather data. For each subsequent run, the script will create a partition in the blob store by querying NOAA for new weather data since the last modified time of the dataset (`dataset.data_changed_time`) and creating a data.csv file." "The data ingestion pipeline has a single step with a script to query the latest weather data and upload it to the blob store. During the first run, the script will create and register a time-series based `TabularDataset` with the past one week of weather data. For each subsequent run, the script will create a partition in the blob store by querying NOAA for new weather data since the last modified time of the dataset (`dataset.data_changed_time`) and creating a data.csv file."
@@ -225,8 +242,6 @@
"from azureml.pipeline.core import Pipeline, PipelineParameter\n", "from azureml.pipeline.core import Pipeline, PipelineParameter\n",
"from azureml.pipeline.steps import PythonScriptStep\n", "from azureml.pipeline.steps import PythonScriptStep\n",
"\n", "\n",
"# The name of the Dataset to create \n",
"dataset = \"NOAA-Weather-DS4\"\n",
"ds_name = PipelineParameter(name=\"ds_name\", default_value=dataset)\n", "ds_name = PipelineParameter(name=\"ds_name\", default_value=dataset)\n",
"upload_data_step = PythonScriptStep(script_name=\"upload_weather_data.py\", \n", "upload_data_step = PythonScriptStep(script_name=\"upload_weather_data.py\", \n",
" allow_reuse=False,\n", " allow_reuse=False,\n",
@@ -272,7 +287,7 @@
"## Training Pipeline\n", "## Training Pipeline\n",
"### Prepare Training Data Step\n", "### Prepare Training Data Step\n",
"\n", "\n",
"Script to bring data into common X,y format. We need to set allow_reuse flag to False to allow the pipeline to run even when inputs don't change. We also need the name of the model to check the time the model was last trained." "Script to check if new data is available since the model was last trained. If no new data is available, we cancel the remaining pipeline steps. We need to set allow_reuse flag to False to allow the pipeline to run even when inputs don't change. We also need the name of the model to check the time the model was last trained."
] ]
}, },
{ {
@@ -283,11 +298,8 @@
"source": [ "source": [
"from azureml.pipeline.core import PipelineData\n", "from azureml.pipeline.core import PipelineData\n",
"\n", "\n",
"target_column = PipelineParameter(\"target_column\", default_value=\"y\")\n",
"# The model name with which to register the trained model in the workspace.\n", "# The model name with which to register the trained model in the workspace.\n",
"model_name = PipelineParameter(\"model_name\", default_value=\"y\")\n", "model_name = PipelineParameter(\"model_name\", default_value=\"noaaweatherds\")"
"output_x = PipelineData(\"output_x\", datastore=dstor)\n",
"output_y = PipelineData(\"output_y\", datastore=dstor)"
] ]
}, },
{ {
@@ -299,16 +311,23 @@
"data_prep_step = PythonScriptStep(script_name=\"check_data.py\", \n", "data_prep_step = PythonScriptStep(script_name=\"check_data.py\", \n",
" allow_reuse=False,\n", " allow_reuse=False,\n",
" name=\"check_data\",\n", " name=\"check_data\",\n",
" arguments=[\"--target_column\", target_column,\n", " arguments=[\"--ds_name\", ds_name,\n",
" \"--output_x\", output_x,\n",
" \"--output_y\", output_y,\n",
" \"--ds_name\", ds_name,\n",
" \"--model_name\", model_name],\n", " \"--model_name\", model_name],\n",
" outputs=[output_x, output_y], \n",
" compute_target=compute_target, \n", " compute_target=compute_target, \n",
" runconfig=conda_run_config)" " runconfig=conda_run_config)"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core import Dataset\n",
"train_ds = Dataset.get_by_name(ws, dataset)\n",
"train_ds = train_ds.drop_columns([\"partition_date\"])"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
@@ -323,14 +342,14 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.train.automl import AutoMLStep, AutoMLConfig\n", "from azureml.train.automl import AutoMLConfig\n",
"from azureml.train.automl import AutoMLStep\n",
"\n", "\n",
"automl_settings = {\n", "automl_settings = {\n",
" \"iteration_timeout_minutes\": 20,\n", " \"iteration_timeout_minutes\": 10,\n",
" \"experiment_timeout_minutes\": 30,\n", " \"experiment_timeout_hours\": 0.2,\n",
" \"n_cross_validations\": 3,\n", " \"n_cross_validations\": 3,\n",
" \"primary_metric\": 'r2_score',\n", " \"primary_metric\": 'r2_score',\n",
" \"preprocess\": True,\n",
" \"max_concurrent_iterations\": 3,\n", " \"max_concurrent_iterations\": 3,\n",
" \"max_cores_per_iteration\": -1,\n", " \"max_cores_per_iteration\": -1,\n",
" \"verbosity\": logging.INFO,\n", " \"verbosity\": logging.INFO,\n",
@@ -341,8 +360,8 @@
" debug_log = 'automl_errors.log',\n", " debug_log = 'automl_errors.log',\n",
" path = \".\",\n", " path = \".\",\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
" run_configuration=conda_run_config,\n", " training_data = train_ds,\n",
" data_script = \"get_data.py\",\n", " label_column_name = target_column_name,\n",
" **automl_settings\n", " **automl_settings\n",
" )" " )"
] ]
@@ -358,7 +377,7 @@
"metrics_output_name = 'metrics_output'\n", "metrics_output_name = 'metrics_output'\n",
"best_model_output_name = 'best_model_output'\n", "best_model_output_name = 'best_model_output'\n",
"\n", "\n",
"metirics_data = PipelineData(name='metrics_data',\n", "metrics_data = PipelineData(name='metrics_data',\n",
" datastore=dstor,\n", " datastore=dstor,\n",
" pipeline_output_name=metrics_output_name,\n", " pipeline_output_name=metrics_output_name,\n",
" training_output=TrainingOutput(type='Metrics'))\n", " training_output=TrainingOutput(type='Metrics'))\n",
@@ -377,8 +396,7 @@
"automl_step = AutoMLStep(\n", "automl_step = AutoMLStep(\n",
" name='automl_module',\n", " name='automl_module',\n",
" automl_config=automl_config,\n", " automl_config=automl_config,\n",
" inputs=[output_x, output_y],\n", " outputs=[metrics_data, model_data],\n",
" outputs=[metirics_data, model_data],\n",
" allow_reuse=False)" " allow_reuse=False)"
] ]
}, },
@@ -431,7 +449,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"training_pipeline_run = experiment.submit(training_pipeline, pipeline_parameters={\n", "training_pipeline_run = experiment.submit(training_pipeline, pipeline_parameters={\n",
" \"target_column\": \"temperature\", \"ds_name\": dataset, \"model_name\": \"noaaweatherds\"})" " \"ds_name\": dataset, \"model_name\": \"noaaweatherds\"})"
] ]
}, },
{ {
@@ -440,7 +458,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"training_pipeline_run.wait_for_completion()" "training_pipeline_run.wait_for_completion(show_output=False)"
] ]
}, },
{ {
@@ -474,7 +492,7 @@
"source": [ "source": [
"from azureml.pipeline.core import Schedule\n", "from azureml.pipeline.core import Schedule\n",
"schedule = Schedule.create(workspace=ws, name=\"RetrainingSchedule\",\n", "schedule = Schedule.create(workspace=ws, name=\"RetrainingSchedule\",\n",
" pipeline_parameters={\"target_column\": \"temperature\",\"ds_name\": dataset, \"model_name\": \"noaaweatherds\"},\n", " pipeline_parameters={\"ds_name\": dataset, \"model_name\": \"noaaweatherds\"},\n",
" pipeline_id=published_pipeline.id, \n", " pipeline_id=published_pipeline.id, \n",
" experiment_name=experiment_name, \n", " experiment_name=experiment_name, \n",
" datastore=dstor,\n", " datastore=dstor,\n",

View File

@@ -3,7 +3,6 @@ dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- azureml-train-automl - azureml-train-automl
- azureml-pipeline
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - azureml-pipeline

View File

@@ -15,32 +15,16 @@ if type(run) == _OfflineRun:
else: else:
ws = run.experiment.workspace ws = run.experiment.workspace
print("Check for new data.")
def write_output(df, path):
os.makedirs(path, exist_ok=True)
print("%s created" % path)
df.to_csv(path + "/part-00000", index=False)
print("Check for new data and prepare the data")
parser = argparse.ArgumentParser("split") parser = argparse.ArgumentParser("split")
parser.add_argument("--target_column", type=str, help="input split features")
parser.add_argument("--ds_name", help="input dataset name") parser.add_argument("--ds_name", help="input dataset name")
parser.add_argument("--model_name", help="name of the deployed model") parser.add_argument("--model_name", help="name of the deployed model")
parser.add_argument("--output_x", type=str,
help="output features")
parser.add_argument("--output_y", type=str,
help="output labels")
args = parser.parse_args() args = parser.parse_args()
print("Argument 1(ds_name): %s" % args.ds_name) print("Argument 1(ds_name): %s" % args.ds_name)
print("Argument 2(target_column): %s" % args.target_column) print("Argument 2(model_name): %s" % args.model_name)
print("Argument 3(model_name): %s" % args.model_name)
print("Argument 4(output_x): %s" % args.output_x)
print("Argument 5(output_y): %s" % args.output_y)
# Get the latest registered model # Get the latest registered model
try: try:
@@ -54,22 +38,9 @@ except Exception as e:
train_ds = Dataset.get_by_name(ws, args.ds_name) train_ds = Dataset.get_by_name(ws, args.ds_name)
dataset_changed_time = train_ds.data_changed_time dataset_changed_time = train_ds.data_changed_time
if dataset_changed_time > last_train_time: if not dataset_changed_time > last_train_time:
# New data is available since the model was last trained
print("Dataset was last updated on {0}. Retraining...".format(dataset_changed_time))
train_ds = train_ds.drop_columns(["partition_date"])
X_train = train_ds.drop_columns(
columns=[args.target_column]).to_pandas_dataframe()
y_train = train_ds.keep_columns(
columns=[args.target_column]).to_pandas_dataframe()
non_null = y_train[args.target_column].notnull()
y = y_train[non_null]
X = X_train[non_null]
if not (args.output_x is None and args.output_y is None):
write_output(X, args.output_x)
write_output(y, args.output_y)
else:
print("Cancelling run since there is no new data.") print("Cancelling run since there is no new data.")
run.parent.cancel() run.parent.cancel()
else:
# New data is available since the model was last trained
print("Dataset was last updated on {0}. Retraining...".format(dataset_changed_time))

View File

@@ -1,15 +0,0 @@
import os
import pandas as pd
def get_data():
print("In get_data")
print(os.environ['AZUREML_DATAREFERENCE_output_x'])
X_train = pd.read_csv(
os.environ['AZUREML_DATAREFERENCE_output_x'] + "/part-00000")
y_train = pd.read_csv(
os.environ['AZUREML_DATAREFERENCE_output_y'] + "/part-00000")
print(X_train.head(3))
return {"X": X_train.values, "y": y_train.values.flatten()}

View File

@@ -58,7 +58,7 @@ except Exception as e:
print(traceback.format_exc()) print(traceback.format_exc())
print("Dataset with name {0} not found, registering new dataset.".format(args.ds_name)) print("Dataset with name {0} not found, registering new dataset.".format(args.ds_name))
register_dataset = True register_dataset = True
end_time_last_slice = datetime.today() - relativedelta(weeks=1) end_time_last_slice = datetime.today() - relativedelta(weeks=2)
end_time = datetime.utcnow() end_time = datetime.utcnow()
train_df = get_noaa_data(end_time_last_slice, end_time) train_df = get_noaa_data(end_time_last_slice, end_time)
@@ -80,10 +80,10 @@ if train_df.size > 0:
target_path=folder_name, target_path=folder_name,
overwrite=True, overwrite=True,
show_progress=True) show_progress=True)
else:
print("No new data since {0}.".format(end_time_last_slice))
if register_dataset: if register_dataset:
ds = Dataset.Tabular.from_delimited_files(dstor.path("{}/**/*.csv".format( ds = Dataset.Tabular.from_delimited_files(dstor.path("{}/**/*.csv".format(
args.ds_name)), partition_format='/{partition_date:yyyy/MM/dd/hh/mm/ss}/data.csv') args.ds_name)), partition_format='/{partition_date:yyyy/MM/dd/HH/mm/ss}/data.csv')
ds.register(ws, name=args.ds_name) ds.register(ws, name=args.ds_name)
else:
print("No new data since {0}.".format(end_time_last_slice))

View File

@@ -301,7 +301,7 @@
"source": [ "source": [
"### Setting forecaster maximum horizon \n", "### Setting forecaster maximum horizon \n",
"\n", "\n",
"The forecast horizon is the number of periods into the future that the model should predict. Here, we set the horizon to 4 periods (i.e. 4 months). Notice that this is much shorter than the number of days in the test set; we will need to use a rolling test to evaluate the performance on the whole test set. For more discussion of forecast horizons and guiding principles for setting them, please see the [energy demand notebook](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand). " "The forecast horizon is the number of periods into the future that the model should predict. Here, we set the horizon to 12 periods (i.e. 12 months). Notice that this is much shorter than the number of months in the test set; we will need to use a rolling test to evaluate the performance on the whole test set. For more discussion of forecast horizons and guiding principles for setting them, please see the [energy demand notebook](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand). "
] ]
}, },
{ {
@@ -358,7 +358,7 @@
"\n", "\n",
"automl_config = AutoMLConfig(task='forecasting', \n", "automl_config = AutoMLConfig(task='forecasting', \n",
" primary_metric='normalized_root_mean_squared_error',\n", " primary_metric='normalized_root_mean_squared_error',\n",
" experiment_timeout_minutes = 60,\n", " experiment_timeout_hours = 1,\n",
" training_data=train_dataset,\n", " training_data=train_dataset,\n",
" label_column_name=target_column_name,\n", " label_column_name=target_column_name,\n",
" validation_data=valid_dataset, \n", " validation_data=valid_dataset, \n",
@@ -376,7 +376,7 @@
"hidePrompt": false "hidePrompt": false
}, },
"source": [ "source": [
"We will now run the experiment, starting with 10 iterations of model search. The experiment can be continued for more iterations if more accurate results are required. You will see the currently running iterations printing to the console." "We will now run the experiment, starting with 10 iterations of model search. The experiment can be continued for more iterations if more accurate results are required."
] ]
}, },
{ {
@@ -555,10 +555,8 @@
"import shutil\n", "import shutil\n",
"\n", "\n",
"script_folder = os.path.join(os.getcwd(), 'inference')\n", "script_folder = os.path.join(os.getcwd(), 'inference')\n",
"project_folder = './inference'\n", "os.makedirs(script_folder, exist_ok=True)\n",
"os.makedirs(project_folder, exist_ok=True)\n", "shutil.copy2('infer.py', script_folder)"
"\n",
"!copy infer.py inference"
] ]
}, },
{ {

View File

@@ -5,8 +5,6 @@ dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- azureml-train-automl - azureml-train-automl
- azureml-train
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - azureml-train
- statsmodels

View File

@@ -76,9 +76,12 @@ def get_result_df(remote_run):
def run_inference(test_experiment, compute_target, script_folder, train_run, def run_inference(test_experiment, compute_target, script_folder, train_run,
test_dataset, lookback_dataset, max_horizon, test_dataset, lookback_dataset, max_horizon,
target_column_name, time_column_name, freq): target_column_name, time_column_name, freq):
train_run.download_file('outputs/model.pkl', 'inference/model.pkl') model_base_name = 'model.pkl'
train_run.download_file('outputs/conda_env_v_1_0_0.yml', if 'model_data_location' in train_run.properties:
'inference/condafile.yml') model_location = train_run.properties['model_data_location']
_, model_base_name = model_location.rsplit('/', 1)
train_run.download_file('outputs/{}'.format(model_base_name), 'inference/{}'.format(model_base_name))
train_run.download_file('outputs/conda_env_v_1_0_0.yml', 'inference/condafile.yml')
inference_env = Environment("myenv") inference_env = Environment("myenv")
inference_env.docker.enabled = True inference_env.docker.enabled = True
@@ -91,7 +94,8 @@ def run_inference(test_experiment, compute_target, script_folder, train_run,
'--max_horizon': max_horizon, '--max_horizon': max_horizon,
'--target_column_name': target_column_name, '--target_column_name': target_column_name,
'--time_column_name': time_column_name, '--time_column_name': time_column_name,
'--frequency': freq '--frequency': freq,
'--model_path': model_base_name
}, },
inputs=[test_dataset.as_named_input('test_data'), inputs=[test_dataset.as_named_input('test_data'),
lookback_dataset.as_named_input('lookback_data')], lookback_dataset.as_named_input('lookback_data')],

View File

@@ -232,6 +232,9 @@ parser.add_argument(
parser.add_argument( parser.add_argument(
'--frequency', type=str, dest='freq', '--frequency', type=str, dest='freq',
help='Frequency of prediction') help='Frequency of prediction')
parser.add_argument(
'--model_path', type=str, dest='model_path',
default='model.pkl', help='Filename of model to be loaded')
args = parser.parse_args() args = parser.parse_args()
@@ -239,6 +242,7 @@ max_horizon = args.max_horizon
target_column_name = args.target_column_name target_column_name = args.target_column_name
time_column_name = args.time_column_name time_column_name = args.time_column_name
freq = args.freq freq = args.freq
model_path = args.model_path
print('args passed are: ') print('args passed are: ')
@@ -246,6 +250,7 @@ print(max_horizon)
print(target_column_name) print(target_column_name)
print(time_column_name) print(time_column_name)
print(freq) print(freq)
print(model_path)
run = Run.get_context() run = Run.get_context()
# get input dataset by name # get input dataset by name
@@ -267,7 +272,8 @@ X_lookback_df = lookback_dataset.drop_columns(columns=[target_column_name])
y_lookback_df = lookback_dataset.with_timestamp_columns( y_lookback_df = lookback_dataset.with_timestamp_columns(
None).keep_columns(columns=[target_column_name]) None).keep_columns(columns=[target_column_name])
fitted_model = joblib.load('model.pkl') fitted_model = joblib.load(model_path)
if hasattr(fitted_model, 'get_lookback'): if hasattr(fitted_model, 'get_lookback'):
lookback = fitted_model.get_lookback() lookback = fitted_model.get_lookback()

View File

@@ -42,7 +42,7 @@
"\n", "\n",
"AutoML highlights here include built-in holiday featurization, accessing engineered feature names, and working with the `forecast` function. Please also look at the additional forecasting notebooks, which document lagging, rolling windows, forecast quantiles, other ways to use the forecast function, and forecaster deployment.\n", "AutoML highlights here include built-in holiday featurization, accessing engineered feature names, and working with the `forecast` function. Please also look at the additional forecasting notebooks, which document lagging, rolling windows, forecast quantiles, other ways to use the forecast function, and forecaster deployment.\n",
"\n", "\n",
"Make sure you have executed the [configuration](../configuration.ipynb) before running this notebook.\n", "Make sure you have executed the [configuration notebook](../../../configuration.ipynb) before running this notebook.\n",
"\n", "\n",
"Notebook synopsis:\n", "Notebook synopsis:\n",
"1. Creating an Experiment in an existing Workspace\n", "1. Creating an Experiment in an existing Workspace\n",
@@ -98,6 +98,7 @@
"output['SDK version'] = azureml.core.VERSION\n", "output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n", "output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace'] = ws.name\n", "output['Workspace'] = ws.name\n",
"output['SKU'] = ws.sku\n",
"output['Resource Group'] = ws.resource_group\n", "output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n", "output['Location'] = ws.location\n",
"output['Run History Name'] = experiment_name\n", "output['Run History Name'] = experiment_name\n",
@@ -127,7 +128,7 @@
"from azureml.core.compute import ComputeTarget\n", "from azureml.core.compute import ComputeTarget\n",
"\n", "\n",
"# Choose a name for your cluster.\n", "# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"cpu-cluster-6\"\n", "amlcompute_cluster_name = \"cpu-cluster-bike\"\n",
"\n", "\n",
"found = False\n", "found = False\n",
"# Check if this compute target already exists in the workspace.\n", "# Check if this compute target already exists in the workspace.\n",
@@ -160,7 +161,7 @@
"source": [ "source": [
"## Data\n", "## Data\n",
"\n", "\n",
"The [Machine Learning service workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-workspace), is paired with the storage account, which contains the default data store. We will use it to upload the bike share data and create [tabular dataset](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.tabulardataset?view=azure-ml-py) for training. A tabular dataset defines a series of lazily-evaluated, immutable operations to load data from the data source into tabular representation." "The [Machine Learning service workspace](https://docs.microsoft.com/en-us/azure/machine-learning/service/concept-workspace) is paired with the storage account, which contains the default data store. We will use it to upload the bike share data and create [tabular dataset](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.data.tabulardataset?view=azure-ml-py) for training. A tabular dataset defines a series of lazily-evaluated, immutable operations to load data from the data source into tabular representation."
] ]
}, },
{ {
@@ -201,7 +202,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'dataset/bike-no.csv')]).with_timestamp_columns(fine_grain_timestamp=time_column_name) \n", "dataset = Dataset.Tabular.from_delimited_files(path = [(datastore, 'dataset/bike-no.csv')]).with_timestamp_columns(fine_grain_timestamp=time_column_name) \n",
"dataset.take(5).to_pandas_dataframe()" "dataset.take(5).to_pandas_dataframe().reset_index(drop=True)"
] ]
}, },
{ {
@@ -220,8 +221,8 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"# select data that occurs before a specified date\n", "# select data that occurs before a specified date\n",
"train = dataset.time_before(datetime(2012, 9, 1))\n", "train = dataset.time_before(datetime(2012, 8, 31), include_boundary=True)\n",
"train.to_pandas_dataframe().tail(5)" "train.to_pandas_dataframe().tail(5).reset_index(drop=True)"
] ]
}, },
{ {
@@ -230,8 +231,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"test = dataset.time_after(datetime(2012, 8, 31))\n", "test = dataset.time_after(datetime(2012, 9, 1), include_boundary=True)\n",
"test.to_pandas_dataframe().head(5)" "test.to_pandas_dataframe().head(5).reset_index(drop=True)"
] ]
}, },
{ {
@@ -246,8 +247,8 @@
"|-|-|\n", "|-|-|\n",
"|**task**|forecasting|\n", "|**task**|forecasting|\n",
"|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>\n", "|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>\n",
"|**blacklist_models**|Models in blacklist won't be used by AutoML. All supported models can be found at [here](https://docs.microsoft.com/en-us/python/api/azureml-train-automl/azureml.train.automl.constants.supportedmodels.regression?view=azure-ml-py).|\n", "|**blacklist_models**|Models in blacklist won't be used by AutoML. All supported models can be found at [here](https://docs.microsoft.com/en-us/python/api/azureml-train-automl-client/azureml.train.automl.constants.supportedmodels.forecasting?view=azure-ml-py).|\n",
"|**experiment_timeout_minutes**|Experimentation timeout in minutes.|\n", "|**experiment_timeout_hours**|Experimentation timeout in hours.|\n",
"|**training_data**|Input dataset, containing both features and label column.|\n", "|**training_data**|Input dataset, containing both features and label column.|\n",
"|**label_column_name**|The name of the label column.|\n", "|**label_column_name**|The name of the label column.|\n",
"|**compute_target**|The remote compute for training.|\n", "|**compute_target**|The remote compute for training.|\n",
@@ -259,7 +260,7 @@
"|**target_lags**|The target_lags specifies how far back we will construct the lags of the target variable.|\n", "|**target_lags**|The target_lags specifies how far back we will construct the lags of the target variable.|\n",
"|**drop_column_names**|Name(s) of columns to drop prior to modeling|\n", "|**drop_column_names**|Name(s) of columns to drop prior to modeling|\n",
"\n", "\n",
"This notebook uses the blacklist_models parameter to exclude some models that take a longer time to train on this dataset. You can choose to remove models from the blacklist_models list but you may need to increase the experiment_timeout_minutes parameter value to get results." "This notebook uses the blacklist_models parameter to exclude some models that take a longer time to train on this dataset. You can choose to remove models from the blacklist_models list but you may need to increase the experiment_timeout_hours parameter value to get results."
] ]
}, },
{ {
@@ -304,7 +305,7 @@
"automl_config = AutoMLConfig(task='forecasting', \n", "automl_config = AutoMLConfig(task='forecasting', \n",
" primary_metric='normalized_root_mean_squared_error',\n", " primary_metric='normalized_root_mean_squared_error',\n",
" blacklist_models = ['ExtremeRandomTrees'], \n", " blacklist_models = ['ExtremeRandomTrees'], \n",
" experiment_timeout_minutes=20,\n", " experiment_timeout_hours=0.3,\n",
" training_data=train,\n", " training_data=train,\n",
" label_column_name=target_column_name,\n", " label_column_name=target_column_name,\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
@@ -445,13 +446,12 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"import os\n", "import os\n",
"import shutil\n",
"\n", "\n",
"script_folder = os.path.join(os.getcwd(), 'forecast')\n", "script_folder = os.path.join(os.getcwd(), 'forecast')\n",
"project_folder = './forecast'\n", "os.makedirs(script_folder, exist_ok=True)\n",
"os.makedirs(project_folder, exist_ok=True)\n", "shutil.copy2('forecasting_script.py', script_folder)\n",
"\n", "shutil.copy2('forecasting_helper.py', script_folder)"
"!copy forecasting_script.py forecast\n",
"!copy forecasting_helper.py forecast"
] ]
}, },
{ {
@@ -586,7 +586,7 @@
], ],
"category": "tutorial", "category": "tutorial",
"compute": [ "compute": [
"remote" "Remote"
], ],
"datasets": [ "datasets": [
"BikeShare" "BikeShare"
@@ -625,7 +625,7 @@
"tags": [ "tags": [
"Forecasting" "Forecasting"
], ],
"task": "forecasting", "task": "Forecasting",
"version": 3 "version": 3
}, },
"nbformat": 4, "nbformat": 4,

View File

@@ -7,5 +7,3 @@ dependencies:
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml
- statsmodels

View File

@@ -1,6 +1,6 @@
import argparse import argparse
import azureml.train.automl import azureml.train.automl
from azureml.automl.core._vendor.automl.client.core.runtime import forecasting_models from azureml.automl.runtime._vendor.automl.client.core.runtime import forecasting_models
from azureml.core import Run from azureml.core import Run
from sklearn.externals import joblib from sklearn.externals import joblib
import forecasting_helper import forecasting_helper
@@ -32,18 +32,17 @@ test_dataset = run.input_datasets['test_data']
grain_column_names = [] grain_column_names = []
df = test_dataset.to_pandas_dataframe() df = test_dataset.to_pandas_dataframe().reset_index(drop=True)
X_test_df = test_dataset.drop_columns(columns=[target_column_name]) X_test_df = test_dataset.drop_columns(columns=[target_column_name]).to_pandas_dataframe().reset_index(drop=True)
y_test_df = test_dataset.with_timestamp_columns( y_test_df = test_dataset.with_timestamp_columns(None).keep_columns(columns=[target_column_name]).to_pandas_dataframe()
None).keep_columns(columns=[target_column_name])
fitted_model = joblib.load('model.pkl') fitted_model = joblib.load('model.pkl')
df_all = forecasting_helper.do_rolling_forecast( df_all = forecasting_helper.do_rolling_forecast(
fitted_model, fitted_model,
X_test_df.to_pandas_dataframe(), X_test_df,
y_test_df.to_pandas_dataframe().values.T[0], y_test_df.values.T[0],
target_column_name, target_column_name,
time_column_name, time_column_name,
max_horizon, max_horizon,

View File

@@ -31,8 +31,8 @@
"1. [Results](#Results)\n", "1. [Results](#Results)\n",
"\n", "\n",
"Advanced Forecasting\n", "Advanced Forecasting\n",
"1. [Advanced Training](#Advanced Training)\n", "1. [Advanced Training](#advanced_training)\n",
"1. [Advanced Results](#Advanced Results)" "1. [Advanced Results](#advanced_results)"
] ]
}, },
{ {
@@ -211,7 +211,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"dataset = Dataset.Tabular.from_delimited_files(path = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/nyc_energy.csv\").with_timestamp_columns(fine_grain_timestamp=time_column_name) \n", "dataset = Dataset.Tabular.from_delimited_files(path = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/nyc_energy.csv\").with_timestamp_columns(fine_grain_timestamp=time_column_name) \n",
"dataset.take(5).to_pandas_dataframe()" "dataset.take(5).to_pandas_dataframe().reset_index(drop=True)"
] ]
}, },
{ {
@@ -253,7 +253,7 @@
"source": [ "source": [
"# split into train based on time\n", "# split into train based on time\n",
"train = dataset.time_before(datetime(2017, 8, 8, 5), include_boundary=True)\n", "train = dataset.time_before(datetime(2017, 8, 8, 5), include_boundary=True)\n",
"train.to_pandas_dataframe().sort_values(time_column_name).tail(5)" "train.to_pandas_dataframe().reset_index(drop=True).sort_values(time_column_name).tail(5)"
] ]
}, },
{ {
@@ -263,8 +263,8 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"# split into test based on time\n", "# split into test based on time\n",
"test = dataset.time_between(datetime(2017, 8, 8, 5), datetime(2017, 8, 10, 5))\n", "test = dataset.time_between(datetime(2017, 8, 8, 6), datetime(2017, 8, 10, 5))\n",
"test.to_pandas_dataframe().head(5)" "test.to_pandas_dataframe().reset_index(drop=True).head(5)"
] ]
}, },
{ {
@@ -301,8 +301,8 @@
"|-|-|\n", "|-|-|\n",
"|**task**|forecasting|\n", "|**task**|forecasting|\n",
"|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n", "|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n",
"|**blacklist_models**|Models in blacklist won't be used by AutoML. All supported models can be found at [here](https://docs.microsoft.com/en-us/python/api/azureml-train-automl/azureml.train.automl.constants.supportedmodels.regression?view=azure-ml-py).|\n", "|**blacklist_models**|Models in blacklist won't be used by AutoML. All supported models can be found at [here](https://docs.microsoft.com/en-us/python/api/azureml-train-automl-client/azureml.train.automl.constants.supportedmodels.forecasting?view=azure-ml-py).|\n",
"|**experiment_timeout_minutes**|Maximum amount of time in minutes that the experiment take before it terminates.|\n", "|**experiment_timeout_hours**|Maximum amount of time in hours that the experiment take before it terminates.|\n",
"|**training_data**|The training data to be used within the experiment.|\n", "|**training_data**|The training data to be used within the experiment.|\n",
"|**label_column_name**|The name of the label column.|\n", "|**label_column_name**|The name of the label column.|\n",
"|**compute_target**|The remote compute for training.|\n", "|**compute_target**|The remote compute for training.|\n",
@@ -316,7 +316,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"This notebook uses the blacklist_models parameter to exclude some models that take a longer time to train on this dataset. You can choose to remove models from the blacklist_models list but you may need to increase the experiment_timeout_minutes parameter value to get results." "This notebook uses the blacklist_models parameter to exclude some models that take a longer time to train on this dataset. You can choose to remove models from the blacklist_models list but you may need to increase the experiment_timeout_hours parameter value to get results."
] ]
}, },
{ {
@@ -333,7 +333,7 @@
"automl_config = AutoMLConfig(task='forecasting', \n", "automl_config = AutoMLConfig(task='forecasting', \n",
" primary_metric='normalized_root_mean_squared_error',\n", " primary_metric='normalized_root_mean_squared_error',\n",
" blacklist_models = ['ExtremeRandomTrees', 'AutoArima', 'Prophet'], \n", " blacklist_models = ['ExtremeRandomTrees', 'AutoArima', 'Prophet'], \n",
" experiment_timeout_minutes=20,\n", " experiment_timeout_hours=0.3,\n",
" training_data=train,\n", " training_data=train,\n",
" label_column_name=target_column_name,\n", " label_column_name=target_column_name,\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
@@ -454,7 +454,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"X_test = test.to_pandas_dataframe()\n", "X_test = test.to_pandas_dataframe().reset_index(drop=True)\n",
"y_test = X_test.pop(target_column_name).values" "y_test = X_test.pop(target_column_name).values"
] ]
}, },
@@ -463,11 +463,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Forecast Function\n", "### Forecast Function\n",
"For forecasting, we will use the forecast function instead of the predict function. There are two reasons for this.\n", "For forecasting, we will use the forecast function instead of the predict function. Using the predict method would result in getting predictions for EVERY horizon the forecaster can predict at. This is useful when training and evaluating the performance of the forecaster at various horizons, but the level of detail is excessive for normal use. Forecast function also can handle more complicated scenarios, see notebook on [high frequency forecasting](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/forecasting-high-frequency/automl-forecasting-function.ipynb)."
"\n",
"We need to pass the recent values of the target variable y, whereas the scikit-compatible predict function only takes the non-target variables 'test'. In our case, the test data immediately follows the training data, and we fill the target variable with NaN. The NaN serves as a question mark for the forecaster to fill with the actuals. Using the forecast function will produce forecasts using the shortest possible forecast horizon. The last time at which a definite (non-NaN) value is seen is the forecast origin - the last time when the value of the target is known.\n",
"\n",
"Using the predict method would result in getting predictions for EVERY horizon the forecaster can predict at. This is useful when training and evaluating the performance of the forecaster at various horizons, but the level of detail is excessive for normal use."
] ]
}, },
{ {
@@ -476,15 +472,10 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Replace ALL values in y by NaN.\n",
"# The forecast origin will be at the beginning of the first forecast period.\n",
"# (Which is the same time as the end of the last training period.)\n",
"y_query = y_test.copy().astype(np.float)\n",
"y_query.fill(np.nan)\n",
"# The featurized data, aligned to y, will also be returned.\n", "# The featurized data, aligned to y, will also be returned.\n",
"# This contains the assumptions that were made in the forecast\n", "# This contains the assumptions that were made in the forecast\n",
"# and helps align the forecast to the original data\n", "# and helps align the forecast to the original data\n",
"y_predictions, X_trans = fitted_model.forecast(X_test, y_query)" "y_predictions, X_trans = fitted_model.forecast(X_test)"
] ]
}, },
{ {
@@ -557,7 +548,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Advanced Training\n", "## Advanced Training <a id=\"advanced_training\"></a>\n",
"We did not use lags in the previous model specification. In effect, the prediction was the result of a simple regression on date, grain and any additional features. This is often a very good prediction as common time series patterns like seasonality and trends can be captured in this manner. Such simple regression is horizon-less: it doesn't matter how far into the future we are predicting, because we are not using past data. In the previous example, the horizon was only used to split the data for cross-validation." "We did not use lags in the previous model specification. In effect, the prediction was the result of a simple regression on date, grain and any additional features. This is often a very good prediction as common time series patterns like seasonality and trends can be captured in this manner. Such simple regression is horizon-less: it doesn't matter how far into the future we are predicting, because we are not using past data. In the previous example, the horizon was only used to split the data for cross-validation."
] ]
}, },
@@ -587,7 +578,7 @@
"automl_config = AutoMLConfig(task='forecasting', \n", "automl_config = AutoMLConfig(task='forecasting', \n",
" primary_metric='normalized_root_mean_squared_error',\n", " primary_metric='normalized_root_mean_squared_error',\n",
" blacklist_models = ['ElasticNet','ExtremeRandomTrees','GradientBoosting','XGBoostRegressor','ExtremeRandomTrees', 'AutoArima', 'Prophet'], #These models are blacklisted for tutorial purposes, remove this for real use cases. \n", " blacklist_models = ['ElasticNet','ExtremeRandomTrees','GradientBoosting','XGBoostRegressor','ExtremeRandomTrees', 'AutoArima', 'Prophet'], #These models are blacklisted for tutorial purposes, remove this for real use cases. \n",
" experiment_timeout_minutes=20,\n", " experiment_timeout_hours=0.3,\n",
" training_data=train,\n", " training_data=train,\n",
" label_column_name=target_column_name,\n", " label_column_name=target_column_name,\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
@@ -642,7 +633,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Advanced Results\n", "## Advanced Results<a id=\"advanced_results\"></a>\n",
"We did not use lags in the previous model specification. In effect, the prediction was the result of a simple regression on date, grain and any additional features. This is often a very good prediction as common time series patterns like seasonality and trends can be captured in this manner. Such simple regression is horizon-less: it doesn't matter how far into the future we are predicting, because we are not using past data. In the previous example, the horizon was only used to split the data for cross-validation." "We did not use lags in the previous model specification. In effect, the prediction was the result of a simple regression on date, grain and any additional features. This is often a very good prediction as common time series patterns like seasonality and trends can be captured in this manner. Such simple regression is horizon-less: it doesn't matter how far into the future we are predicting, because we are not using past data. In the previous example, the horizon was only used to split the data for cross-validation."
] ]
}, },
@@ -652,15 +643,10 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Replace ALL values in y by NaN.\n",
"# The forecast origin will be at the beginning of the first forecast period.\n",
"# (Which is the same time as the end of the last training period.)\n",
"y_query = y_test.copy().astype(np.float)\n",
"y_query.fill(np.nan)\n",
"# The featurized data, aligned to y, will also be returned.\n", "# The featurized data, aligned to y, will also be returned.\n",
"# This contains the assumptions that were made in the forecast\n", "# This contains the assumptions that were made in the forecast\n",
"# and helps align the forecast to the original data\n", "# and helps align the forecast to the original data\n",
"y_predictions, X_trans = fitted_model_lags.forecast(X_test, y_query)" "y_predictions, X_trans = fitted_model_lags.forecast(X_test)"
] ]
}, },
{ {
@@ -730,14 +716,7 @@
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.8" "version": "3.6.8"
}, }
"star_tag": [
"featured"
],
"tags": [
""
],
"task": "Forecasting"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -2,11 +2,9 @@ name: auto-ml-forecasting-energy-demand
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- interpret
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - interpret
- statsmodels
- azureml-explain-model - azureml-explain-model
- azureml-contrib-interpret - azureml-contrib-interpret

View File

@@ -0,0 +1,551 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/automated-machine-learning/forecasting-grouping/auto-ml-forecasting-grouping.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Automated Machine Learning\n",
"\n",
"_**Forecasting with grouping using Pipelines**_\n",
"\n",
"## Contents\n",
"\n",
"1. [Introduction](#Introduction)\n",
"2. [Setup](#Setup)\n",
"3. [Data](#Data)\n",
"4. [Compute](#Compute)\n",
"4. [AutoMLConfig](#AutoMLConfig)\n",
"5. [Pipeline](#Pipeline)\n",
"5. [Train](#Train)\n",
"6. [Test](#Test)\n",
"\n",
"\n",
"## Introduction\n",
"In this example we use Automated ML and Pipelines to train, select, and operationalize forecasting models for multiple time-series.\n",
"\n",
"If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) first if you haven't already to establish your connection to the AzureML Workspace.\n",
"\n",
"In this notebook you will learn how to:\n",
"\n",
"* Create an Experiment in an existing Workspace.\n",
"* Configure AutoML using AutoMLConfig.\n",
"* Use our helper script to generate pipeline steps to split, train, and deploy the models.\n",
"* Explore the results.\n",
"* Test the models.\n",
"\n",
"It is advised you ensure your cluster has at least one node per group.\n",
"\n",
"An Enterprise workspace is required for this notebook. To learn more about creating an Enterprise workspace or upgrading to an Enterprise workspace from the Azure portal, please visit our [Workspace page.](https://docs.microsoft.com/azure/machine-learning/service/concept-workspace#upgrade)\n",
"\n",
"## Setup\n",
"As part of the setup you have already created an Azure ML `Workspace` object. For Automated ML you will need to create an `Experiment` object, which is a named object in a `Workspace` used to run experiments. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import logging\n",
"import warnings\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"\n",
"import azureml.core\n",
"\n",
"from azureml.core.workspace import Workspace\n",
"from azureml.core.experiment import Experiment\n",
"from azureml.train.automl import AutoMLConfig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Accessing the Azure ML workspace requires authentication with Azure.\n",
"\n",
"The default authentication is interactive authentication using the default tenant. Executing the ws = Workspace.from_config() line in the cell below will prompt for authentication the first time that it is run.\n",
"\n",
"If you have multiple Azure tenants, you can specify the tenant by replacing the ws = Workspace.from_config() line in the cell below with the following:\n",
"```\n",
"from azureml.core.authentication import InteractiveLoginAuthentication\n",
"auth = InteractiveLoginAuthentication(tenant_id = 'mytenantid')\n",
"ws = Workspace.from_config(auth = auth)\n",
"```\n",
"If you need to run in an environment where interactive login is not possible, you can use Service Principal authentication by replacing the ws = Workspace.from_config() line in the cell below with the following:\n",
"```\n",
"from azureml.core.authentication import ServicePrincipalAuthentication\n",
"auth = auth = ServicePrincipalAuthentication('mytenantid', 'myappid', 'mypassword')\n",
"ws = Workspace.from_config(auth = auth)\n",
"```\n",
"For more details, see aka.ms/aml-notebook-auth"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ws = Workspace.from_config()\n",
"ds = ws.get_default_datastore()\n",
"\n",
"# choose a name for the run history container in the workspace\n",
"experiment_name = 'automl-grouping-oj'\n",
"# project folder\n",
"project_folder = './sample_projects/{}'.format(experiment_name)\n",
"\n",
"experiment = Experiment(ws, experiment_name)\n",
"\n",
"output = {}\n",
"output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace'] = ws.name\n",
"output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n",
"output['Project Directory'] = project_folder\n",
"output['Run History Name'] = experiment_name\n",
"pd.set_option('display.max_colwidth', -1)\n",
"outputDf = pd.DataFrame(data = output, index = [''])\n",
"outputDf.T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data\n",
"Upload data to your default datastore and then load it as a `TabularDataset`"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.dataset import Dataset"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# upload training and test data to your default datastore\n",
"ds = ws.get_default_datastore()\n",
"ds.upload(src_dir='./data', target_path='groupdata', overwrite=True, show_progress=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# load data from your datastore\n",
"data = Dataset.Tabular.from_delimited_files(path=ds.path('groupdata/dominicks_OJ_2_5_8_train.csv'))\n",
"data_test = Dataset.Tabular.from_delimited_files(path=ds.path('groupdata/dominicks_OJ_2_5_8_test.csv'))\n",
"\n",
"data.take(5).to_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compute \n",
"\n",
"#### Create or Attach existing AmlCompute\n",
"\n",
"You will need to create a compute target for your automated ML run. In this tutorial, you create AmlCompute as your training compute resource.\n",
"#### Creation of AmlCompute takes approximately 5 minutes. \n",
"If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n",
"As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read this article on the default limits and how to request more quota."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.compute import AmlCompute\n",
"from azureml.core.compute import ComputeTarget\n",
"\n",
"# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"cpu-cluster-11\"\n",
"\n",
"found = False\n",
"# Check if this compute target already exists in the workspace.\n",
"cts = ws.compute_targets\n",
"if amlcompute_cluster_name in cts and cts[amlcompute_cluster_name].type == 'AmlCompute':\n",
" found = True\n",
" print('Found existing compute target.')\n",
" compute_target = cts[amlcompute_cluster_name]\n",
" \n",
"if not found:\n",
" print('Creating a new compute target...')\n",
" provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n",
" #vm_priority = 'lowpriority', # optional\n",
" max_nodes = 6)\n",
"\n",
" # Create the cluster.\n",
" compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n",
" \n",
"print('Checking cluster status...')\n",
"# Can poll for a minimum number of nodes and for a specific timeout.\n",
"# If no min_node_count is provided, it will use the scale settings for the cluster.\n",
"compute_target.wait_for_completion(show_output = True, min_node_count = None, timeout_in_minutes = 20)\n",
" \n",
"# For a more detailed view of current AmlCompute status, use get_status()."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## AutoMLConfig\n",
"#### Create a base AutoMLConfig\n",
"This configuration will be used for all the groups in the pipeline."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"target_column = 'Quantity'\n",
"time_column_name = 'WeekStarting'\n",
"grain_column_names = ['Brand']\n",
"group_column_names = ['Store']\n",
"max_horizon = 20"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_settings = {\n",
" \"iteration_timeout_minutes\" : 5,\n",
" \"experiment_timeout_hours\" : 0.25,\n",
" \"primary_metric\" : 'normalized_mean_absolute_error',\n",
" \"time_column_name\": time_column_name,\n",
" \"grain_column_names\": grain_column_names,\n",
" \"max_horizon\": max_horizon,\n",
" \"drop_column_names\": ['logQuantity'],\n",
" \"max_concurrent_iterations\": 2,\n",
" \"max_cores_per_iteration\": -1\n",
"}\n",
"base_configuration = AutoMLConfig(task = 'forecasting',\n",
" path = project_folder,\n",
" n_cross_validations=3,\n",
" **automl_settings\n",
" )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Pipeline\n",
"We've written a script to generate the individual pipeline steps used to create each automl step. Calling this script will return a list of PipelineSteps that will train multiple groups concurrently and then deploy these models.\n",
"\n",
"This step requires an Enterprise workspace to gain access to this feature. To learn more about creating an Enterprise workspace or upgrading to an Enterprise workspace from the Azure portal, please visit our [Workspace page.](https://docs.microsoft.com/azure/machine-learning/service/concept-workspace#upgrade).\n",
"\n",
"### Call the method to build pipeline steps\n",
"\n",
"`build_pipeline_steps()` takes as input:\n",
"* **automlconfig**: This is the configuration used for every automl step\n",
"* **df**: This is the dataset to be used for training\n",
"* **target_column**: This is the target column of the dataset\n",
"* **compute_target**: The compute to be used for training\n",
"* **deploy**: The option on to deploy the models after training, if set to true an extra step will be added to deploy a webservice with all the models (default is `True`)\n",
"* **service_name**: The service name for the model query endpoint\n",
"* **time_column_name**: The time column of the data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.webservice import Webservice\n",
"from azureml.exceptions import WebserviceException\n",
"\n",
"service_name = 'grouped-model'\n",
"try:\n",
" # if you want to get existing service below is the command\n",
" # since aci name needs to be unique in subscription deleting existing aci if any\n",
" # we use aci_service_name to create azure aci\n",
" service = Webservice(ws, name=service_name)\n",
" if service:\n",
" service.delete()\n",
"except WebserviceException as e:\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from build import build_pipeline_steps\n",
"\n",
"steps = build_pipeline_steps(\n",
" base_configuration, \n",
" data, \n",
" target_column,\n",
" compute_target, \n",
" group_column_names=group_column_names, \n",
" deploy=True, \n",
" service_name=service_name, \n",
" time_column_name=time_column_name\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Train\n",
"Use the list of steps generated from above to build the pipeline and submit it to your compute for remote training."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.pipeline.core import Pipeline\n",
"pipeline = Pipeline(\n",
" description=\"A pipeline with one model per data group using Automated ML.\",\n",
" workspace=ws, \n",
" steps=steps)\n",
"\n",
"pipeline_run = experiment.submit(pipeline)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.widgets import RunDetails\n",
"RunDetails(pipeline_run).show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"pipeline_run.wait_for_completion(show_output=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test\n",
"\n",
"Now we can use the holdout set to test our models and ensure our web-service is running as expected."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.webservice import AciWebservice\n",
"service = AciWebservice(ws, service_name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"X_test = data_test.to_pandas_dataframe()\n",
"# Drop the column we are trying to predict (target column)\n",
"x_pred = X_test.drop(target_column, inplace=False, axis=1)\n",
"x_pred.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Get Predictions\n",
"test_sample = X_test.drop(target_column, inplace=False, axis=1).to_json()\n",
"predictions = service.run(input_data=test_sample)\n",
"print(predictions)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Convert predictions from JSON to DataFrame\n",
"pred_dict =json.loads(predictions)\n",
"X_pred = pd.read_json(pred_dict['predictions'])\n",
"X_pred.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Fix the index\n",
"PRED = 'pred_target'\n",
"X_pred[time_column_name] = pd.to_datetime(X_pred[time_column_name], unit='ms')\n",
"\n",
"X_pred.set_index([time_column_name] + grain_column_names, inplace=True, drop=True)\n",
"X_pred.rename({'_automl_target_col': PRED}, inplace=True, axis=1)\n",
"# Drop all but the target column and index\n",
"X_pred.drop(list(set(X_pred.columns.values).difference({PRED})), axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"X_test[time_column_name] = pd.to_datetime(X_test[time_column_name])\n",
"X_test.set_index([time_column_name] + grain_column_names, inplace=True, drop=True)\n",
"# Merge predictions with raw features\n",
"pred_test = X_test.merge(X_pred, left_index=True, right_index=True)\n",
"pred_test.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import mean_absolute_error, mean_squared_error\n",
"def MAPE(actual, pred):\n",
" \"\"\"\n",
" Calculate mean absolute percentage error.\n",
" Remove NA and values where actual is close to zero\n",
" \"\"\"\n",
" not_na = ~(np.isnan(actual) | np.isnan(pred))\n",
" not_zero = ~np.isclose(actual, 0.0)\n",
" actual_safe = actual[not_na & not_zero]\n",
" pred_safe = pred[not_na & not_zero]\n",
" APE = 100*np.abs((actual_safe - pred_safe)/actual_safe)\n",
" return np.mean(APE)\n",
"\n",
"def get_metrics(actuals, preds):\n",
" return pd.Series(\n",
" {\n",
" \"RMSE\": np.sqrt(mean_squared_error(actuals, preds)),\n",
" \"NormRMSE\": np.sqrt(mean_squared_error(actuals, preds))/np.abs(actuals.max()-actuals.min()),\n",
" \"MAE\": mean_absolute_error(actuals, preds),\n",
" \"MAPE\": MAPE(actuals, preds)},\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"get_metrics(pred_test[PRED].values, pred_test[target_column].values)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"authors": [
{
"name": "alyerman"
}
],
"category": "other",
"compute": [
"AML Compute"
],
"datasets": [
"Orange Juice Sales"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"Scikit-learn",
"Pytorch"
],
"friendly_name": "Automated ML Grouping with Pipeline.",
"index_order": 10,
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
},
"tags": [
"AutomatedML"
],
"task": "Use AzureML Pipeline to trigger multiple Automated ML runs."
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -0,0 +1,8 @@
name: auto-ml-forecasting-grouping
dependencies:
- pip:
- azureml-sdk
- azureml-train-automl
- azureml-widgets
- matplotlib
- azureml-pipeline

View File

@@ -0,0 +1,144 @@
from typing import List, Dict
import copy
import json
import pandas as pd
import re
from azureml.core import RunConfiguration
from azureml.core.compute import ComputeTarget
from azureml.core.conda_dependencies import CondaDependencies
from azureml.core.dataset import Dataset
from azureml.data import TabularDataset
from azureml.pipeline.core import PipelineData, PipelineParameter, TrainingOutput, StepSequence
from azureml.pipeline.steps import PythonScriptStep
from azureml.train.automl import AutoMLConfig
from azureml.train.automl.runtime import AutoMLStep
def _get_groups(data: Dataset, group_column_names: List[str]) -> pd.DataFrame:
return data._dataflow.distinct(columns=group_column_names)\
.keep_columns(columns=group_column_names).to_pandas_dataframe()
def _get_configs(automlconfig: AutoMLConfig,
data: Dataset,
target_column: str,
compute_target: ComputeTarget,
group_column_names: List[str]) -> Dict[str, AutoMLConfig]:
# remove invalid characters regex
valid_chars = re.compile('[^a-zA-Z0-9-]')
groups = _get_groups(data, group_column_names)
configs = {}
for i, group in groups.iterrows():
single = data._dataflow
group_name = "#####".join(str(x) for x in group.values)
group_name = valid_chars.sub('', group_name)
for key in group.index:
single = single.filter(data._dataflow[key] == group[key])
t_dataset = TabularDataset._create(single)
group_conf = copy.deepcopy(automlconfig)
group_conf.user_settings['training_data'] = t_dataset
group_conf.user_settings['label_column_name'] = target_column
group_conf.user_settings['compute_target'] = compute_target
configs[group_name] = group_conf
return configs
def build_pipeline_steps(automlconfig: AutoMLConfig,
data: Dataset,
target_column: str,
compute_target: ComputeTarget,
group_column_names: list,
time_column_name: str,
deploy: bool,
service_name: str = 'grouping-demo') -> StepSequence:
steps = []
metrics_output_name = 'metrics_{}'
best_model_output_name = 'best_model_{}'
count = 0
model_names = []
# get all automl configs by group
configs = _get_configs(automlconfig, data, target_column, compute_target, group_column_names)
# build a runconfig for register model
register_config = RunConfiguration()
cd = CondaDependencies()
cd.add_pip_package('azureml-pipeline')
register_config.environment.python.conda_dependencies = cd
# create each automl step end-to-end (train, register)
for group_name, conf in configs.items():
# create automl metrics output
metrics_data = PipelineData(
name='metrics_data_{}'.format(group_name),
pipeline_output_name=metrics_output_name.format(group_name),
training_output=TrainingOutput(type='Metrics'))
# create automl model output
model_data = PipelineData(
name='model_data_{}'.format(group_name),
pipeline_output_name=best_model_output_name.format(group_name),
training_output=TrainingOutput(type='Model', metric=conf.user_settings['primary_metric']))
automl_step = AutoMLStep(
name='automl_{}'.format(group_name),
automl_config=conf,
outputs=[metrics_data, model_data],
allow_reuse=True)
steps.append(automl_step)
# pass the group name as a parameter to the register step ->
# this will become the name of the model for this group.
group_name_param = PipelineParameter("group_name_{}".format(count), default_value=group_name)
count += 1
reg_model_step = PythonScriptStep(
'register.py',
name='register_{}'.format(group_name),
arguments=["--model_name", group_name_param, "--model_path", model_data],
inputs=[model_data],
compute_target=compute_target,
runconfig=register_config,
source_directory="register",
allow_reuse=True
)
steps.append(reg_model_step)
model_names.append(group_name)
final_steps = steps
if deploy:
# modify the conda dependencies to ensure we pick up correct
# versions of azureml-defaults and azureml-train-automl
cd = CondaDependencies.create(pip_packages=['azureml-defaults', 'azureml-train-automl'])
automl_deps = CondaDependencies(conda_dependencies_file_path='deploy/myenv.yml')
cd._merge_dependencies(automl_deps)
cd.save('deploy/myenv.yml')
# add deployment step
pp_group_column_names = PipelineParameter(
"group_column_names",
default_value="#####".join(list(reversed(group_column_names))))
pp_model_names = PipelineParameter(
"model_names",
default_value=json.dumps(model_names))
pp_service_name = PipelineParameter(
"service_name",
default_value=service_name)
deployment_step = PythonScriptStep(
'deploy.py',
name='service_deploy',
arguments=["--group_column_names", pp_group_column_names,
"--model_names", pp_model_names,
"--service_name", pp_service_name,
"--time_column_name", time_column_name],
compute_target=compute_target,
runconfig=RunConfiguration(),
source_directory="deploy"
)
final_steps = StepSequence(steps=[steps, deployment_step])
return final_steps

View File

@@ -0,0 +1,61 @@
WeekStarting,Store,Brand,Quantity,logQuantity,Advert,Price,Age60,COLLEGE,INCOME,Hincome150,Large HH,Minorities,WorkingWoman,SSTRDIST,SSTRVOL,CPDIST5,CPWVOL5
1992-08-20,2,minute.maid,23488,10.06424493,1,1.94,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-20,2,tropicana,13376,9.501217335,1,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-27,2,tropicana,8128,9.00307017,0,2.75,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-27,2,minute.maid,19008,9.852615222,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-27,2,dominicks,9024,9.107642974,0,1.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-03,2,tropicana,19456,9.875910785,1,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-03,2,minute.maid,11584,9.357380115,0,1.81,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-03,2,dominicks,2048,7.624618986000001,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-10,2,tropicana,10048,9.215128888999999,0,2.64,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-10,2,minute.maid,26752,10.19436452,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-10,2,dominicks,1984,7.592870287999999,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-17,2,tropicana,6336,8.754002933999999,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-17,2,minute.maid,3904,8.269756948,0,2.83,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-17,2,dominicks,4160,8.333270353,0,1.77,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-24,2,tropicana,16192,9.692272572,1,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-24,2,minute.maid,3712,8.219326094,0,2.67,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-09-24,2,dominicks,35264,10.47061789,0,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-10-01,2,dominicks,8640,9.064157862,0,1.82,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-10-01,2,minute.maid,41216,10.62658181,1,2.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-10-01,2,tropicana,5824,8.66974259,0,2.97,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-20,5,tropicana,17728,9.78290059,1,2.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-20,5,minute.maid,27072,10.20625526,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-27,5,tropicana,9600,9.169518378,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-27,5,minute.maid,3840,8.253227646000001,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-27,5,dominicks,1856,7.526178913,0,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-03,5,tropicana,25664,10.15284451,1,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-03,5,minute.maid,6144,8.723231275,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-03,5,dominicks,3712,8.219326094,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-10,5,tropicana,9984,9.208739091,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-10,5,dominicks,2688,7.896552702,0,1.85,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-10,5,minute.maid,36416,10.50276352,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-17,5,tropicana,8576,9.056722882999999,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-17,5,minute.maid,5440,8.60153434,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-17,5,dominicks,6464,8.774003599999999,0,1.85,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-24,5,tropicana,13184,9.486759252,1,2.78,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-24,5,dominicks,40896,10.61878754,0,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-09-24,5,minute.maid,7680,8.946374826,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-10-01,5,dominicks,6144,8.723231275,0,1.85,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-10-01,5,minute.maid,50304,10.82583988,1,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-10-01,5,tropicana,7488,8.921057017999999,0,2.78,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-20,8,minute.maid,55552,10.9250748,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-20,8,tropicana,8576,9.056722882999999,1,2.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-27,8,tropicana,8000,8.987196821,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-27,8,minute.maid,18688,9.835636886,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-27,8,dominicks,19200,9.862665558,0,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-03,8,tropicana,21760,9.987828701,1,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-03,8,minute.maid,14656,9.592605087,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-03,8,dominicks,12800,9.45720045,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-10,8,tropicana,12800,9.45720045,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-10,8,minute.maid,30144,10.31374118,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-10,8,dominicks,15296,9.635346635,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-17,8,tropicana,10112,9.221478116,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-17,8,minute.maid,6208,8.733594062,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-17,8,dominicks,20992,9.951896692,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-24,8,tropicana,10304,9.240287448,1,2.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-24,8,minute.maid,7104,8.868413285,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-09-24,8,dominicks,73856,11.20987253,0,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-10-01,8,minute.maid,65856,11.09522582,1,2.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-10-01,8,dominicks,16192,9.692272572,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-10-01,8,tropicana,6400,8.764053269,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1 WeekStarting Store Brand Quantity logQuantity Advert Price Age60 COLLEGE INCOME Hincome150 Large HH Minorities WorkingWoman SSTRDIST SSTRVOL CPDIST5 CPWVOL5
2 1992-08-20 2 minute.maid 23488 10.06424493 1 1.94 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
3 1992-08-20 2 tropicana 13376 9.501217335 1 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
4 1992-08-27 2 tropicana 8128 9.00307017 0 2.75 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
5 1992-08-27 2 minute.maid 19008 9.852615222 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
6 1992-08-27 2 dominicks 9024 9.107642974 0 1.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
7 1992-09-03 2 tropicana 19456 9.875910785 1 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
8 1992-09-03 2 minute.maid 11584 9.357380115 0 1.81 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
9 1992-09-03 2 dominicks 2048 7.624618986000001 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
10 1992-09-10 2 tropicana 10048 9.215128888999999 0 2.64 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
11 1992-09-10 2 minute.maid 26752 10.19436452 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
12 1992-09-10 2 dominicks 1984 7.592870287999999 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
13 1992-09-17 2 tropicana 6336 8.754002933999999 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
14 1992-09-17 2 minute.maid 3904 8.269756948 0 2.83 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
15 1992-09-17 2 dominicks 4160 8.333270353 0 1.77 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
16 1992-09-24 2 tropicana 16192 9.692272572 1 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
17 1992-09-24 2 minute.maid 3712 8.219326094 0 2.67 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
18 1992-09-24 2 dominicks 35264 10.47061789 0 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
19 1992-10-01 2 dominicks 8640 9.064157862 0 1.82 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
20 1992-10-01 2 minute.maid 41216 10.62658181 1 2.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
21 1992-10-01 2 tropicana 5824 8.66974259 0 2.97 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
22 1992-08-20 5 tropicana 17728 9.78290059 1 2.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
23 1992-08-20 5 minute.maid 27072 10.20625526 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
24 1992-08-27 5 tropicana 9600 9.169518378 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
25 1992-08-27 5 minute.maid 3840 8.253227646000001 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
26 1992-08-27 5 dominicks 1856 7.526178913 0 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
27 1992-09-03 5 tropicana 25664 10.15284451 1 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
28 1992-09-03 5 minute.maid 6144 8.723231275 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
29 1992-09-03 5 dominicks 3712 8.219326094 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
30 1992-09-10 5 tropicana 9984 9.208739091 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
31 1992-09-10 5 dominicks 2688 7.896552702 0 1.85 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
32 1992-09-10 5 minute.maid 36416 10.50276352 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
33 1992-09-17 5 tropicana 8576 9.056722882999999 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
34 1992-09-17 5 minute.maid 5440 8.60153434 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
35 1992-09-17 5 dominicks 6464 8.774003599999999 0 1.85 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
36 1992-09-24 5 tropicana 13184 9.486759252 1 2.78 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
37 1992-09-24 5 dominicks 40896 10.61878754 0 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
38 1992-09-24 5 minute.maid 7680 8.946374826 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
39 1992-10-01 5 dominicks 6144 8.723231275 0 1.85 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
40 1992-10-01 5 minute.maid 50304 10.82583988 1 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
41 1992-10-01 5 tropicana 7488 8.921057017999999 0 2.78 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
42 1992-08-20 8 minute.maid 55552 10.9250748 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
43 1992-08-20 8 tropicana 8576 9.056722882999999 1 2.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
44 1992-08-27 8 tropicana 8000 8.987196821 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
45 1992-08-27 8 minute.maid 18688 9.835636886 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
46 1992-08-27 8 dominicks 19200 9.862665558 0 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
47 1992-09-03 8 tropicana 21760 9.987828701 1 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
48 1992-09-03 8 minute.maid 14656 9.592605087 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
49 1992-09-03 8 dominicks 12800 9.45720045 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
50 1992-09-10 8 tropicana 12800 9.45720045 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
51 1992-09-10 8 minute.maid 30144 10.31374118 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
52 1992-09-10 8 dominicks 15296 9.635346635 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
53 1992-09-17 8 tropicana 10112 9.221478116 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
54 1992-09-17 8 minute.maid 6208 8.733594062 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
55 1992-09-17 8 dominicks 20992 9.951896692 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
56 1992-09-24 8 tropicana 10304 9.240287448 1 2.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
57 1992-09-24 8 minute.maid 7104 8.868413285 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
58 1992-09-24 8 dominicks 73856 11.20987253 0 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
59 1992-10-01 8 minute.maid 65856 11.09522582 1 2.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
60 1992-10-01 8 dominicks 16192 9.692272572 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
61 1992-10-01 8 tropicana 6400 8.764053269 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947

View File

@@ -0,0 +1,973 @@
WeekStarting,Store,Brand,Quantity,logQuantity,Advert,Price,Age60,COLLEGE,INCOME,Hincome150,Large HH,Minorities,WorkingWoman,SSTRDIST,SSTRVOL,CPDIST5,CPWVOL5
1990-06-14,2,dominicks,10560,9.264828557000001,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-06-14,2,minute.maid,4480,8.407378325,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-06-14,2,tropicana,8256,9.018695487999999,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-07-26,2,dominicks,8000,8.987196821,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-07-26,2,minute.maid,4672,8.449342525,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-07-26,2,tropicana,6144,8.723231275,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-02,2,tropicana,3840,8.253227646000001,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-02,2,minute.maid,20160,9.911455722000001,1,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-02,2,dominicks,6848,8.831711918,1,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-09,2,dominicks,2880,7.965545572999999,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-09,2,minute.maid,2688,7.896552702,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-09,2,tropicana,8000,8.987196821,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-23,2,dominicks,1600,7.377758908,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-23,2,minute.maid,3008,8.009030685,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-23,2,tropicana,8896,9.093357017,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-30,2,tropicana,7168,8.877381955,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-30,2,minute.maid,4672,8.449342525,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-08-30,2,dominicks,25344,10.140297300000002,1,1.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-06,2,dominicks,10752,9.282847063,0,1.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-06,2,minute.maid,2752,7.920083199,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-06,2,tropicana,10880,9.29468152,0,3.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-13,2,minute.maid,26176,10.17259824,1,2.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-13,2,dominicks,6656,8.803273982999999,0,1.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-13,2,tropicana,7744,8.954673629,0,3.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-20,2,dominicks,6592,8.793612072,0,1.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-20,2,minute.maid,3712,8.219326094,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-09-20,2,tropicana,8512,9.049232212,0,3.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-11,2,tropicana,5504,8.61323038,0,3.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-11,2,minute.maid,30656,10.33058368,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-11,2,dominicks,1728,7.454719948999999,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-18,2,tropicana,5888,8.68067166,0,3.56,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-18,2,minute.maid,3840,8.253227646000001,0,2.98,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-18,2,dominicks,33792,10.42797937,1,1.24,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-25,2,tropicana,8384,9.034080407000001,0,3.56,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-25,2,minute.maid,2816,7.943072717000001,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-10-25,2,dominicks,1920,7.560080465,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-01,2,tropicana,5952,8.691482577,0,3.56,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-01,2,minute.maid,23104,10.04776104,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-01,2,dominicks,8960,9.100525506,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-08,2,dominicks,11392,9.340666634,0,1.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-08,2,tropicana,6848,8.831711918,0,3.56,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-08,2,minute.maid,3392,8.129174997,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-15,2,tropicana,9216,9.128696383,0,3.87,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-15,2,minute.maid,26304,10.1774763,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-15,2,dominicks,28416,10.25470765,0,0.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-22,2,dominicks,17152,9.749870064,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-22,2,tropicana,12160,9.405907156,0,2.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-22,2,minute.maid,6336,8.754002933999999,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-29,2,tropicana,12672,9.447150114,0,2.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-29,2,minute.maid,9920,9.2023082,0,3.17,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-11-29,2,dominicks,26560,10.1871616,1,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-06,2,dominicks,6336,8.754002933999999,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-06,2,minute.maid,25280,10.13776885,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-06,2,tropicana,6528,8.783855897,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-13,2,dominicks,26368,10.17990643,1,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-13,2,tropicana,6144,8.723231275,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-13,2,minute.maid,14848,9.605620455,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-20,2,tropicana,21120,9.957975738,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-20,2,minute.maid,12288,9.416378455,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-20,2,dominicks,896,6.797940412999999,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-27,2,tropicana,12416,9.426741242,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-27,2,minute.maid,6272,8.743850562,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-12-27,2,dominicks,1472,7.294377299,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-03,2,tropicana,9472,9.156095357,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-03,2,minute.maid,9152,9.121727714,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-03,2,dominicks,1344,7.2034055210000005,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-10,2,tropicana,17920,9.793672686,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-10,2,minute.maid,4160,8.333270353,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-10,2,dominicks,111680,11.62339292,1,0.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-17,2,tropicana,9408,9.14931567,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-17,2,minute.maid,10176,9.227787286,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-17,2,dominicks,1856,7.526178913,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-24,2,tropicana,6272,8.743850562,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-24,2,minute.maid,29056,10.27698028,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-24,2,dominicks,5568,8.624791202,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-31,2,tropicana,6912,8.841014311,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-31,2,minute.maid,7104,8.868413285,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-01-31,2,dominicks,32064,10.37548918,1,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-07,2,tropicana,16768,9.727227587,0,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-07,2,dominicks,4352,8.378390789,0,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-07,2,minute.maid,7488,8.921057017999999,0,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-14,2,dominicks,704,6.556778356000001,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-14,2,minute.maid,4224,8.348537825,0,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-14,2,tropicana,6272,8.743850562,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-21,2,tropicana,7936,8.979164649,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-21,2,minute.maid,8960,9.100525506,0,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-21,2,dominicks,13760,9.529521112000001,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-28,2,tropicana,6144,8.723231275,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-28,2,minute.maid,22464,10.01966931,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-02-28,2,dominicks,43328,10.67655436,1,1.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-07,2,tropicana,7936,8.979164649,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-07,2,minute.maid,3840,8.253227646000001,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-07,2,dominicks,57600,10.96127785,1,1.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-14,2,tropicana,7808,8.962904128,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-14,2,minute.maid,12992,9.472089062,0,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-14,2,dominicks,704,6.556778356000001,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-21,2,tropicana,6080,8.712759975,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-21,2,minute.maid,70144,11.15830555,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-21,2,dominicks,6016,8.702177866,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-28,2,tropicana,42176,10.64960662,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-28,2,dominicks,10368,9.246479419,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-03-28,2,minute.maid,21248,9.964018052,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-04,2,dominicks,12608,9.442086812000001,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-04,2,minute.maid,5696,8.647519453,1,2.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-04,2,tropicana,4928,8.502688505,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-11,2,tropicana,29504,10.29228113,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-11,2,minute.maid,7680,8.946374826,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-11,2,dominicks,6336,8.754002933999999,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-18,2,tropicana,9984,9.208739091,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-18,2,minute.maid,6336,8.754002933999999,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-18,2,dominicks,140736,11.85464107,1,0.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-25,2,tropicana,35200,10.46880136,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-25,2,dominicks,960,6.866933285,1,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-04-25,2,minute.maid,8576,9.056722882999999,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-02,2,dominicks,1216,7.103322062999999,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-02,2,minute.maid,15104,9.622714887999999,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-02,2,tropicana,23936,10.08313888,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-09,2,tropicana,7104,8.868413285,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-09,2,minute.maid,76480,11.24478455,1,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-09,2,dominicks,1664,7.416979621,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-16,2,dominicks,4992,8.51559191,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-16,2,minute.maid,5056,8.528330936,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-16,2,tropicana,24512,10.10691807,1,2.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-23,2,tropicana,6336,8.754002933999999,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-23,2,minute.maid,4736,8.462948177000001,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-23,2,dominicks,27968,10.23881628,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-30,2,dominicks,12160,9.405907156,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-30,2,minute.maid,4480,8.407378325,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-05-30,2,tropicana,6080,8.712759975,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-06,2,tropicana,33536,10.42037477,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-06,2,minute.maid,4032,8.30201781,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-06,2,dominicks,2240,7.714231145,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-13,2,dominicks,5504,8.61323038,1,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-13,2,minute.maid,14784,9.601300794,1,1.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-13,2,tropicana,13248,9.491601877,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-20,2,tropicana,6208,8.733594062,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-20,2,dominicks,8832,9.086136769,0,1.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-20,2,minute.maid,12096,9.400630097999999,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-27,2,dominicks,2624,7.87245515,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-27,2,minute.maid,41792,10.64046021,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-06-27,2,tropicana,10624,9.270870872,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-04,2,tropicana,44672,10.70710219,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-04,2,minute.maid,10560,9.264828557000001,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-04,2,dominicks,10432,9.252633284,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-18,2,tropicana,20096,9.908276069,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-18,2,dominicks,8320,9.026417534,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-18,2,minute.maid,4224,8.348537825,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-25,2,dominicks,6784,8.822322178,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-25,2,minute.maid,2880,7.965545572999999,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-07-25,2,tropicana,9152,9.121727714,1,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-01,2,tropicana,21952,9.996613531,0,2.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-01,2,minute.maid,3968,8.286017467999999,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-01,2,dominicks,60544,11.01112565,1,0.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-08,2,dominicks,20608,9.933434629,0,0.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-08,2,minute.maid,3712,8.219326094,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-08,2,tropicana,13568,9.515469357999999,0,2.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-29,2,tropicana,4160,8.333270353,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-29,2,minute.maid,2816,7.943072717000001,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-08-29,2,dominicks,16064,9.684336023,0,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-05,2,tropicana,39424,10.58213005,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-05,2,minute.maid,4288,8.363575702999999,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-05,2,dominicks,12480,9.431882642,0,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-12,2,tropicana,5632,8.636219898,0,3.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-12,2,minute.maid,18240,9.811372264,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-12,2,dominicks,17024,9.742379392,0,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-19,2,dominicks,13440,9.505990614,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-19,2,minute.maid,7360,8.903815212,0,1.95,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-19,2,tropicana,9024,9.107642974,1,2.68,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-26,2,tropicana,6016,8.702177866,0,3.44,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-26,2,minute.maid,7808,8.962904128,0,1.83,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-09-26,2,dominicks,10112,9.221478116,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-03,2,dominicks,9088,9.114710141,0,1.56,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-03,2,minute.maid,13504,9.510741217,0,1.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-03,2,tropicana,7744,8.954673629,0,3.14,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-10,2,tropicana,6784,8.822322178,0,3.07,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-10,2,dominicks,22848,10.03661887,1,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-10,2,minute.maid,10048,9.215128888999999,0,1.91,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-17,2,dominicks,6976,8.850230966,0,1.65,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-17,2,minute.maid,135936,11.81993947,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-17,2,tropicana,6784,8.822322178,0,3.07,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-24,2,tropicana,6272,8.743850562,0,3.07,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-24,2,minute.maid,5056,8.528330936,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-24,2,dominicks,4160,8.333270353,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-31,2,tropicana,5312,8.577723691000001,0,3.07,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-31,2,minute.maid,27968,10.23881628,0,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-10-31,2,dominicks,3328,8.110126802,0,1.83,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-07,2,tropicana,9216,9.128696383,0,3.11,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-07,2,minute.maid,4736,8.462948177000001,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-07,2,dominicks,12096,9.400630097999999,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-14,2,tropicana,7296,8.895081532,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-14,2,minute.maid,7808,8.962904128,0,2.14,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-14,2,dominicks,6208,8.733594062,0,1.76,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-21,2,tropicana,34240,10.44114983,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-21,2,minute.maid,12480,9.431882642,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-21,2,dominicks,3008,8.009030685,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-28,2,dominicks,19456,9.875910785,1,1.5,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-28,2,minute.maid,9664,9.17616292,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-11-28,2,tropicana,7168,8.877381955,0,2.64,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-05,2,minute.maid,7168,8.877381955,0,2.06,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-05,2,dominicks,16768,9.727227587,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-05,2,tropicana,6080,8.712759975,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-12,2,dominicks,13568,9.515469357999999,1,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-12,2,minute.maid,4480,8.407378325,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-12,2,tropicana,5120,8.540909718,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-19,2,tropicana,8320,9.026417534,0,2.74,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-19,2,minute.maid,5952,8.691482577,0,2.22,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-19,2,dominicks,6080,8.712759975,0,1.61,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-26,2,dominicks,10432,9.252633284,1,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-26,2,minute.maid,21696,9.984883191,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1991-12-26,2,tropicana,17728,9.78290059,0,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-02,2,minute.maid,12032,9.395325046,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-02,2,dominicks,11712,9.368369236,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-02,2,tropicana,13120,9.481893063,0,2.35,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-09,2,dominicks,4032,8.30201781,0,1.76,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-09,2,minute.maid,7040,8.859363449,0,2.12,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-09,2,tropicana,13120,9.481893063,0,2.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-16,2,dominicks,6336,8.754002933999999,0,1.82,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-16,2,tropicana,9792,9.189321005,0,2.43,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-16,2,minute.maid,10240,9.234056899,1,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-23,2,tropicana,3520,8.166216269,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-23,2,minute.maid,6848,8.831711918,1,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-23,2,dominicks,13632,9.520175249,0,1.47,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-30,2,tropicana,5504,8.61323038,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-30,2,minute.maid,3968,8.286017467999999,0,2.61,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-01-30,2,dominicks,45120,10.71708089,0,1.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-06,2,tropicana,6720,8.812843434,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-06,2,minute.maid,5888,8.68067166,0,2.26,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-06,2,dominicks,9984,9.208739091,0,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-13,2,tropicana,20224,9.914625297,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-13,2,dominicks,4800,8.476371197,0,1.82,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-13,2,minute.maid,6208,8.733594062,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-20,2,dominicks,11776,9.373818841,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-20,2,minute.maid,72256,11.18797065,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-20,2,tropicana,5056,8.528330936,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-27,2,tropicana,43584,10.68244539,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-27,2,minute.maid,11520,9.351839934,0,2.11,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-02-27,2,dominicks,11584,9.357380115,0,1.54,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-05,2,tropicana,25728,10.15533517,0,1.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-05,2,minute.maid,5824,8.66974259,0,2.35,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-05,2,dominicks,51264,10.84474403,1,1.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-12,2,tropicana,31808,10.36747311,0,1.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-12,2,minute.maid,19392,9.872615889,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-12,2,dominicks,14976,9.614204199,0,1.44,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-19,2,tropicana,20736,9.939626599,0,1.91,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-19,2,minute.maid,9536,9.162829389,0,2.1,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-19,2,dominicks,30784,10.33475035,0,1.59,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-26,2,tropicana,15168,9.626943225,0,2.81,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-26,2,minute.maid,5312,8.577723691000001,0,2.28,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-03-26,2,dominicks,12480,9.431882642,0,1.6,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-02,2,tropicana,28096,10.2433825,1,2.5,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-02,2,dominicks,3264,8.090708716,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-02,2,minute.maid,14528,9.583833101,1,1.9,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-09,2,dominicks,8768,9.078864009,0,1.48,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-09,2,minute.maid,12416,9.426741242,0,2.12,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-09,2,tropicana,12416,9.426741242,0,2.58,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-16,2,tropicana,5376,8.589699882,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-16,2,minute.maid,5376,8.589699882,0,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-16,2,dominicks,70848,11.16829202,1,1.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-23,2,tropicana,9792,9.189321005,0,2.67,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-23,2,minute.maid,19008,9.852615222,1,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-23,2,dominicks,18560,9.828764006,0,1.42,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-30,2,tropicana,16960,9.738612909,1,2.39,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-30,2,minute.maid,3904,8.269756948,0,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-04-30,2,dominicks,9152,9.121727714,0,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-07,2,tropicana,8320,9.026417534,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-07,2,minute.maid,6336,8.754002933999999,0,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-07,2,dominicks,9600,9.169518378,0,2.0,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-14,2,tropicana,6912,8.841014311,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-14,2,minute.maid,5440,8.60153434,0,2.79,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-14,2,dominicks,4800,8.476371197,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-21,2,tropicana,6976,8.850230966,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-21,2,minute.maid,22400,10.01681624,1,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-21,2,dominicks,9664,9.17616292,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-28,2,minute.maid,3968,8.286017467999999,0,2.84,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-28,2,tropicana,7232,8.886270902,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-05-28,2,dominicks,45568,10.726961,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-04,2,tropicana,51520,10.84972536,1,2.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-04,2,minute.maid,3264,8.090708716,0,2.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-04,2,dominicks,20992,9.951896692,0,1.74,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-11,2,minute.maid,4352,8.378390789,0,2.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-11,2,tropicana,22272,10.01108556,0,2.21,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-11,2,dominicks,6592,8.793612072,0,2.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-18,2,dominicks,4992,8.51559191,0,2.05,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-18,2,minute.maid,4480,8.407378325,0,2.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-18,2,tropicana,46144,10.73952222,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-25,2,tropicana,4352,8.378390789,1,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-25,2,minute.maid,3840,8.253227646000001,0,2.52,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-06-25,2,dominicks,8064,8.99516499,0,1.24,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-02,2,tropicana,17280,9.757305042,0,2.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-02,2,minute.maid,13312,9.496421162999999,1,2.0,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-02,2,dominicks,7360,8.903815212,0,1.61,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-09,2,tropicana,5696,8.647519453,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-09,2,minute.maid,3776,8.236420527,1,2.33,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-09,2,dominicks,10048,9.215128888999999,0,1.4,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-16,2,tropicana,6848,8.831711918,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-16,2,dominicks,10112,9.221478116,0,1.91,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-16,2,minute.maid,4800,8.476371197,0,2.89,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-23,2,dominicks,9152,9.121727714,0,1.69,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-23,2,minute.maid,24960,10.12502982,1,2.29,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-23,2,tropicana,4416,8.392989587999999,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-30,2,tropicana,4672,8.449342525,0,3.16,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-30,2,minute.maid,4544,8.42156296,0,2.86,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-07-30,2,dominicks,36288,10.49924239,1,1.49,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-06,2,tropicana,7168,8.877381955,1,3.09,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-06,2,minute.maid,3968,8.286017467999999,1,2.81,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-06,2,dominicks,3776,8.236420527,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-13,2,tropicana,5056,8.528330936,0,3.19,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-13,2,dominicks,3328,8.110126802,0,1.97,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-13,2,minute.maid,49600,10.81174611,1,1.99,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1992-08-20,2,dominicks,13824,9.534161491,0,1.36,0.232864734,0.248934934,10.55320518,0.463887065,0.103953406,0.114279949,0.303585347,2.110122129,1.142857143,1.927279669,0.37692661299999997
1990-06-14,5,dominicks,1792,7.491087594,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-14,5,minute.maid,4224,8.348537825,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-14,5,tropicana,5888,8.68067166,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-28,5,minute.maid,4352,8.378390789,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-28,5,dominicks,2496,7.82244473,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-28,5,tropicana,6976,8.850230966,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-05,5,dominicks,2944,7.98752448,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-05,5,minute.maid,4928,8.502688505,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-05,5,tropicana,6528,8.783855897,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-12,5,dominicks,1024,6.931471806,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-12,5,minute.maid,31168,10.34714721,1,2.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-12,5,tropicana,4928,8.502688505,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-26,5,dominicks,4224,8.348537825,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-26,5,minute.maid,10048,9.215128888999999,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-07-26,5,tropicana,5312,8.577723691000001,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-02,5,minute.maid,21760,9.987828701,1,2.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-02,5,tropicana,5120,8.540909718,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-02,5,dominicks,4544,8.42156296,1,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-09,5,dominicks,1728,7.454719948999999,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-09,5,minute.maid,4544,8.42156296,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-09,5,tropicana,7936,8.979164649,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-16,5,tropicana,6080,8.712759975,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-16,5,minute.maid,52224,10.86329744,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-16,5,dominicks,1216,7.103322062999999,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-23,5,dominicks,1152,7.049254841000001,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-23,5,minute.maid,3584,8.184234774,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-23,5,tropicana,4160,8.333270353,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-30,5,minute.maid,5120,8.540909718,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-30,5,tropicana,5888,8.68067166,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-08-30,5,dominicks,30144,10.31374118,1,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-06,5,dominicks,8960,9.100525506,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-06,5,minute.maid,4416,8.392989587999999,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-06,5,tropicana,9536,9.162829389,0,3.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-13,5,tropicana,8320,9.026417534,0,3.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-13,5,dominicks,8192,9.010913347,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-13,5,minute.maid,30208,10.31586207,1,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-20,5,dominicks,6528,8.783855897,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-20,5,minute.maid,4160,8.333270353,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-20,5,tropicana,8000,8.987196821,0,3.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-27,5,dominicks,34688,10.45414909,1,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-27,5,minute.maid,4992,8.51559191,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-09-27,5,tropicana,5824,8.66974259,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-04,5,dominicks,4672,8.449342525,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-04,5,minute.maid,13952,9.543378146,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-04,5,tropicana,10624,9.270870872,1,3.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-11,5,tropicana,6656,8.803273982999999,0,3.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-11,5,dominicks,1088,6.992096427000001,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-11,5,minute.maid,47680,10.772267300000001,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-18,5,tropicana,5184,8.553332238,0,3.51,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-18,5,minute.maid,7616,8.938006577000001,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-18,5,dominicks,69440,11.14821835,1,1.24,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-25,5,tropicana,4928,8.502688505,0,3.51,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-25,5,minute.maid,8896,9.093357017,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-10-25,5,dominicks,1280,7.154615357000001,0,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-01,5,tropicana,5888,8.68067166,0,3.51,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-01,5,minute.maid,28544,10.25920204,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-01,5,dominicks,35456,10.47604777,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-08,5,tropicana,5312,8.577723691000001,0,3.51,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-08,5,dominicks,13824,9.534161491,0,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-08,5,minute.maid,5440,8.60153434,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-15,5,tropicana,9984,9.208739091,0,3.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-15,5,minute.maid,52416,10.86696717,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-15,5,dominicks,14208,9.561560465,0,0.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-22,5,tropicana,8448,9.041685006,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-22,5,dominicks,29312,10.28575227,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-22,5,minute.maid,11712,9.368369236,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-29,5,tropicana,10880,9.29468152,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-29,5,minute.maid,13952,9.543378146,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-11-29,5,dominicks,52992,10.87789624,1,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-06,5,dominicks,15680,9.660141293999999,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-06,5,minute.maid,36160,10.49570882,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-06,5,tropicana,5696,8.647519453,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-13,5,tropicana,5696,8.647519453,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-13,5,minute.maid,12864,9.462187991,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-13,5,dominicks,43520,10.68097588,1,1.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-20,5,tropicana,32384,10.38541975,0,2.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-20,5,minute.maid,22208,10.00820786,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-20,5,dominicks,3904,8.269756948,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-27,5,tropicana,10752,9.282847063,0,2.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-27,5,minute.maid,9984,9.208739091,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-12-27,5,dominicks,896,6.797940412999999,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-03,5,tropicana,6912,8.841014311,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-03,5,minute.maid,14016,9.547954812999999,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-03,5,dominicks,2240,7.714231145,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-10,5,tropicana,13440,9.505990614,0,2.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-10,5,minute.maid,6080,8.712759975,0,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-10,5,dominicks,125760,11.74213061,1,0.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-17,5,tropicana,7808,8.962904128,0,2.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-17,5,minute.maid,7808,8.962904128,0,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-17,5,dominicks,1408,7.249925537,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-24,5,tropicana,5248,8.565602331000001,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-24,5,minute.maid,40896,10.61878754,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-24,5,dominicks,7232,8.886270902,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-31,5,tropicana,6208,8.733594062,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-31,5,minute.maid,6272,8.743850562,0,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-01-31,5,dominicks,41216,10.62658181,1,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-07,5,tropicana,21440,9.973013615,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-07,5,minute.maid,7872,8.971067439,0,2.41,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-07,5,dominicks,9024,9.107642974,0,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-14,5,dominicks,1600,7.377758908,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-14,5,tropicana,7360,8.903815212,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-14,5,minute.maid,6144,8.723231275,0,2.41,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-21,5,tropicana,6720,8.812843434,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-21,5,minute.maid,8448,9.041685006,0,2.41,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-21,5,dominicks,2496,7.82244473,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-28,5,tropicana,6656,8.803273982999999,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-28,5,minute.maid,18688,9.835636886,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-02-28,5,dominicks,6336,8.754002933999999,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-07,5,tropicana,6016,8.702177866,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-07,5,minute.maid,6272,8.743850562,0,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-07,5,dominicks,56384,10.93994071,1,1.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-14,5,tropicana,6144,8.723231275,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-14,5,minute.maid,12096,9.400630097999999,0,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-14,5,dominicks,1600,7.377758908,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-21,5,tropicana,4928,8.502688505,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-21,5,minute.maid,73216,11.20116926,1,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-21,5,dominicks,2944,7.98752448,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-28,5,tropicana,67712,11.1230187,1,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-28,5,minute.maid,18944,9.849242538,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-03-28,5,dominicks,13504,9.510741217,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-04,5,dominicks,5376,8.589699882,0,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-04,5,tropicana,8640,9.064157862,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-04,5,minute.maid,6400,8.764053269,1,2.46,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-11,5,tropicana,35520,10.477851199999998,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-11,5,minute.maid,8640,9.064157862,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-11,5,dominicks,6656,8.803273982999999,0,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-18,5,tropicana,9664,9.17616292,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-18,5,minute.maid,7296,8.895081532,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-18,5,dominicks,95680,11.46876457,1,0.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-25,5,tropicana,49088,10.80136989,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-25,5,minute.maid,12480,9.431882642,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-04-25,5,dominicks,896,6.797940412999999,1,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-02,5,dominicks,1728,7.454719948999999,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-02,5,minute.maid,14144,9.557045785,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-02,5,tropicana,14912,9.609921537,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-09,5,minute.maid,88256,11.38799696,1,1.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-09,5,tropicana,6464,8.774003599999999,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-09,5,dominicks,1280,7.154615357000001,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-16,5,dominicks,5696,8.647519453,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-16,5,minute.maid,6848,8.831711918,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-16,5,tropicana,25024,10.12759064,1,2.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-23,5,minute.maid,7808,8.962904128,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-23,5,tropicana,6272,8.743850562,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-23,5,dominicks,28288,10.25019297,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-30,5,dominicks,4864,8.489616424,0,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-30,5,minute.maid,6272,8.743850562,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-05-30,5,tropicana,5056,8.528330936,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-06,5,minute.maid,6144,8.723231275,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-06,5,tropicana,47616,10.77092412,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-06,5,dominicks,2880,7.965545572999999,0,2.09,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-13,5,dominicks,5760,8.658692754,1,1.41,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-13,5,minute.maid,27776,10.23192762,1,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-13,5,tropicana,13888,9.538780437,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-20,5,tropicana,6144,8.723231275,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-20,5,minute.maid,20800,9.942708266,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-20,5,dominicks,15040,9.618468598,0,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-27,5,dominicks,5120,8.540909718,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-27,5,minute.maid,45696,10.72976605,1,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-06-27,5,tropicana,9344,9.142489705,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-04,5,minute.maid,14336,9.570529135,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-04,5,tropicana,32896,10.40110635,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-04,5,dominicks,3264,8.090708716,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-11,5,dominicks,9536,9.162829389,1,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-11,5,minute.maid,4928,8.502688505,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-11,5,tropicana,21056,9.954940834,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-18,5,tropicana,15360,9.639522007,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-18,5,minute.maid,4608,8.435549202,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-18,5,dominicks,6208,8.733594062,0,1.59,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-25,5,dominicks,6592,8.793612072,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-25,5,tropicana,8000,8.987196821,1,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-07-25,5,minute.maid,5248,8.565602331000001,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-01,5,tropicana,21120,9.957975738,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-01,5,dominicks,63552,11.05961375,1,0.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-01,5,minute.maid,4224,8.348537825,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-08,5,dominicks,27968,10.23881628,0,0.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-08,5,minute.maid,4288,8.363575702999999,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-08,5,tropicana,11904,9.384629757,0,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-15,5,minute.maid,16896,9.734832187,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-15,5,tropicana,5056,8.528330936,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-15,5,dominicks,21760,9.987828701,1,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-22,5,dominicks,2688,7.896552702,0,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-22,5,minute.maid,77184,11.25394746,1,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-22,5,tropicana,4608,8.435549202,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-29,5,tropicana,6016,8.702177866,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-29,5,minute.maid,5184,8.553332238,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-08-29,5,dominicks,10432,9.252633284,0,1.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-05,5,tropicana,50752,10.83470631,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-05,5,minute.maid,5248,8.565602331000001,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-05,5,dominicks,9792,9.189321005,0,1.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-12,5,minute.maid,20672,9.936535407000001,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-12,5,tropicana,5632,8.636219898,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-12,5,dominicks,8448,9.041685006,0,1.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-26,5,tropicana,6400,8.764053269,0,3.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-26,5,dominicks,6912,8.841014311,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-09-26,5,minute.maid,12352,9.421573272,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-03,5,dominicks,8256,9.018695487999999,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-03,5,minute.maid,12032,9.395325046,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-03,5,tropicana,5440,8.60153434,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-10,5,minute.maid,13440,9.505990614,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-10,5,dominicks,28672,10.26367632,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-10,5,tropicana,8128,9.00307017,0,2.94,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-24,5,tropicana,7232,8.886270902,0,2.94,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-24,5,minute.maid,5824,8.66974259,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-24,5,dominicks,4416,8.392989587999999,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-31,5,tropicana,7168,8.877381955,0,2.94,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-31,5,minute.maid,50112,10.82201578,0,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-10-31,5,dominicks,1856,7.526178913,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-07,5,minute.maid,5184,8.553332238,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-07,5,tropicana,7872,8.971067439,0,2.94,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-07,5,dominicks,6528,8.783855897,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-14,5,tropicana,7552,8.929567707999999,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-14,5,minute.maid,8384,9.034080407000001,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-14,5,dominicks,6080,8.712759975,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-21,5,tropicana,69504,11.14913958,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-21,5,dominicks,3456,8.14786713,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-21,5,minute.maid,10112,9.221478116,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-28,5,dominicks,25856,10.16029796,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-28,5,minute.maid,8384,9.034080407000001,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-11-28,5,tropicana,8960,9.100525506,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-05,5,tropicana,6912,8.841014311,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-05,5,dominicks,25728,10.15533517,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-05,5,minute.maid,11456,9.346268889,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-12,5,dominicks,23552,10.06696602,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-12,5,minute.maid,5952,8.691482577,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-12,5,tropicana,6656,8.803273982999999,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-19,5,tropicana,8192,9.010913347,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-19,5,dominicks,2944,7.98752448,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-19,5,minute.maid,8512,9.049232212,0,2.26,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-26,5,dominicks,5888,8.68067166,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-26,5,minute.maid,27968,10.23881628,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1991-12-26,5,tropicana,13440,9.505990614,0,2.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-02,5,tropicana,12160,9.405907156,0,2.39,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-02,5,dominicks,6848,8.831711918,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-02,5,minute.maid,24000,10.08580911,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-09,5,dominicks,1792,7.491087594,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-09,5,minute.maid,6848,8.831711918,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-09,5,tropicana,11840,9.379238908,0,2.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-16,5,tropicana,8640,9.064157862,0,2.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-16,5,dominicks,5248,8.565602331000001,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-16,5,minute.maid,15104,9.622714887999999,1,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-23,5,tropicana,5888,8.68067166,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-23,5,minute.maid,11392,9.340666634,1,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-23,5,dominicks,16768,9.727227587,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-30,5,tropicana,7424,8.912473275,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-30,5,minute.maid,5824,8.66974259,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-01-30,5,dominicks,52160,10.8620712,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-06,5,tropicana,5632,8.636219898,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-06,5,minute.maid,7488,8.921057017999999,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-06,5,dominicks,16640,9.719564714,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-13,5,tropicana,33600,10.42228135,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-13,5,minute.maid,8320,9.026417534,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-13,5,dominicks,1344,7.2034055210000005,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-20,5,dominicks,4608,8.435549202,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-20,5,tropicana,5376,8.589699882,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-20,5,minute.maid,99904,11.511965,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-27,5,tropicana,54272,10.90176372,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-27,5,minute.maid,6976,8.850230966,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-02-27,5,dominicks,12672,9.447150114,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-05,5,tropicana,33600,10.42228135,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-05,5,minute.maid,9984,9.208739091,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-05,5,dominicks,48640,10.79220152,1,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-12,5,tropicana,24448,10.10430369,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-12,5,minute.maid,32832,10.39915893,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-12,5,dominicks,13248,9.491601877,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-19,5,tropicana,22784,10.03381381,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-19,5,minute.maid,8128,9.00307017,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-19,5,dominicks,29248,10.28356647,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-26,5,tropicana,19008,9.852615222,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-26,5,minute.maid,6464,8.774003599999999,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-03-26,5,dominicks,4608,8.435549202,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-02,5,tropicana,15808,9.66827142,1,2.5,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-02,5,minute.maid,36800,10.51325312,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-02,5,dominicks,3136,8.050703382,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-09,5,dominicks,13184,9.486759252,0,1.58,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-09,5,tropicana,14144,9.557045785,0,2.5,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-09,5,minute.maid,12928,9.467150781,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-16,5,tropicana,9600,9.169518378,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-16,5,minute.maid,7424,8.912473275,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-16,5,dominicks,67712,11.1230187,1,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-23,5,tropicana,10112,9.221478116,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-23,5,minute.maid,34176,10.43927892,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-23,5,dominicks,18880,9.84585844,0,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-30,5,minute.maid,4160,8.333270353,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-30,5,tropicana,31872,10.36948316,1,2.24,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-04-30,5,dominicks,6208,8.733594062,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-07,5,tropicana,9280,9.135616826,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-07,5,minute.maid,5952,8.691482577,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-07,5,dominicks,5952,8.691482577,0,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-14,5,tropicana,7680,8.946374826,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-14,5,minute.maid,6528,8.783855897,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-14,5,dominicks,4160,8.333270353,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-21,5,tropicana,8704,9.071537969,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-21,5,minute.maid,30656,10.33058368,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-21,5,dominicks,23488,10.06424493,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-28,5,tropicana,9920,9.2023082,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-28,5,dominicks,60480,11.01006801,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-05-28,5,minute.maid,6656,8.803273982999999,0,2.66,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-04,5,tropicana,91968,11.42919597,1,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-04,5,minute.maid,4416,8.392989587999999,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-04,5,dominicks,20416,9.924074186,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-11,5,tropicana,44096,10.69412435,0,2.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-11,5,dominicks,6336,8.754002933999999,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-11,5,minute.maid,5696,8.647519453,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-25,5,minute.maid,5696,8.647519453,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-25,5,tropicana,7296,8.895081532,1,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-06-25,5,dominicks,1408,7.249925537,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-02,5,tropicana,12928,9.467150781,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-02,5,minute.maid,39680,10.58860256,1,2.01,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-02,5,dominicks,4672,8.449342525,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-09,5,tropicana,6848,8.831711918,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-09,5,minute.maid,6208,8.733594062,1,2.19,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-09,5,dominicks,19520,9.87919486,0,1.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-16,5,tropicana,8064,8.99516499,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-16,5,minute.maid,7872,8.971067439,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-16,5,dominicks,7872,8.971067439,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-23,5,dominicks,5184,8.553332238,0,1.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-23,5,tropicana,4992,8.51559191,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-23,5,minute.maid,54528,10.90646961,1,2.29,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-30,5,tropicana,7360,8.903815212,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-30,5,minute.maid,6400,8.764053269,0,2.69,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-07-30,5,dominicks,42240,10.65112292,1,1.49,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-06,5,tropicana,8384,9.034080407000001,1,2.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-06,5,minute.maid,5888,8.68067166,1,2.65,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-06,5,dominicks,6592,8.793612072,1,1.89,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-13,5,tropicana,8832,9.086136769,0,2.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-13,5,minute.maid,56384,10.93994071,1,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-13,5,dominicks,2112,7.655390645,0,1.99,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1992-08-20,5,dominicks,21248,9.964018052,0,1.79,0.117368032,0.32122573,10.92237097,0.535883355,0.103091585,0.053875277,0.410568032,3.801997814,0.681818182,1.600573425,0.736306837
1990-06-14,8,dominicks,14336,9.570529135,1,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-14,8,minute.maid,6080,8.712759975,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-14,8,tropicana,8896,9.093357017,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-21,8,dominicks,6400,8.764053269,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-21,8,minute.maid,51968,10.85838342,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-21,8,tropicana,7296,8.895081532,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-28,8,tropicana,10368,9.246479419,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-28,8,minute.maid,4928,8.502688505,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-06-28,8,dominicks,3968,8.286017467999999,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-05,8,dominicks,4352,8.378390789,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-05,8,minute.maid,5312,8.577723691000001,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-05,8,tropicana,6976,8.850230966,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-12,8,tropicana,6464,8.774003599999999,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-12,8,dominicks,3520,8.166216269,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-12,8,minute.maid,39424,10.58213005,1,2.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-19,8,tropicana,8192,9.010913347,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-19,8,dominicks,6464,8.774003599999999,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-19,8,minute.maid,5568,8.624791202,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-26,8,dominicks,5952,8.691482577,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-26,8,minute.maid,14592,9.588228712000001,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-07-26,8,tropicana,7936,8.979164649,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-02,8,tropicana,6656,8.803273982999999,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-02,8,minute.maid,22208,10.00820786,1,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-02,8,dominicks,8832,9.086136769,1,2.09,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-09,8,dominicks,7232,8.886270902,0,2.09,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-09,8,minute.maid,5760,8.658692754,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-09,8,tropicana,8256,9.018695487999999,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-16,8,tropicana,5568,8.624791202,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-16,8,minute.maid,54016,10.89703558,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-16,8,dominicks,5504,8.61323038,0,2.09,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-23,8,dominicks,4800,8.476371197,0,2.09,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-23,8,minute.maid,5824,8.66974259,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-23,8,tropicana,7488,8.921057017999999,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-30,8,tropicana,6144,8.723231275,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-30,8,minute.maid,6528,8.783855897,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-08-30,8,dominicks,52672,10.87183928,1,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-06,8,dominicks,16448,9.707959168,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-06,8,minute.maid,5440,8.60153434,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-06,8,tropicana,11008,9.30637756,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-13,8,minute.maid,36544,10.50627229,1,2.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-13,8,dominicks,19072,9.85597657,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-13,8,tropicana,5760,8.658692754,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-20,8,dominicks,13376,9.501217335,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-20,8,minute.maid,3776,8.236420527,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-20,8,tropicana,10112,9.221478116,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-27,8,tropicana,8448,9.041685006,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-27,8,minute.maid,5504,8.61323038,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-09-27,8,dominicks,61440,11.02581637,1,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-04,8,tropicana,8448,9.041685006,1,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-04,8,dominicks,13760,9.529521112000001,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-04,8,minute.maid,12416,9.426741242,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-11,8,minute.maid,53696,10.89109379,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-11,8,dominicks,3136,8.050703382,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-11,8,tropicana,7424,8.912473275,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-18,8,tropicana,5824,8.66974259,0,3.04,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-18,8,minute.maid,5696,8.647519453,0,2.51,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-18,8,dominicks,186176,12.13444774,1,1.14,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-25,8,tropicana,6656,8.803273982999999,0,3.04,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-25,8,minute.maid,4864,8.489616424,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-10-25,8,dominicks,3712,8.219326094,0,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-01,8,tropicana,6272,8.743850562,0,3.04,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-01,8,minute.maid,37184,10.52363384,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-01,8,dominicks,35776,10.48503256,1,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-08,8,tropicana,6912,8.841014311,0,3.04,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-08,8,minute.maid,5504,8.61323038,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-08,8,dominicks,26880,10.1991378,0,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-15,8,tropicana,10496,9.258749511,0,3.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-15,8,minute.maid,51008,10.83973776,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-15,8,dominicks,71680,11.17996705,0,0.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-22,8,tropicana,11840,9.379238908,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-22,8,minute.maid,11072,9.312174678,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-22,8,dominicks,25088,10.13014492,1,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-29,8,tropicana,9664,9.17616292,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-29,8,minute.maid,12160,9.405907156,0,2.62,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-11-29,8,dominicks,91456,11.42361326,1,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-06,8,minute.maid,30528,10.32639957,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-06,8,dominicks,23808,10.07777694,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-06,8,tropicana,6272,8.743850562,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-13,8,dominicks,89856,11.40596367,1,1.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-13,8,minute.maid,12096,9.400630097999999,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-13,8,tropicana,7168,8.877381955,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-20,8,minute.maid,16448,9.707959168,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-20,8,dominicks,12224,9.411156511,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-20,8,tropicana,29504,10.29228113,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-27,8,minute.maid,9344,9.142489705,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-27,8,dominicks,3776,8.236420527,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1990-12-27,8,tropicana,8704,9.071537969,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-03,8,tropicana,9280,9.135616826,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-03,8,minute.maid,16128,9.688312171,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-03,8,dominicks,13824,9.534161491,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-10,8,minute.maid,5376,8.589699882,0,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-10,8,dominicks,251072,12.43349503,1,0.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-10,8,tropicana,12224,9.411156511,0,2.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-17,8,minute.maid,6656,8.803273982999999,0,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-17,8,tropicana,10368,9.246479419,0,2.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-17,8,dominicks,4864,8.489616424,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-24,8,minute.maid,59712,10.99728828,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-24,8,dominicks,10176,9.227787286,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-24,8,tropicana,8128,9.00307017,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-31,8,tropicana,5952,8.691482577,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-31,8,minute.maid,9856,9.195835686,0,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-01-31,8,dominicks,105344,11.56498647,1,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-07,8,minute.maid,6720,8.812843434,0,2.12,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-07,8,dominicks,33600,10.42228135,0,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-07,8,tropicana,21696,9.984883191,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-14,8,dominicks,4736,8.462948177000001,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-14,8,minute.maid,4224,8.348537825,0,2.12,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-14,8,tropicana,7808,8.962904128,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-21,8,tropicana,8128,9.00307017,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-21,8,minute.maid,9728,9.182763604,0,2.12,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-21,8,dominicks,10304,9.240287448,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-28,8,tropicana,7424,8.912473275,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-28,8,minute.maid,40320,10.604602900000001,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-02-28,8,dominicks,5056,8.528330936,1,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-07,8,dominicks,179968,12.10053434,1,0.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-07,8,tropicana,5952,8.691482577,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-07,8,minute.maid,5120,8.540909718,0,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-14,8,minute.maid,19264,9.865993348,0,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-14,8,dominicks,4992,8.51559191,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-14,8,tropicana,7616,8.938006577000001,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-21,8,tropicana,5312,8.577723691000001,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-21,8,minute.maid,170432,12.04609167,1,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-21,8,dominicks,6400,8.764053269,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-28,8,minute.maid,39680,10.58860256,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-28,8,dominicks,14912,9.609921537,1,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-03-28,8,tropicana,161792,11.99406684,1,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-04,8,dominicks,34624,10.45230236,0,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-04,8,minute.maid,8128,9.00307017,1,2.17,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-04,8,tropicana,17280,9.757305042,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-11,8,tropicana,47040,10.75875358,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-11,8,minute.maid,9088,9.114710141,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-11,8,dominicks,10368,9.246479419,0,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-18,8,tropicana,14464,9.579418083,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-18,8,minute.maid,6720,8.812843434,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-18,8,dominicks,194880,12.18013926,1,0.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-25,8,tropicana,52928,10.87668778,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-25,8,dominicks,5696,8.647519453,1,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-04-25,8,minute.maid,7552,8.929567707999999,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-02,8,dominicks,7168,8.877381955,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-02,8,minute.maid,24768,10.11730778,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-02,8,tropicana,21184,9.961001459,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-09,8,tropicana,7360,8.903815212,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-09,8,minute.maid,183296,12.11885761,1,1.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-09,8,dominicks,2880,7.965545572999999,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-16,8,dominicks,12288,9.416378455,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-16,8,minute.maid,8896,9.093357017,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-05-16,8,tropicana,15744,9.664214619,1,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-06,8,dominicks,9280,9.135616826,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-06,8,tropicana,46912,10.75602879,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-06,8,minute.maid,6656,8.803273982999999,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-13,8,tropicana,18240,9.811372264,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-13,8,dominicks,25856,10.16029796,1,1.26,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-13,8,minute.maid,35456,10.47604777,1,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-20,8,dominicks,19264,9.865993348,0,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-20,8,minute.maid,17408,9.76468515,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-20,8,tropicana,6464,8.774003599999999,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-27,8,dominicks,6848,8.831711918,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-27,8,minute.maid,75520,11.2321528,1,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-06-27,8,tropicana,8512,9.049232212,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-04,8,tropicana,28416,10.25470765,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-04,8,minute.maid,21632,9.981928979,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-04,8,dominicks,12928,9.467150781,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-11,8,dominicks,44032,10.69267192,1,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-11,8,minute.maid,8384,9.034080407000001,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-11,8,tropicana,16960,9.738612909,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-18,8,minute.maid,9920,9.2023082,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-18,8,dominicks,25408,10.14281936,0,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-18,8,tropicana,8320,9.026417534,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-25,8,dominicks,38336,10.55414468,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-25,8,minute.maid,6592,8.793612072,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-07-25,8,tropicana,11136,9.317938383,1,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-01,8,tropicana,27712,10.22962081,0,2.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-01,8,minute.maid,7168,8.877381955,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-01,8,dominicks,152384,11.93415893,1,0.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-08,8,dominicks,54464,10.90529521,0,0.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-08,8,minute.maid,6208,8.733594062,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-08,8,tropicana,7744,8.954673629,0,2.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-15,8,minute.maid,30528,10.32639957,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-15,8,dominicks,47680,10.772267300000001,1,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-15,8,tropicana,5184,8.553332238,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-22,8,dominicks,14720,9.596962392,0,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-22,8,minute.maid,155840,11.95658512,1,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-22,8,tropicana,6272,8.743850562,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-29,8,tropicana,7744,8.954673629,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-29,8,dominicks,53248,10.88271552,0,1.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-08-29,8,minute.maid,10752,9.282847063,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-05,8,tropicana,53184,10.88151288,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-05,8,minute.maid,6976,8.850230966,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-05,8,dominicks,40576,10.61093204,0,1.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-12,8,dominicks,25856,10.16029796,0,1.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-12,8,tropicana,6784,8.822322178,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-12,8,minute.maid,31872,10.36948316,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-19,8,dominicks,24064,10.08847223,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-19,8,minute.maid,5312,8.577723691000001,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-19,8,tropicana,8000,8.987196821,1,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-26,8,tropicana,6592,8.793612072,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-26,8,minute.maid,33344,10.41463313,0,1.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-09-26,8,dominicks,15680,9.660141293999999,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-03,8,minute.maid,13504,9.510741217,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-03,8,dominicks,16576,9.715711145,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-03,8,tropicana,5248,8.565602331000001,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-10,8,dominicks,49664,10.8130356,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-10,8,tropicana,6592,8.793612072,0,2.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-10,8,minute.maid,13504,9.510741217,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-17,8,dominicks,10752,9.282847063,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-17,8,minute.maid,335808,12.72429485,1,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-17,8,tropicana,5888,8.68067166,0,2.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-24,8,tropicana,6336,8.754002933999999,0,2.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-24,8,dominicks,9792,9.189321005,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-24,8,minute.maid,13120,9.481893063,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-31,8,tropicana,5888,8.68067166,0,2.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-31,8,minute.maid,49664,10.8130356,0,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-10-31,8,dominicks,7104,8.868413285,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-07,8,dominicks,9216,9.128696383,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-07,8,tropicana,6080,8.712759975,0,2.94,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-07,8,minute.maid,10880,9.29468152,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-14,8,tropicana,6848,8.831711918,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-14,8,minute.maid,9984,9.208739091,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-14,8,dominicks,12608,9.442086812000001,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-21,8,tropicana,54016,10.89703558,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-21,8,minute.maid,9216,9.128696383,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-21,8,dominicks,16448,9.707959168,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-28,8,tropicana,10368,9.246479419,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-28,8,dominicks,27968,10.23881628,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-11-28,8,minute.maid,7680,8.946374826,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-05,8,minute.maid,7296,8.895081532,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-05,8,dominicks,37824,10.5406991,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-05,8,tropicana,5568,8.624791202,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-12,8,dominicks,33664,10.4241843,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-12,8,minute.maid,8192,9.010913347,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-12,8,tropicana,4864,8.489616424,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-19,8,tropicana,7232,8.886270902,0,2.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-19,8,minute.maid,6080,8.712759975,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-19,8,dominicks,17728,9.78290059,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-26,8,tropicana,15232,9.631153757,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-26,8,dominicks,25088,10.13014492,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1991-12-26,8,minute.maid,15040,9.618468598,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-02,8,minute.maid,9472,9.156095357,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-02,8,dominicks,13184,9.486759252,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-02,8,tropicana,47040,10.75875358,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-09,8,dominicks,3136,8.050703382,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-09,8,minute.maid,5888,8.68067166,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-09,8,tropicana,9280,9.135616826,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-16,8,tropicana,6720,8.812843434,0,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-16,8,minute.maid,14336,9.570529135,1,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-16,8,dominicks,5696,8.647519453,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-23,8,minute.maid,11712,9.368369236,1,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-23,8,dominicks,19008,9.852615222,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-23,8,tropicana,5056,8.528330936,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-30,8,minute.maid,7936,8.979164649,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-30,8,dominicks,121664,11.70901843,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-01-30,8,tropicana,6080,8.712759975,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-06,8,tropicana,10496,9.258749511,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-06,8,minute.maid,5184,8.553332238,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-06,8,dominicks,38848,10.56741187,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-13,8,minute.maid,7168,8.877381955,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-13,8,dominicks,6144,8.723231275,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-13,8,tropicana,39040,10.57234204,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-20,8,dominicks,13632,9.520175249,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-20,8,minute.maid,216064,12.28332994,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-20,8,tropicana,4480,8.407378325,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-27,8,tropicana,61760,11.03101119,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-27,8,minute.maid,15040,9.618468598,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-02-27,8,dominicks,9792,9.189321005,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-05,8,tropicana,15360,9.639522007,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-05,8,minute.maid,11840,9.379238908,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-05,8,dominicks,86912,11.37265139,1,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-12,8,minute.maid,25472,10.14533509,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-12,8,dominicks,24512,10.10691807,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-12,8,tropicana,54976,10.91465201,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-19,8,minute.maid,16384,9.704060528,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-19,8,dominicks,58048,10.96902553,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-19,8,tropicana,34368,10.44488118,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-26,8,tropicana,10752,9.282847063,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-26,8,minute.maid,20480,9.927204079,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-03-26,8,dominicks,13952,9.543378146,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-02,8,minute.maid,34688,10.45414909,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-02,8,dominicks,15168,9.626943225,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-02,8,tropicana,20096,9.908276069,1,2.5,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-09,8,dominicks,14592,9.588228712000001,0,1.58,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-09,8,minute.maid,22400,10.01681624,0,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-09,8,tropicana,16192,9.692272572,0,2.5,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-16,8,tropicana,6528,8.783855897,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-16,8,minute.maid,7808,8.962904128,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-16,8,dominicks,145088,11.88509573,1,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-23,8,tropicana,8320,9.026417534,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-23,8,minute.maid,48064,10.78028874,1,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-23,8,dominicks,43712,10.68537794,0,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-30,8,tropicana,30784,10.33475035,1,2.16,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-30,8,minute.maid,7360,8.903815212,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-04-30,8,dominicks,20608,9.933434629,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-07,8,tropicana,18048,9.800790154,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-07,8,minute.maid,6272,8.743850562,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-07,8,dominicks,18752,9.839055692,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-14,8,tropicana,12864,9.462187991,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-14,8,minute.maid,6400,8.764053269,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-14,8,dominicks,20160,9.911455722000001,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-21,8,tropicana,7168,8.877381955,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-21,8,minute.maid,54592,10.90764263,1,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-21,8,dominicks,18688,9.835636886,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-28,8,minute.maid,8128,9.00307017,0,2.39,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-28,8,tropicana,9024,9.107642974,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-05-28,8,dominicks,133824,11.80428078,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-04,8,tropicana,84992,11.35031241,1,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-04,8,minute.maid,4928,8.502688505,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-04,8,dominicks,63488,11.05860619,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-11,8,minute.maid,5440,8.60153434,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-11,8,tropicana,14144,9.557045785,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-11,8,dominicks,71040,11.17099838,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-25,8,tropicana,7488,8.921057017999999,1,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-25,8,minute.maid,5888,8.68067166,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-06-25,8,dominicks,15360,9.639522007,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-02,8,minute.maid,23872,10.0804615,1,2.02,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-02,8,dominicks,17728,9.78290059,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-02,8,tropicana,12352,9.421573272,0,2.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-09,8,tropicana,5696,8.647519453,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-09,8,minute.maid,6848,8.831711918,1,2.19,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-09,8,dominicks,24256,10.09641929,0,1.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-16,8,minute.maid,8192,9.010913347,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-16,8,dominicks,19968,9.901886271,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-16,8,tropicana,7680,8.946374826,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-23,8,dominicks,15936,9.67633598,0,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-23,8,minute.maid,55040,10.91581547,1,2.29,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-23,8,tropicana,5440,8.60153434,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-30,8,tropicana,5632,8.636219898,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-30,8,minute.maid,6528,8.783855897,0,2.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-07-30,8,dominicks,76352,11.24310951,1,1.49,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-06,8,tropicana,8960,9.100525506,1,2.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-06,8,minute.maid,6208,8.733594062,1,2.45,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-06,8,dominicks,17408,9.76468515,1,1.69,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-13,8,minute.maid,94720,11.45868045,1,1.99,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-13,8,tropicana,6080,8.712759975,0,2.89,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-13,8,dominicks,17536,9.77201119,0,1.79,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1992-08-20,8,dominicks,31232,10.34919849,0,1.59,0.252394035,0.095173274,10.59700966,0.054227156,0.131749698,0.035243328,0.283074736,2.636332801,1.5,2.905384316,0.641015947
1 WeekStarting Store Brand Quantity logQuantity Advert Price Age60 COLLEGE INCOME Hincome150 Large HH Minorities WorkingWoman SSTRDIST SSTRVOL CPDIST5 CPWVOL5
2 1990-06-14 2 dominicks 10560 9.264828557000001 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
3 1990-06-14 2 minute.maid 4480 8.407378325 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
4 1990-06-14 2 tropicana 8256 9.018695487999999 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
5 1990-07-26 2 dominicks 8000 8.987196821 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
6 1990-07-26 2 minute.maid 4672 8.449342525 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
7 1990-07-26 2 tropicana 6144 8.723231275 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
8 1990-08-02 2 tropicana 3840 8.253227646000001 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
9 1990-08-02 2 minute.maid 20160 9.911455722000001 1 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
10 1990-08-02 2 dominicks 6848 8.831711918 1 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
11 1990-08-09 2 dominicks 2880 7.965545572999999 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
12 1990-08-09 2 minute.maid 2688 7.896552702 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
13 1990-08-09 2 tropicana 8000 8.987196821 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
14 1990-08-23 2 dominicks 1600 7.377758908 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
15 1990-08-23 2 minute.maid 3008 8.009030685 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
16 1990-08-23 2 tropicana 8896 9.093357017 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
17 1990-08-30 2 tropicana 7168 8.877381955 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
18 1990-08-30 2 minute.maid 4672 8.449342525 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
19 1990-08-30 2 dominicks 25344 10.140297300000002 1 1.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
20 1990-09-06 2 dominicks 10752 9.282847063 0 1.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
21 1990-09-06 2 minute.maid 2752 7.920083199 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
22 1990-09-06 2 tropicana 10880 9.29468152 0 3.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
23 1990-09-13 2 minute.maid 26176 10.17259824 1 2.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
24 1990-09-13 2 dominicks 6656 8.803273982999999 0 1.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
25 1990-09-13 2 tropicana 7744 8.954673629 0 3.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
26 1990-09-20 2 dominicks 6592 8.793612072 0 1.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
27 1990-09-20 2 minute.maid 3712 8.219326094 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
28 1990-09-20 2 tropicana 8512 9.049232212 0 3.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
29 1990-10-11 2 tropicana 5504 8.61323038 0 3.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
30 1990-10-11 2 minute.maid 30656 10.33058368 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
31 1990-10-11 2 dominicks 1728 7.454719948999999 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
32 1990-10-18 2 tropicana 5888 8.68067166 0 3.56 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
33 1990-10-18 2 minute.maid 3840 8.253227646000001 0 2.98 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
34 1990-10-18 2 dominicks 33792 10.42797937 1 1.24 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
35 1990-10-25 2 tropicana 8384 9.034080407000001 0 3.56 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
36 1990-10-25 2 minute.maid 2816 7.943072717000001 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
37 1990-10-25 2 dominicks 1920 7.560080465 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
38 1990-11-01 2 tropicana 5952 8.691482577 0 3.56 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
39 1990-11-01 2 minute.maid 23104 10.04776104 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
40 1990-11-01 2 dominicks 8960 9.100525506 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
41 1990-11-08 2 dominicks 11392 9.340666634 0 1.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
42 1990-11-08 2 tropicana 6848 8.831711918 0 3.56 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
43 1990-11-08 2 minute.maid 3392 8.129174997 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
44 1990-11-15 2 tropicana 9216 9.128696383 0 3.87 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
45 1990-11-15 2 minute.maid 26304 10.1774763 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
46 1990-11-15 2 dominicks 28416 10.25470765 0 0.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
47 1990-11-22 2 dominicks 17152 9.749870064 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
48 1990-11-22 2 tropicana 12160 9.405907156 0 2.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
49 1990-11-22 2 minute.maid 6336 8.754002933999999 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
50 1990-11-29 2 tropicana 12672 9.447150114 0 2.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
51 1990-11-29 2 minute.maid 9920 9.2023082 0 3.17 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
52 1990-11-29 2 dominicks 26560 10.1871616 1 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
53 1990-12-06 2 dominicks 6336 8.754002933999999 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
54 1990-12-06 2 minute.maid 25280 10.13776885 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
55 1990-12-06 2 tropicana 6528 8.783855897 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
56 1990-12-13 2 dominicks 26368 10.17990643 1 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
57 1990-12-13 2 tropicana 6144 8.723231275 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
58 1990-12-13 2 minute.maid 14848 9.605620455 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
59 1990-12-20 2 tropicana 21120 9.957975738 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
60 1990-12-20 2 minute.maid 12288 9.416378455 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
61 1990-12-20 2 dominicks 896 6.797940412999999 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
62 1990-12-27 2 tropicana 12416 9.426741242 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
63 1990-12-27 2 minute.maid 6272 8.743850562 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
64 1990-12-27 2 dominicks 1472 7.294377299 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
65 1991-01-03 2 tropicana 9472 9.156095357 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
66 1991-01-03 2 minute.maid 9152 9.121727714 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
67 1991-01-03 2 dominicks 1344 7.2034055210000005 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
68 1991-01-10 2 tropicana 17920 9.793672686 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
69 1991-01-10 2 minute.maid 4160 8.333270353 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
70 1991-01-10 2 dominicks 111680 11.62339292 1 0.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
71 1991-01-17 2 tropicana 9408 9.14931567 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
72 1991-01-17 2 minute.maid 10176 9.227787286 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
73 1991-01-17 2 dominicks 1856 7.526178913 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
74 1991-01-24 2 tropicana 6272 8.743850562 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
75 1991-01-24 2 minute.maid 29056 10.27698028 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
76 1991-01-24 2 dominicks 5568 8.624791202 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
77 1991-01-31 2 tropicana 6912 8.841014311 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
78 1991-01-31 2 minute.maid 7104 8.868413285 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
79 1991-01-31 2 dominicks 32064 10.37548918 1 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
80 1991-02-07 2 tropicana 16768 9.727227587 0 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
81 1991-02-07 2 dominicks 4352 8.378390789 0 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
82 1991-02-07 2 minute.maid 7488 8.921057017999999 0 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
83 1991-02-14 2 dominicks 704 6.556778356000001 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
84 1991-02-14 2 minute.maid 4224 8.348537825 0 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
85 1991-02-14 2 tropicana 6272 8.743850562 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
86 1991-02-21 2 tropicana 7936 8.979164649 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
87 1991-02-21 2 minute.maid 8960 9.100525506 0 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
88 1991-02-21 2 dominicks 13760 9.529521112000001 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
89 1991-02-28 2 tropicana 6144 8.723231275 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
90 1991-02-28 2 minute.maid 22464 10.01966931 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
91 1991-02-28 2 dominicks 43328 10.67655436 1 1.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
92 1991-03-07 2 tropicana 7936 8.979164649 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
93 1991-03-07 2 minute.maid 3840 8.253227646000001 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
94 1991-03-07 2 dominicks 57600 10.96127785 1 1.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
95 1991-03-14 2 tropicana 7808 8.962904128 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
96 1991-03-14 2 minute.maid 12992 9.472089062 0 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
97 1991-03-14 2 dominicks 704 6.556778356000001 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
98 1991-03-21 2 tropicana 6080 8.712759975 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
99 1991-03-21 2 minute.maid 70144 11.15830555 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
100 1991-03-21 2 dominicks 6016 8.702177866 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
101 1991-03-28 2 tropicana 42176 10.64960662 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
102 1991-03-28 2 dominicks 10368 9.246479419 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
103 1991-03-28 2 minute.maid 21248 9.964018052 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
104 1991-04-04 2 dominicks 12608 9.442086812000001 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
105 1991-04-04 2 minute.maid 5696 8.647519453 1 2.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
106 1991-04-04 2 tropicana 4928 8.502688505 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
107 1991-04-11 2 tropicana 29504 10.29228113 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
108 1991-04-11 2 minute.maid 7680 8.946374826 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
109 1991-04-11 2 dominicks 6336 8.754002933999999 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
110 1991-04-18 2 tropicana 9984 9.208739091 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
111 1991-04-18 2 minute.maid 6336 8.754002933999999 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
112 1991-04-18 2 dominicks 140736 11.85464107 1 0.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
113 1991-04-25 2 tropicana 35200 10.46880136 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
114 1991-04-25 2 dominicks 960 6.866933285 1 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
115 1991-04-25 2 minute.maid 8576 9.056722882999999 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
116 1991-05-02 2 dominicks 1216 7.103322062999999 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
117 1991-05-02 2 minute.maid 15104 9.622714887999999 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
118 1991-05-02 2 tropicana 23936 10.08313888 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
119 1991-05-09 2 tropicana 7104 8.868413285 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
120 1991-05-09 2 minute.maid 76480 11.24478455 1 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
121 1991-05-09 2 dominicks 1664 7.416979621 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
122 1991-05-16 2 dominicks 4992 8.51559191 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
123 1991-05-16 2 minute.maid 5056 8.528330936 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
124 1991-05-16 2 tropicana 24512 10.10691807 1 2.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
125 1991-05-23 2 tropicana 6336 8.754002933999999 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
126 1991-05-23 2 minute.maid 4736 8.462948177000001 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
127 1991-05-23 2 dominicks 27968 10.23881628 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
128 1991-05-30 2 dominicks 12160 9.405907156 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
129 1991-05-30 2 minute.maid 4480 8.407378325 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
130 1991-05-30 2 tropicana 6080 8.712759975 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
131 1991-06-06 2 tropicana 33536 10.42037477 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
132 1991-06-06 2 minute.maid 4032 8.30201781 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
133 1991-06-06 2 dominicks 2240 7.714231145 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
134 1991-06-13 2 dominicks 5504 8.61323038 1 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
135 1991-06-13 2 minute.maid 14784 9.601300794 1 1.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
136 1991-06-13 2 tropicana 13248 9.491601877 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
137 1991-06-20 2 tropicana 6208 8.733594062 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
138 1991-06-20 2 dominicks 8832 9.086136769 0 1.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
139 1991-06-20 2 minute.maid 12096 9.400630097999999 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
140 1991-06-27 2 dominicks 2624 7.87245515 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
141 1991-06-27 2 minute.maid 41792 10.64046021 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
142 1991-06-27 2 tropicana 10624 9.270870872 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
143 1991-07-04 2 tropicana 44672 10.70710219 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
144 1991-07-04 2 minute.maid 10560 9.264828557000001 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
145 1991-07-04 2 dominicks 10432 9.252633284 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
146 1991-07-18 2 tropicana 20096 9.908276069 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
147 1991-07-18 2 dominicks 8320 9.026417534 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
148 1991-07-18 2 minute.maid 4224 8.348537825 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
149 1991-07-25 2 dominicks 6784 8.822322178 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
150 1991-07-25 2 minute.maid 2880 7.965545572999999 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
151 1991-07-25 2 tropicana 9152 9.121727714 1 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
152 1991-08-01 2 tropicana 21952 9.996613531 0 2.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
153 1991-08-01 2 minute.maid 3968 8.286017467999999 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
154 1991-08-01 2 dominicks 60544 11.01112565 1 0.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
155 1991-08-08 2 dominicks 20608 9.933434629 0 0.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
156 1991-08-08 2 minute.maid 3712 8.219326094 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
157 1991-08-08 2 tropicana 13568 9.515469357999999 0 2.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
158 1991-08-29 2 tropicana 4160 8.333270353 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
159 1991-08-29 2 minute.maid 2816 7.943072717000001 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
160 1991-08-29 2 dominicks 16064 9.684336023 0 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
161 1991-09-05 2 tropicana 39424 10.58213005 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
162 1991-09-05 2 minute.maid 4288 8.363575702999999 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
163 1991-09-05 2 dominicks 12480 9.431882642 0 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
164 1991-09-12 2 tropicana 5632 8.636219898 0 3.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
165 1991-09-12 2 minute.maid 18240 9.811372264 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
166 1991-09-12 2 dominicks 17024 9.742379392 0 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
167 1991-09-19 2 dominicks 13440 9.505990614 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
168 1991-09-19 2 minute.maid 7360 8.903815212 0 1.95 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
169 1991-09-19 2 tropicana 9024 9.107642974 1 2.68 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
170 1991-09-26 2 tropicana 6016 8.702177866 0 3.44 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
171 1991-09-26 2 minute.maid 7808 8.962904128 0 1.83 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
172 1991-09-26 2 dominicks 10112 9.221478116 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
173 1991-10-03 2 dominicks 9088 9.114710141 0 1.56 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
174 1991-10-03 2 minute.maid 13504 9.510741217 0 1.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
175 1991-10-03 2 tropicana 7744 8.954673629 0 3.14 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
176 1991-10-10 2 tropicana 6784 8.822322178 0 3.07 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
177 1991-10-10 2 dominicks 22848 10.03661887 1 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
178 1991-10-10 2 minute.maid 10048 9.215128888999999 0 1.91 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
179 1991-10-17 2 dominicks 6976 8.850230966 0 1.65 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
180 1991-10-17 2 minute.maid 135936 11.81993947 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
181 1991-10-17 2 tropicana 6784 8.822322178 0 3.07 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
182 1991-10-24 2 tropicana 6272 8.743850562 0 3.07 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
183 1991-10-24 2 minute.maid 5056 8.528330936 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
184 1991-10-24 2 dominicks 4160 8.333270353 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
185 1991-10-31 2 tropicana 5312 8.577723691000001 0 3.07 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
186 1991-10-31 2 minute.maid 27968 10.23881628 0 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
187 1991-10-31 2 dominicks 3328 8.110126802 0 1.83 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
188 1991-11-07 2 tropicana 9216 9.128696383 0 3.11 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
189 1991-11-07 2 minute.maid 4736 8.462948177000001 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
190 1991-11-07 2 dominicks 12096 9.400630097999999 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
191 1991-11-14 2 tropicana 7296 8.895081532 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
192 1991-11-14 2 minute.maid 7808 8.962904128 0 2.14 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
193 1991-11-14 2 dominicks 6208 8.733594062 0 1.76 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
194 1991-11-21 2 tropicana 34240 10.44114983 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
195 1991-11-21 2 minute.maid 12480 9.431882642 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
196 1991-11-21 2 dominicks 3008 8.009030685 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
197 1991-11-28 2 dominicks 19456 9.875910785 1 1.5 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
198 1991-11-28 2 minute.maid 9664 9.17616292 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
199 1991-11-28 2 tropicana 7168 8.877381955 0 2.64 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
200 1991-12-05 2 minute.maid 7168 8.877381955 0 2.06 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
201 1991-12-05 2 dominicks 16768 9.727227587 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
202 1991-12-05 2 tropicana 6080 8.712759975 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
203 1991-12-12 2 dominicks 13568 9.515469357999999 1 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
204 1991-12-12 2 minute.maid 4480 8.407378325 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
205 1991-12-12 2 tropicana 5120 8.540909718 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
206 1991-12-19 2 tropicana 8320 9.026417534 0 2.74 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
207 1991-12-19 2 minute.maid 5952 8.691482577 0 2.22 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
208 1991-12-19 2 dominicks 6080 8.712759975 0 1.61 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
209 1991-12-26 2 dominicks 10432 9.252633284 1 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
210 1991-12-26 2 minute.maid 21696 9.984883191 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
211 1991-12-26 2 tropicana 17728 9.78290059 0 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
212 1992-01-02 2 minute.maid 12032 9.395325046 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
213 1992-01-02 2 dominicks 11712 9.368369236 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
214 1992-01-02 2 tropicana 13120 9.481893063 0 2.35 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
215 1992-01-09 2 dominicks 4032 8.30201781 0 1.76 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
216 1992-01-09 2 minute.maid 7040 8.859363449 0 2.12 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
217 1992-01-09 2 tropicana 13120 9.481893063 0 2.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
218 1992-01-16 2 dominicks 6336 8.754002933999999 0 1.82 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
219 1992-01-16 2 tropicana 9792 9.189321005 0 2.43 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
220 1992-01-16 2 minute.maid 10240 9.234056899 1 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
221 1992-01-23 2 tropicana 3520 8.166216269 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
222 1992-01-23 2 minute.maid 6848 8.831711918 1 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
223 1992-01-23 2 dominicks 13632 9.520175249 0 1.47 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
224 1992-01-30 2 tropicana 5504 8.61323038 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
225 1992-01-30 2 minute.maid 3968 8.286017467999999 0 2.61 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
226 1992-01-30 2 dominicks 45120 10.71708089 0 1.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
227 1992-02-06 2 tropicana 6720 8.812843434 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
228 1992-02-06 2 minute.maid 5888 8.68067166 0 2.26 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
229 1992-02-06 2 dominicks 9984 9.208739091 0 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
230 1992-02-13 2 tropicana 20224 9.914625297 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
231 1992-02-13 2 dominicks 4800 8.476371197 0 1.82 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
232 1992-02-13 2 minute.maid 6208 8.733594062 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
233 1992-02-20 2 dominicks 11776 9.373818841 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
234 1992-02-20 2 minute.maid 72256 11.18797065 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
235 1992-02-20 2 tropicana 5056 8.528330936 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
236 1992-02-27 2 tropicana 43584 10.68244539 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
237 1992-02-27 2 minute.maid 11520 9.351839934 0 2.11 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
238 1992-02-27 2 dominicks 11584 9.357380115 0 1.54 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
239 1992-03-05 2 tropicana 25728 10.15533517 0 1.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
240 1992-03-05 2 minute.maid 5824 8.66974259 0 2.35 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
241 1992-03-05 2 dominicks 51264 10.84474403 1 1.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
242 1992-03-12 2 tropicana 31808 10.36747311 0 1.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
243 1992-03-12 2 minute.maid 19392 9.872615889 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
244 1992-03-12 2 dominicks 14976 9.614204199 0 1.44 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
245 1992-03-19 2 tropicana 20736 9.939626599 0 1.91 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
246 1992-03-19 2 minute.maid 9536 9.162829389 0 2.1 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
247 1992-03-19 2 dominicks 30784 10.33475035 0 1.59 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
248 1992-03-26 2 tropicana 15168 9.626943225 0 2.81 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
249 1992-03-26 2 minute.maid 5312 8.577723691000001 0 2.28 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
250 1992-03-26 2 dominicks 12480 9.431882642 0 1.6 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
251 1992-04-02 2 tropicana 28096 10.2433825 1 2.5 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
252 1992-04-02 2 dominicks 3264 8.090708716 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
253 1992-04-02 2 minute.maid 14528 9.583833101 1 1.9 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
254 1992-04-09 2 dominicks 8768 9.078864009 0 1.48 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
255 1992-04-09 2 minute.maid 12416 9.426741242 0 2.12 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
256 1992-04-09 2 tropicana 12416 9.426741242 0 2.58 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
257 1992-04-16 2 tropicana 5376 8.589699882 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
258 1992-04-16 2 minute.maid 5376 8.589699882 0 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
259 1992-04-16 2 dominicks 70848 11.16829202 1 1.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
260 1992-04-23 2 tropicana 9792 9.189321005 0 2.67 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
261 1992-04-23 2 minute.maid 19008 9.852615222 1 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
262 1992-04-23 2 dominicks 18560 9.828764006 0 1.42 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
263 1992-04-30 2 tropicana 16960 9.738612909 1 2.39 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
264 1992-04-30 2 minute.maid 3904 8.269756948 0 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
265 1992-04-30 2 dominicks 9152 9.121727714 0 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
266 1992-05-07 2 tropicana 8320 9.026417534 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
267 1992-05-07 2 minute.maid 6336 8.754002933999999 0 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
268 1992-05-07 2 dominicks 9600 9.169518378 0 2.0 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
269 1992-05-14 2 tropicana 6912 8.841014311 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
270 1992-05-14 2 minute.maid 5440 8.60153434 0 2.79 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
271 1992-05-14 2 dominicks 4800 8.476371197 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
272 1992-05-21 2 tropicana 6976 8.850230966 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
273 1992-05-21 2 minute.maid 22400 10.01681624 1 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
274 1992-05-21 2 dominicks 9664 9.17616292 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
275 1992-05-28 2 minute.maid 3968 8.286017467999999 0 2.84 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
276 1992-05-28 2 tropicana 7232 8.886270902 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
277 1992-05-28 2 dominicks 45568 10.726961 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
278 1992-06-04 2 tropicana 51520 10.84972536 1 2.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
279 1992-06-04 2 minute.maid 3264 8.090708716 0 2.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
280 1992-06-04 2 dominicks 20992 9.951896692 0 1.74 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
281 1992-06-11 2 minute.maid 4352 8.378390789 0 2.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
282 1992-06-11 2 tropicana 22272 10.01108556 0 2.21 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
283 1992-06-11 2 dominicks 6592 8.793612072 0 2.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
284 1992-06-18 2 dominicks 4992 8.51559191 0 2.05 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
285 1992-06-18 2 minute.maid 4480 8.407378325 0 2.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
286 1992-06-18 2 tropicana 46144 10.73952222 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
287 1992-06-25 2 tropicana 4352 8.378390789 1 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
288 1992-06-25 2 minute.maid 3840 8.253227646000001 0 2.52 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
289 1992-06-25 2 dominicks 8064 8.99516499 0 1.24 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
290 1992-07-02 2 tropicana 17280 9.757305042 0 2.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
291 1992-07-02 2 minute.maid 13312 9.496421162999999 1 2.0 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
292 1992-07-02 2 dominicks 7360 8.903815212 0 1.61 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
293 1992-07-09 2 tropicana 5696 8.647519453 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
294 1992-07-09 2 minute.maid 3776 8.236420527 1 2.33 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
295 1992-07-09 2 dominicks 10048 9.215128888999999 0 1.4 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
296 1992-07-16 2 tropicana 6848 8.831711918 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
297 1992-07-16 2 dominicks 10112 9.221478116 0 1.91 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
298 1992-07-16 2 minute.maid 4800 8.476371197 0 2.89 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
299 1992-07-23 2 dominicks 9152 9.121727714 0 1.69 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
300 1992-07-23 2 minute.maid 24960 10.12502982 1 2.29 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
301 1992-07-23 2 tropicana 4416 8.392989587999999 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
302 1992-07-30 2 tropicana 4672 8.449342525 0 3.16 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
303 1992-07-30 2 minute.maid 4544 8.42156296 0 2.86 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
304 1992-07-30 2 dominicks 36288 10.49924239 1 1.49 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
305 1992-08-06 2 tropicana 7168 8.877381955 1 3.09 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
306 1992-08-06 2 minute.maid 3968 8.286017467999999 1 2.81 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
307 1992-08-06 2 dominicks 3776 8.236420527 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
308 1992-08-13 2 tropicana 5056 8.528330936 0 3.19 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
309 1992-08-13 2 dominicks 3328 8.110126802 0 1.97 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
310 1992-08-13 2 minute.maid 49600 10.81174611 1 1.99 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
311 1992-08-20 2 dominicks 13824 9.534161491 0 1.36 0.232864734 0.248934934 10.55320518 0.463887065 0.103953406 0.114279949 0.303585347 2.110122129 1.142857143 1.927279669 0.37692661299999997
312 1990-06-14 5 dominicks 1792 7.491087594 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
313 1990-06-14 5 minute.maid 4224 8.348537825 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
314 1990-06-14 5 tropicana 5888 8.68067166 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
315 1990-06-28 5 minute.maid 4352 8.378390789 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
316 1990-06-28 5 dominicks 2496 7.82244473 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
317 1990-06-28 5 tropicana 6976 8.850230966 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
318 1990-07-05 5 dominicks 2944 7.98752448 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
319 1990-07-05 5 minute.maid 4928 8.502688505 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
320 1990-07-05 5 tropicana 6528 8.783855897 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
321 1990-07-12 5 dominicks 1024 6.931471806 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
322 1990-07-12 5 minute.maid 31168 10.34714721 1 2.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
323 1990-07-12 5 tropicana 4928 8.502688505 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
324 1990-07-26 5 dominicks 4224 8.348537825 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
325 1990-07-26 5 minute.maid 10048 9.215128888999999 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
326 1990-07-26 5 tropicana 5312 8.577723691000001 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
327 1990-08-02 5 minute.maid 21760 9.987828701 1 2.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
328 1990-08-02 5 tropicana 5120 8.540909718 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
329 1990-08-02 5 dominicks 4544 8.42156296 1 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
330 1990-08-09 5 dominicks 1728 7.454719948999999 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
331 1990-08-09 5 minute.maid 4544 8.42156296 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
332 1990-08-09 5 tropicana 7936 8.979164649 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
333 1990-08-16 5 tropicana 6080 8.712759975 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
334 1990-08-16 5 minute.maid 52224 10.86329744 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
335 1990-08-16 5 dominicks 1216 7.103322062999999 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
336 1990-08-23 5 dominicks 1152 7.049254841000001 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
337 1990-08-23 5 minute.maid 3584 8.184234774 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
338 1990-08-23 5 tropicana 4160 8.333270353 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
339 1990-08-30 5 minute.maid 5120 8.540909718 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
340 1990-08-30 5 tropicana 5888 8.68067166 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
341 1990-08-30 5 dominicks 30144 10.31374118 1 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
342 1990-09-06 5 dominicks 8960 9.100525506 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
343 1990-09-06 5 minute.maid 4416 8.392989587999999 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
344 1990-09-06 5 tropicana 9536 9.162829389 0 3.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
345 1990-09-13 5 tropicana 8320 9.026417534 0 3.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
346 1990-09-13 5 dominicks 8192 9.010913347 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
347 1990-09-13 5 minute.maid 30208 10.31586207 1 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
348 1990-09-20 5 dominicks 6528 8.783855897 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
349 1990-09-20 5 minute.maid 4160 8.333270353 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
350 1990-09-20 5 tropicana 8000 8.987196821 0 3.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
351 1990-09-27 5 dominicks 34688 10.45414909 1 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
352 1990-09-27 5 minute.maid 4992 8.51559191 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
353 1990-09-27 5 tropicana 5824 8.66974259 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
354 1990-10-04 5 dominicks 4672 8.449342525 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
355 1990-10-04 5 minute.maid 13952 9.543378146 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
356 1990-10-04 5 tropicana 10624 9.270870872 1 3.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
357 1990-10-11 5 tropicana 6656 8.803273982999999 0 3.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
358 1990-10-11 5 dominicks 1088 6.992096427000001 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
359 1990-10-11 5 minute.maid 47680 10.772267300000001 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
360 1990-10-18 5 tropicana 5184 8.553332238 0 3.51 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
361 1990-10-18 5 minute.maid 7616 8.938006577000001 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
362 1990-10-18 5 dominicks 69440 11.14821835 1 1.24 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
363 1990-10-25 5 tropicana 4928 8.502688505 0 3.51 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
364 1990-10-25 5 minute.maid 8896 9.093357017 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
365 1990-10-25 5 dominicks 1280 7.154615357000001 0 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
366 1990-11-01 5 tropicana 5888 8.68067166 0 3.51 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
367 1990-11-01 5 minute.maid 28544 10.25920204 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
368 1990-11-01 5 dominicks 35456 10.47604777 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
369 1990-11-08 5 tropicana 5312 8.577723691000001 0 3.51 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
370 1990-11-08 5 dominicks 13824 9.534161491 0 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
371 1990-11-08 5 minute.maid 5440 8.60153434 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
372 1990-11-15 5 tropicana 9984 9.208739091 0 3.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
373 1990-11-15 5 minute.maid 52416 10.86696717 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
374 1990-11-15 5 dominicks 14208 9.561560465 0 0.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
375 1990-11-22 5 tropicana 8448 9.041685006 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
376 1990-11-22 5 dominicks 29312 10.28575227 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
377 1990-11-22 5 minute.maid 11712 9.368369236 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
378 1990-11-29 5 tropicana 10880 9.29468152 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
379 1990-11-29 5 minute.maid 13952 9.543378146 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
380 1990-11-29 5 dominicks 52992 10.87789624 1 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
381 1990-12-06 5 dominicks 15680 9.660141293999999 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
382 1990-12-06 5 minute.maid 36160 10.49570882 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
383 1990-12-06 5 tropicana 5696 8.647519453 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
384 1990-12-13 5 tropicana 5696 8.647519453 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
385 1990-12-13 5 minute.maid 12864 9.462187991 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
386 1990-12-13 5 dominicks 43520 10.68097588 1 1.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
387 1990-12-20 5 tropicana 32384 10.38541975 0 2.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
388 1990-12-20 5 minute.maid 22208 10.00820786 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
389 1990-12-20 5 dominicks 3904 8.269756948 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
390 1990-12-27 5 tropicana 10752 9.282847063 0 2.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
391 1990-12-27 5 minute.maid 9984 9.208739091 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
392 1990-12-27 5 dominicks 896 6.797940412999999 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
393 1991-01-03 5 tropicana 6912 8.841014311 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
394 1991-01-03 5 minute.maid 14016 9.547954812999999 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
395 1991-01-03 5 dominicks 2240 7.714231145 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
396 1991-01-10 5 tropicana 13440 9.505990614 0 2.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
397 1991-01-10 5 minute.maid 6080 8.712759975 0 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
398 1991-01-10 5 dominicks 125760 11.74213061 1 0.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
399 1991-01-17 5 tropicana 7808 8.962904128 0 2.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
400 1991-01-17 5 minute.maid 7808 8.962904128 0 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
401 1991-01-17 5 dominicks 1408 7.249925537 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
402 1991-01-24 5 tropicana 5248 8.565602331000001 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
403 1991-01-24 5 minute.maid 40896 10.61878754 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
404 1991-01-24 5 dominicks 7232 8.886270902 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
405 1991-01-31 5 tropicana 6208 8.733594062 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
406 1991-01-31 5 minute.maid 6272 8.743850562 0 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
407 1991-01-31 5 dominicks 41216 10.62658181 1 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
408 1991-02-07 5 tropicana 21440 9.973013615 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
409 1991-02-07 5 minute.maid 7872 8.971067439 0 2.41 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
410 1991-02-07 5 dominicks 9024 9.107642974 0 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
411 1991-02-14 5 dominicks 1600 7.377758908 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
412 1991-02-14 5 tropicana 7360 8.903815212 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
413 1991-02-14 5 minute.maid 6144 8.723231275 0 2.41 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
414 1991-02-21 5 tropicana 6720 8.812843434 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
415 1991-02-21 5 minute.maid 8448 9.041685006 0 2.41 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
416 1991-02-21 5 dominicks 2496 7.82244473 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
417 1991-02-28 5 tropicana 6656 8.803273982999999 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
418 1991-02-28 5 minute.maid 18688 9.835636886 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
419 1991-02-28 5 dominicks 6336 8.754002933999999 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
420 1991-03-07 5 tropicana 6016 8.702177866 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
421 1991-03-07 5 minute.maid 6272 8.743850562 0 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
422 1991-03-07 5 dominicks 56384 10.93994071 1 1.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
423 1991-03-14 5 tropicana 6144 8.723231275 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
424 1991-03-14 5 minute.maid 12096 9.400630097999999 0 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
425 1991-03-14 5 dominicks 1600 7.377758908 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
426 1991-03-21 5 tropicana 4928 8.502688505 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
427 1991-03-21 5 minute.maid 73216 11.20116926 1 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
428 1991-03-21 5 dominicks 2944 7.98752448 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
429 1991-03-28 5 tropicana 67712 11.1230187 1 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
430 1991-03-28 5 minute.maid 18944 9.849242538 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
431 1991-03-28 5 dominicks 13504 9.510741217 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
432 1991-04-04 5 dominicks 5376 8.589699882 0 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
433 1991-04-04 5 tropicana 8640 9.064157862 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
434 1991-04-04 5 minute.maid 6400 8.764053269 1 2.46 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
435 1991-04-11 5 tropicana 35520 10.477851199999998 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
436 1991-04-11 5 minute.maid 8640 9.064157862 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
437 1991-04-11 5 dominicks 6656 8.803273982999999 0 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
438 1991-04-18 5 tropicana 9664 9.17616292 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
439 1991-04-18 5 minute.maid 7296 8.895081532 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
440 1991-04-18 5 dominicks 95680 11.46876457 1 0.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
441 1991-04-25 5 tropicana 49088 10.80136989 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
442 1991-04-25 5 minute.maid 12480 9.431882642 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
443 1991-04-25 5 dominicks 896 6.797940412999999 1 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
444 1991-05-02 5 dominicks 1728 7.454719948999999 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
445 1991-05-02 5 minute.maid 14144 9.557045785 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
446 1991-05-02 5 tropicana 14912 9.609921537 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
447 1991-05-09 5 minute.maid 88256 11.38799696 1 1.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
448 1991-05-09 5 tropicana 6464 8.774003599999999 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
449 1991-05-09 5 dominicks 1280 7.154615357000001 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
450 1991-05-16 5 dominicks 5696 8.647519453 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
451 1991-05-16 5 minute.maid 6848 8.831711918 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
452 1991-05-16 5 tropicana 25024 10.12759064 1 2.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
453 1991-05-23 5 minute.maid 7808 8.962904128 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
454 1991-05-23 5 tropicana 6272 8.743850562 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
455 1991-05-23 5 dominicks 28288 10.25019297 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
456 1991-05-30 5 dominicks 4864 8.489616424 0 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
457 1991-05-30 5 minute.maid 6272 8.743850562 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
458 1991-05-30 5 tropicana 5056 8.528330936 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
459 1991-06-06 5 minute.maid 6144 8.723231275 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
460 1991-06-06 5 tropicana 47616 10.77092412 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
461 1991-06-06 5 dominicks 2880 7.965545572999999 0 2.09 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
462 1991-06-13 5 dominicks 5760 8.658692754 1 1.41 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
463 1991-06-13 5 minute.maid 27776 10.23192762 1 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
464 1991-06-13 5 tropicana 13888 9.538780437 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
465 1991-06-20 5 tropicana 6144 8.723231275 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
466 1991-06-20 5 minute.maid 20800 9.942708266 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
467 1991-06-20 5 dominicks 15040 9.618468598 0 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
468 1991-06-27 5 dominicks 5120 8.540909718 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
469 1991-06-27 5 minute.maid 45696 10.72976605 1 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
470 1991-06-27 5 tropicana 9344 9.142489705 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
471 1991-07-04 5 minute.maid 14336 9.570529135 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
472 1991-07-04 5 tropicana 32896 10.40110635 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
473 1991-07-04 5 dominicks 3264 8.090708716 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
474 1991-07-11 5 dominicks 9536 9.162829389 1 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
475 1991-07-11 5 minute.maid 4928 8.502688505 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
476 1991-07-11 5 tropicana 21056 9.954940834 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
477 1991-07-18 5 tropicana 15360 9.639522007 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
478 1991-07-18 5 minute.maid 4608 8.435549202 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
479 1991-07-18 5 dominicks 6208 8.733594062 0 1.59 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
480 1991-07-25 5 dominicks 6592 8.793612072 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
481 1991-07-25 5 tropicana 8000 8.987196821 1 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
482 1991-07-25 5 minute.maid 5248 8.565602331000001 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
483 1991-08-01 5 tropicana 21120 9.957975738 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
484 1991-08-01 5 dominicks 63552 11.05961375 1 0.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
485 1991-08-01 5 minute.maid 4224 8.348537825 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
486 1991-08-08 5 dominicks 27968 10.23881628 0 0.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
487 1991-08-08 5 minute.maid 4288 8.363575702999999 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
488 1991-08-08 5 tropicana 11904 9.384629757 0 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
489 1991-08-15 5 minute.maid 16896 9.734832187 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
490 1991-08-15 5 tropicana 5056 8.528330936 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
491 1991-08-15 5 dominicks 21760 9.987828701 1 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
492 1991-08-22 5 dominicks 2688 7.896552702 0 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
493 1991-08-22 5 minute.maid 77184 11.25394746 1 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
494 1991-08-22 5 tropicana 4608 8.435549202 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
495 1991-08-29 5 tropicana 6016 8.702177866 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
496 1991-08-29 5 minute.maid 5184 8.553332238 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
497 1991-08-29 5 dominicks 10432 9.252633284 0 1.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
498 1991-09-05 5 tropicana 50752 10.83470631 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
499 1991-09-05 5 minute.maid 5248 8.565602331000001 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
500 1991-09-05 5 dominicks 9792 9.189321005 0 1.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
501 1991-09-12 5 minute.maid 20672 9.936535407000001 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
502 1991-09-12 5 tropicana 5632 8.636219898 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
503 1991-09-12 5 dominicks 8448 9.041685006 0 1.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
504 1991-09-26 5 tropicana 6400 8.764053269 0 3.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
505 1991-09-26 5 dominicks 6912 8.841014311 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
506 1991-09-26 5 minute.maid 12352 9.421573272 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
507 1991-10-03 5 dominicks 8256 9.018695487999999 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
508 1991-10-03 5 minute.maid 12032 9.395325046 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
509 1991-10-03 5 tropicana 5440 8.60153434 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
510 1991-10-10 5 minute.maid 13440 9.505990614 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
511 1991-10-10 5 dominicks 28672 10.26367632 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
512 1991-10-10 5 tropicana 8128 9.00307017 0 2.94 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
513 1991-10-24 5 tropicana 7232 8.886270902 0 2.94 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
514 1991-10-24 5 minute.maid 5824 8.66974259 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
515 1991-10-24 5 dominicks 4416 8.392989587999999 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
516 1991-10-31 5 tropicana 7168 8.877381955 0 2.94 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
517 1991-10-31 5 minute.maid 50112 10.82201578 0 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
518 1991-10-31 5 dominicks 1856 7.526178913 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
519 1991-11-07 5 minute.maid 5184 8.553332238 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
520 1991-11-07 5 tropicana 7872 8.971067439 0 2.94 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
521 1991-11-07 5 dominicks 6528 8.783855897 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
522 1991-11-14 5 tropicana 7552 8.929567707999999 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
523 1991-11-14 5 minute.maid 8384 9.034080407000001 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
524 1991-11-14 5 dominicks 6080 8.712759975 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
525 1991-11-21 5 tropicana 69504 11.14913958 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
526 1991-11-21 5 dominicks 3456 8.14786713 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
527 1991-11-21 5 minute.maid 10112 9.221478116 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
528 1991-11-28 5 dominicks 25856 10.16029796 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
529 1991-11-28 5 minute.maid 8384 9.034080407000001 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
530 1991-11-28 5 tropicana 8960 9.100525506 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
531 1991-12-05 5 tropicana 6912 8.841014311 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
532 1991-12-05 5 dominicks 25728 10.15533517 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
533 1991-12-05 5 minute.maid 11456 9.346268889 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
534 1991-12-12 5 dominicks 23552 10.06696602 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
535 1991-12-12 5 minute.maid 5952 8.691482577 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
536 1991-12-12 5 tropicana 6656 8.803273982999999 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
537 1991-12-19 5 tropicana 8192 9.010913347 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
538 1991-12-19 5 dominicks 2944 7.98752448 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
539 1991-12-19 5 minute.maid 8512 9.049232212 0 2.26 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
540 1991-12-26 5 dominicks 5888 8.68067166 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
541 1991-12-26 5 minute.maid 27968 10.23881628 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
542 1991-12-26 5 tropicana 13440 9.505990614 0 2.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
543 1992-01-02 5 tropicana 12160 9.405907156 0 2.39 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
544 1992-01-02 5 dominicks 6848 8.831711918 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
545 1992-01-02 5 minute.maid 24000 10.08580911 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
546 1992-01-09 5 dominicks 1792 7.491087594 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
547 1992-01-09 5 minute.maid 6848 8.831711918 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
548 1992-01-09 5 tropicana 11840 9.379238908 0 2.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
549 1992-01-16 5 tropicana 8640 9.064157862 0 2.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
550 1992-01-16 5 dominicks 5248 8.565602331000001 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
551 1992-01-16 5 minute.maid 15104 9.622714887999999 1 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
552 1992-01-23 5 tropicana 5888 8.68067166 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
553 1992-01-23 5 minute.maid 11392 9.340666634 1 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
554 1992-01-23 5 dominicks 16768 9.727227587 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
555 1992-01-30 5 tropicana 7424 8.912473275 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
556 1992-01-30 5 minute.maid 5824 8.66974259 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
557 1992-01-30 5 dominicks 52160 10.8620712 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
558 1992-02-06 5 tropicana 5632 8.636219898 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
559 1992-02-06 5 minute.maid 7488 8.921057017999999 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
560 1992-02-06 5 dominicks 16640 9.719564714 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
561 1992-02-13 5 tropicana 33600 10.42228135 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
562 1992-02-13 5 minute.maid 8320 9.026417534 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
563 1992-02-13 5 dominicks 1344 7.2034055210000005 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
564 1992-02-20 5 dominicks 4608 8.435549202 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
565 1992-02-20 5 tropicana 5376 8.589699882 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
566 1992-02-20 5 minute.maid 99904 11.511965 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
567 1992-02-27 5 tropicana 54272 10.90176372 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
568 1992-02-27 5 minute.maid 6976 8.850230966 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
569 1992-02-27 5 dominicks 12672 9.447150114 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
570 1992-03-05 5 tropicana 33600 10.42228135 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
571 1992-03-05 5 minute.maid 9984 9.208739091 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
572 1992-03-05 5 dominicks 48640 10.79220152 1 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
573 1992-03-12 5 tropicana 24448 10.10430369 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
574 1992-03-12 5 minute.maid 32832 10.39915893 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
575 1992-03-12 5 dominicks 13248 9.491601877 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
576 1992-03-19 5 tropicana 22784 10.03381381 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
577 1992-03-19 5 minute.maid 8128 9.00307017 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
578 1992-03-19 5 dominicks 29248 10.28356647 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
579 1992-03-26 5 tropicana 19008 9.852615222 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
580 1992-03-26 5 minute.maid 6464 8.774003599999999 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
581 1992-03-26 5 dominicks 4608 8.435549202 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
582 1992-04-02 5 tropicana 15808 9.66827142 1 2.5 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
583 1992-04-02 5 minute.maid 36800 10.51325312 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
584 1992-04-02 5 dominicks 3136 8.050703382 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
585 1992-04-09 5 dominicks 13184 9.486759252 0 1.58 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
586 1992-04-09 5 tropicana 14144 9.557045785 0 2.5 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
587 1992-04-09 5 minute.maid 12928 9.467150781 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
588 1992-04-16 5 tropicana 9600 9.169518378 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
589 1992-04-16 5 minute.maid 7424 8.912473275 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
590 1992-04-16 5 dominicks 67712 11.1230187 1 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
591 1992-04-23 5 tropicana 10112 9.221478116 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
592 1992-04-23 5 minute.maid 34176 10.43927892 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
593 1992-04-23 5 dominicks 18880 9.84585844 0 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
594 1992-04-30 5 minute.maid 4160 8.333270353 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
595 1992-04-30 5 tropicana 31872 10.36948316 1 2.24 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
596 1992-04-30 5 dominicks 6208 8.733594062 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
597 1992-05-07 5 tropicana 9280 9.135616826 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
598 1992-05-07 5 minute.maid 5952 8.691482577 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
599 1992-05-07 5 dominicks 5952 8.691482577 0 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
600 1992-05-14 5 tropicana 7680 8.946374826 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
601 1992-05-14 5 minute.maid 6528 8.783855897 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
602 1992-05-14 5 dominicks 4160 8.333270353 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
603 1992-05-21 5 tropicana 8704 9.071537969 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
604 1992-05-21 5 minute.maid 30656 10.33058368 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
605 1992-05-21 5 dominicks 23488 10.06424493 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
606 1992-05-28 5 tropicana 9920 9.2023082 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
607 1992-05-28 5 dominicks 60480 11.01006801 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
608 1992-05-28 5 minute.maid 6656 8.803273982999999 0 2.66 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
609 1992-06-04 5 tropicana 91968 11.42919597 1 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
610 1992-06-04 5 minute.maid 4416 8.392989587999999 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
611 1992-06-04 5 dominicks 20416 9.924074186 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
612 1992-06-11 5 tropicana 44096 10.69412435 0 2.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
613 1992-06-11 5 dominicks 6336 8.754002933999999 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
614 1992-06-11 5 minute.maid 5696 8.647519453 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
615 1992-06-25 5 minute.maid 5696 8.647519453 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
616 1992-06-25 5 tropicana 7296 8.895081532 1 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
617 1992-06-25 5 dominicks 1408 7.249925537 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
618 1992-07-02 5 tropicana 12928 9.467150781 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
619 1992-07-02 5 minute.maid 39680 10.58860256 1 2.01 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
620 1992-07-02 5 dominicks 4672 8.449342525 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
621 1992-07-09 5 tropicana 6848 8.831711918 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
622 1992-07-09 5 minute.maid 6208 8.733594062 1 2.19 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
623 1992-07-09 5 dominicks 19520 9.87919486 0 1.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
624 1992-07-16 5 tropicana 8064 8.99516499 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
625 1992-07-16 5 minute.maid 7872 8.971067439 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
626 1992-07-16 5 dominicks 7872 8.971067439 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
627 1992-07-23 5 dominicks 5184 8.553332238 0 1.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
628 1992-07-23 5 tropicana 4992 8.51559191 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
629 1992-07-23 5 minute.maid 54528 10.90646961 1 2.29 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
630 1992-07-30 5 tropicana 7360 8.903815212 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
631 1992-07-30 5 minute.maid 6400 8.764053269 0 2.69 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
632 1992-07-30 5 dominicks 42240 10.65112292 1 1.49 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
633 1992-08-06 5 tropicana 8384 9.034080407000001 1 2.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
634 1992-08-06 5 minute.maid 5888 8.68067166 1 2.65 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
635 1992-08-06 5 dominicks 6592 8.793612072 1 1.89 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
636 1992-08-13 5 tropicana 8832 9.086136769 0 2.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
637 1992-08-13 5 minute.maid 56384 10.93994071 1 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
638 1992-08-13 5 dominicks 2112 7.655390645 0 1.99 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
639 1992-08-20 5 dominicks 21248 9.964018052 0 1.79 0.117368032 0.32122573 10.92237097 0.535883355 0.103091585 0.053875277 0.410568032 3.801997814 0.681818182 1.600573425 0.736306837
640 1990-06-14 8 dominicks 14336 9.570529135 1 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
641 1990-06-14 8 minute.maid 6080 8.712759975 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
642 1990-06-14 8 tropicana 8896 9.093357017 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
643 1990-06-21 8 dominicks 6400 8.764053269 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
644 1990-06-21 8 minute.maid 51968 10.85838342 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
645 1990-06-21 8 tropicana 7296 8.895081532 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
646 1990-06-28 8 tropicana 10368 9.246479419 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
647 1990-06-28 8 minute.maid 4928 8.502688505 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
648 1990-06-28 8 dominicks 3968 8.286017467999999 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
649 1990-07-05 8 dominicks 4352 8.378390789 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
650 1990-07-05 8 minute.maid 5312 8.577723691000001 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
651 1990-07-05 8 tropicana 6976 8.850230966 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
652 1990-07-12 8 tropicana 6464 8.774003599999999 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
653 1990-07-12 8 dominicks 3520 8.166216269 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
654 1990-07-12 8 minute.maid 39424 10.58213005 1 2.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
655 1990-07-19 8 tropicana 8192 9.010913347 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
656 1990-07-19 8 dominicks 6464 8.774003599999999 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
657 1990-07-19 8 minute.maid 5568 8.624791202 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
658 1990-07-26 8 dominicks 5952 8.691482577 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
659 1990-07-26 8 minute.maid 14592 9.588228712000001 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
660 1990-07-26 8 tropicana 7936 8.979164649 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
661 1990-08-02 8 tropicana 6656 8.803273982999999 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
662 1990-08-02 8 minute.maid 22208 10.00820786 1 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
663 1990-08-02 8 dominicks 8832 9.086136769 1 2.09 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
664 1990-08-09 8 dominicks 7232 8.886270902 0 2.09 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
665 1990-08-09 8 minute.maid 5760 8.658692754 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
666 1990-08-09 8 tropicana 8256 9.018695487999999 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
667 1990-08-16 8 tropicana 5568 8.624791202 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
668 1990-08-16 8 minute.maid 54016 10.89703558 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
669 1990-08-16 8 dominicks 5504 8.61323038 0 2.09 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
670 1990-08-23 8 dominicks 4800 8.476371197 0 2.09 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
671 1990-08-23 8 minute.maid 5824 8.66974259 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
672 1990-08-23 8 tropicana 7488 8.921057017999999 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
673 1990-08-30 8 tropicana 6144 8.723231275 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
674 1990-08-30 8 minute.maid 6528 8.783855897 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
675 1990-08-30 8 dominicks 52672 10.87183928 1 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
676 1990-09-06 8 dominicks 16448 9.707959168 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
677 1990-09-06 8 minute.maid 5440 8.60153434 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
678 1990-09-06 8 tropicana 11008 9.30637756 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
679 1990-09-13 8 minute.maid 36544 10.50627229 1 2.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
680 1990-09-13 8 dominicks 19072 9.85597657 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
681 1990-09-13 8 tropicana 5760 8.658692754 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
682 1990-09-20 8 dominicks 13376 9.501217335 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
683 1990-09-20 8 minute.maid 3776 8.236420527 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
684 1990-09-20 8 tropicana 10112 9.221478116 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
685 1990-09-27 8 tropicana 8448 9.041685006 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
686 1990-09-27 8 minute.maid 5504 8.61323038 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
687 1990-09-27 8 dominicks 61440 11.02581637 1 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
688 1990-10-04 8 tropicana 8448 9.041685006 1 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
689 1990-10-04 8 dominicks 13760 9.529521112000001 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
690 1990-10-04 8 minute.maid 12416 9.426741242 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
691 1990-10-11 8 minute.maid 53696 10.89109379 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
692 1990-10-11 8 dominicks 3136 8.050703382 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
693 1990-10-11 8 tropicana 7424 8.912473275 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
694 1990-10-18 8 tropicana 5824 8.66974259 0 3.04 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
695 1990-10-18 8 minute.maid 5696 8.647519453 0 2.51 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
696 1990-10-18 8 dominicks 186176 12.13444774 1 1.14 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
697 1990-10-25 8 tropicana 6656 8.803273982999999 0 3.04 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
698 1990-10-25 8 minute.maid 4864 8.489616424 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
699 1990-10-25 8 dominicks 3712 8.219326094 0 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
700 1990-11-01 8 tropicana 6272 8.743850562 0 3.04 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
701 1990-11-01 8 minute.maid 37184 10.52363384 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
702 1990-11-01 8 dominicks 35776 10.48503256 1 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
703 1990-11-08 8 tropicana 6912 8.841014311 0 3.04 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
704 1990-11-08 8 minute.maid 5504 8.61323038 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
705 1990-11-08 8 dominicks 26880 10.1991378 0 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
706 1990-11-15 8 tropicana 10496 9.258749511 0 3.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
707 1990-11-15 8 minute.maid 51008 10.83973776 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
708 1990-11-15 8 dominicks 71680 11.17996705 0 0.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
709 1990-11-22 8 tropicana 11840 9.379238908 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
710 1990-11-22 8 minute.maid 11072 9.312174678 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
711 1990-11-22 8 dominicks 25088 10.13014492 1 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
712 1990-11-29 8 tropicana 9664 9.17616292 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
713 1990-11-29 8 minute.maid 12160 9.405907156 0 2.62 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
714 1990-11-29 8 dominicks 91456 11.42361326 1 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
715 1990-12-06 8 minute.maid 30528 10.32639957 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
716 1990-12-06 8 dominicks 23808 10.07777694 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
717 1990-12-06 8 tropicana 6272 8.743850562 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
718 1990-12-13 8 dominicks 89856 11.40596367 1 1.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
719 1990-12-13 8 minute.maid 12096 9.400630097999999 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
720 1990-12-13 8 tropicana 7168 8.877381955 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
721 1990-12-20 8 minute.maid 16448 9.707959168 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
722 1990-12-20 8 dominicks 12224 9.411156511 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
723 1990-12-20 8 tropicana 29504 10.29228113 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
724 1990-12-27 8 minute.maid 9344 9.142489705 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
725 1990-12-27 8 dominicks 3776 8.236420527 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
726 1990-12-27 8 tropicana 8704 9.071537969 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
727 1991-01-03 8 tropicana 9280 9.135616826 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
728 1991-01-03 8 minute.maid 16128 9.688312171 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
729 1991-01-03 8 dominicks 13824 9.534161491 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
730 1991-01-10 8 minute.maid 5376 8.589699882 0 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
731 1991-01-10 8 dominicks 251072 12.43349503 1 0.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
732 1991-01-10 8 tropicana 12224 9.411156511 0 2.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
733 1991-01-17 8 minute.maid 6656 8.803273982999999 0 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
734 1991-01-17 8 tropicana 10368 9.246479419 0 2.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
735 1991-01-17 8 dominicks 4864 8.489616424 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
736 1991-01-24 8 minute.maid 59712 10.99728828 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
737 1991-01-24 8 dominicks 10176 9.227787286 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
738 1991-01-24 8 tropicana 8128 9.00307017 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
739 1991-01-31 8 tropicana 5952 8.691482577 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
740 1991-01-31 8 minute.maid 9856 9.195835686 0 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
741 1991-01-31 8 dominicks 105344 11.56498647 1 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
742 1991-02-07 8 minute.maid 6720 8.812843434 0 2.12 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
743 1991-02-07 8 dominicks 33600 10.42228135 0 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
744 1991-02-07 8 tropicana 21696 9.984883191 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
745 1991-02-14 8 dominicks 4736 8.462948177000001 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
746 1991-02-14 8 minute.maid 4224 8.348537825 0 2.12 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
747 1991-02-14 8 tropicana 7808 8.962904128 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
748 1991-02-21 8 tropicana 8128 9.00307017 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
749 1991-02-21 8 minute.maid 9728 9.182763604 0 2.12 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
750 1991-02-21 8 dominicks 10304 9.240287448 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
751 1991-02-28 8 tropicana 7424 8.912473275 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
752 1991-02-28 8 minute.maid 40320 10.604602900000001 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
753 1991-02-28 8 dominicks 5056 8.528330936 1 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
754 1991-03-07 8 dominicks 179968 12.10053434 1 0.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
755 1991-03-07 8 tropicana 5952 8.691482577 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
756 1991-03-07 8 minute.maid 5120 8.540909718 0 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
757 1991-03-14 8 minute.maid 19264 9.865993348 0 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
758 1991-03-14 8 dominicks 4992 8.51559191 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
759 1991-03-14 8 tropicana 7616 8.938006577000001 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
760 1991-03-21 8 tropicana 5312 8.577723691000001 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
761 1991-03-21 8 minute.maid 170432 12.04609167 1 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
762 1991-03-21 8 dominicks 6400 8.764053269 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
763 1991-03-28 8 minute.maid 39680 10.58860256 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
764 1991-03-28 8 dominicks 14912 9.609921537 1 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
765 1991-03-28 8 tropicana 161792 11.99406684 1 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
766 1991-04-04 8 dominicks 34624 10.45230236 0 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
767 1991-04-04 8 minute.maid 8128 9.00307017 1 2.17 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
768 1991-04-04 8 tropicana 17280 9.757305042 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
769 1991-04-11 8 tropicana 47040 10.75875358 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
770 1991-04-11 8 minute.maid 9088 9.114710141 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
771 1991-04-11 8 dominicks 10368 9.246479419 0 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
772 1991-04-18 8 tropicana 14464 9.579418083 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
773 1991-04-18 8 minute.maid 6720 8.812843434 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
774 1991-04-18 8 dominicks 194880 12.18013926 1 0.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
775 1991-04-25 8 tropicana 52928 10.87668778 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
776 1991-04-25 8 dominicks 5696 8.647519453 1 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
777 1991-04-25 8 minute.maid 7552 8.929567707999999 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
778 1991-05-02 8 dominicks 7168 8.877381955 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
779 1991-05-02 8 minute.maid 24768 10.11730778 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
780 1991-05-02 8 tropicana 21184 9.961001459 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
781 1991-05-09 8 tropicana 7360 8.903815212 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
782 1991-05-09 8 minute.maid 183296 12.11885761 1 1.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
783 1991-05-09 8 dominicks 2880 7.965545572999999 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
784 1991-05-16 8 dominicks 12288 9.416378455 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
785 1991-05-16 8 minute.maid 8896 9.093357017 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
786 1991-05-16 8 tropicana 15744 9.664214619 1 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
787 1991-06-06 8 dominicks 9280 9.135616826 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
788 1991-06-06 8 tropicana 46912 10.75602879 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
789 1991-06-06 8 minute.maid 6656 8.803273982999999 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
790 1991-06-13 8 tropicana 18240 9.811372264 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
791 1991-06-13 8 dominicks 25856 10.16029796 1 1.26 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
792 1991-06-13 8 minute.maid 35456 10.47604777 1 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
793 1991-06-20 8 dominicks 19264 9.865993348 0 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
794 1991-06-20 8 minute.maid 17408 9.76468515 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
795 1991-06-20 8 tropicana 6464 8.774003599999999 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
796 1991-06-27 8 dominicks 6848 8.831711918 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
797 1991-06-27 8 minute.maid 75520 11.2321528 1 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
798 1991-06-27 8 tropicana 8512 9.049232212 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
799 1991-07-04 8 tropicana 28416 10.25470765 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
800 1991-07-04 8 minute.maid 21632 9.981928979 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
801 1991-07-04 8 dominicks 12928 9.467150781 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
802 1991-07-11 8 dominicks 44032 10.69267192 1 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
803 1991-07-11 8 minute.maid 8384 9.034080407000001 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
804 1991-07-11 8 tropicana 16960 9.738612909 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
805 1991-07-18 8 minute.maid 9920 9.2023082 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
806 1991-07-18 8 dominicks 25408 10.14281936 0 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
807 1991-07-18 8 tropicana 8320 9.026417534 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
808 1991-07-25 8 dominicks 38336 10.55414468 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
809 1991-07-25 8 minute.maid 6592 8.793612072 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
810 1991-07-25 8 tropicana 11136 9.317938383 1 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
811 1991-08-01 8 tropicana 27712 10.22962081 0 2.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
812 1991-08-01 8 minute.maid 7168 8.877381955 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
813 1991-08-01 8 dominicks 152384 11.93415893 1 0.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
814 1991-08-08 8 dominicks 54464 10.90529521 0 0.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
815 1991-08-08 8 minute.maid 6208 8.733594062 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
816 1991-08-08 8 tropicana 7744 8.954673629 0 2.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
817 1991-08-15 8 minute.maid 30528 10.32639957 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
818 1991-08-15 8 dominicks 47680 10.772267300000001 1 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
819 1991-08-15 8 tropicana 5184 8.553332238 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
820 1991-08-22 8 dominicks 14720 9.596962392 0 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
821 1991-08-22 8 minute.maid 155840 11.95658512 1 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
822 1991-08-22 8 tropicana 6272 8.743850562 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
823 1991-08-29 8 tropicana 7744 8.954673629 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
824 1991-08-29 8 dominicks 53248 10.88271552 0 1.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
825 1991-08-29 8 minute.maid 10752 9.282847063 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
826 1991-09-05 8 tropicana 53184 10.88151288 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
827 1991-09-05 8 minute.maid 6976 8.850230966 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
828 1991-09-05 8 dominicks 40576 10.61093204 0 1.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
829 1991-09-12 8 dominicks 25856 10.16029796 0 1.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
830 1991-09-12 8 tropicana 6784 8.822322178 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
831 1991-09-12 8 minute.maid 31872 10.36948316 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
832 1991-09-19 8 dominicks 24064 10.08847223 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
833 1991-09-19 8 minute.maid 5312 8.577723691000001 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
834 1991-09-19 8 tropicana 8000 8.987196821 1 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
835 1991-09-26 8 tropicana 6592 8.793612072 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
836 1991-09-26 8 minute.maid 33344 10.41463313 0 1.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
837 1991-09-26 8 dominicks 15680 9.660141293999999 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
838 1991-10-03 8 minute.maid 13504 9.510741217 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
839 1991-10-03 8 dominicks 16576 9.715711145 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
840 1991-10-03 8 tropicana 5248 8.565602331000001 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
841 1991-10-10 8 dominicks 49664 10.8130356 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
842 1991-10-10 8 tropicana 6592 8.793612072 0 2.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
843 1991-10-10 8 minute.maid 13504 9.510741217 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
844 1991-10-17 8 dominicks 10752 9.282847063 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
845 1991-10-17 8 minute.maid 335808 12.72429485 1 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
846 1991-10-17 8 tropicana 5888 8.68067166 0 2.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
847 1991-10-24 8 tropicana 6336 8.754002933999999 0 2.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
848 1991-10-24 8 dominicks 9792 9.189321005 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
849 1991-10-24 8 minute.maid 13120 9.481893063 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
850 1991-10-31 8 tropicana 5888 8.68067166 0 2.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
851 1991-10-31 8 minute.maid 49664 10.8130356 0 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
852 1991-10-31 8 dominicks 7104 8.868413285 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
853 1991-11-07 8 dominicks 9216 9.128696383 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
854 1991-11-07 8 tropicana 6080 8.712759975 0 2.94 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
855 1991-11-07 8 minute.maid 10880 9.29468152 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
856 1991-11-14 8 tropicana 6848 8.831711918 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
857 1991-11-14 8 minute.maid 9984 9.208739091 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
858 1991-11-14 8 dominicks 12608 9.442086812000001 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
859 1991-11-21 8 tropicana 54016 10.89703558 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
860 1991-11-21 8 minute.maid 9216 9.128696383 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
861 1991-11-21 8 dominicks 16448 9.707959168 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
862 1991-11-28 8 tropicana 10368 9.246479419 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
863 1991-11-28 8 dominicks 27968 10.23881628 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
864 1991-11-28 8 minute.maid 7680 8.946374826 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
865 1991-12-05 8 minute.maid 7296 8.895081532 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
866 1991-12-05 8 dominicks 37824 10.5406991 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
867 1991-12-05 8 tropicana 5568 8.624791202 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
868 1991-12-12 8 dominicks 33664 10.4241843 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
869 1991-12-12 8 minute.maid 8192 9.010913347 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
870 1991-12-12 8 tropicana 4864 8.489616424 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
871 1991-12-19 8 tropicana 7232 8.886270902 0 2.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
872 1991-12-19 8 minute.maid 6080 8.712759975 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
873 1991-12-19 8 dominicks 17728 9.78290059 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
874 1991-12-26 8 tropicana 15232 9.631153757 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
875 1991-12-26 8 dominicks 25088 10.13014492 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
876 1991-12-26 8 minute.maid 15040 9.618468598 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
877 1992-01-02 8 minute.maid 9472 9.156095357 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
878 1992-01-02 8 dominicks 13184 9.486759252 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
879 1992-01-02 8 tropicana 47040 10.75875358 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
880 1992-01-09 8 dominicks 3136 8.050703382 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
881 1992-01-09 8 minute.maid 5888 8.68067166 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
882 1992-01-09 8 tropicana 9280 9.135616826 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
883 1992-01-16 8 tropicana 6720 8.812843434 0 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
884 1992-01-16 8 minute.maid 14336 9.570529135 1 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
885 1992-01-16 8 dominicks 5696 8.647519453 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
886 1992-01-23 8 minute.maid 11712 9.368369236 1 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
887 1992-01-23 8 dominicks 19008 9.852615222 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
888 1992-01-23 8 tropicana 5056 8.528330936 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
889 1992-01-30 8 minute.maid 7936 8.979164649 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
890 1992-01-30 8 dominicks 121664 11.70901843 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
891 1992-01-30 8 tropicana 6080 8.712759975 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
892 1992-02-06 8 tropicana 10496 9.258749511 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
893 1992-02-06 8 minute.maid 5184 8.553332238 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
894 1992-02-06 8 dominicks 38848 10.56741187 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
895 1992-02-13 8 minute.maid 7168 8.877381955 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
896 1992-02-13 8 dominicks 6144 8.723231275 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
897 1992-02-13 8 tropicana 39040 10.57234204 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
898 1992-02-20 8 dominicks 13632 9.520175249 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
899 1992-02-20 8 minute.maid 216064 12.28332994 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
900 1992-02-20 8 tropicana 4480 8.407378325 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
901 1992-02-27 8 tropicana 61760 11.03101119 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
902 1992-02-27 8 minute.maid 15040 9.618468598 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
903 1992-02-27 8 dominicks 9792 9.189321005 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
904 1992-03-05 8 tropicana 15360 9.639522007 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
905 1992-03-05 8 minute.maid 11840 9.379238908 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
906 1992-03-05 8 dominicks 86912 11.37265139 1 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
907 1992-03-12 8 minute.maid 25472 10.14533509 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
908 1992-03-12 8 dominicks 24512 10.10691807 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
909 1992-03-12 8 tropicana 54976 10.91465201 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
910 1992-03-19 8 minute.maid 16384 9.704060528 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
911 1992-03-19 8 dominicks 58048 10.96902553 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
912 1992-03-19 8 tropicana 34368 10.44488118 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
913 1992-03-26 8 tropicana 10752 9.282847063 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
914 1992-03-26 8 minute.maid 20480 9.927204079 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
915 1992-03-26 8 dominicks 13952 9.543378146 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
916 1992-04-02 8 minute.maid 34688 10.45414909 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
917 1992-04-02 8 dominicks 15168 9.626943225 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
918 1992-04-02 8 tropicana 20096 9.908276069 1 2.5 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
919 1992-04-09 8 dominicks 14592 9.588228712000001 0 1.58 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
920 1992-04-09 8 minute.maid 22400 10.01681624 0 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
921 1992-04-09 8 tropicana 16192 9.692272572 0 2.5 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
922 1992-04-16 8 tropicana 6528 8.783855897 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
923 1992-04-16 8 minute.maid 7808 8.962904128 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
924 1992-04-16 8 dominicks 145088 11.88509573 1 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
925 1992-04-23 8 tropicana 8320 9.026417534 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
926 1992-04-23 8 minute.maid 48064 10.78028874 1 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
927 1992-04-23 8 dominicks 43712 10.68537794 0 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
928 1992-04-30 8 tropicana 30784 10.33475035 1 2.16 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
929 1992-04-30 8 minute.maid 7360 8.903815212 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
930 1992-04-30 8 dominicks 20608 9.933434629 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
931 1992-05-07 8 tropicana 18048 9.800790154 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
932 1992-05-07 8 minute.maid 6272 8.743850562 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
933 1992-05-07 8 dominicks 18752 9.839055692 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
934 1992-05-14 8 tropicana 12864 9.462187991 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
935 1992-05-14 8 minute.maid 6400 8.764053269 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
936 1992-05-14 8 dominicks 20160 9.911455722000001 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
937 1992-05-21 8 tropicana 7168 8.877381955 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
938 1992-05-21 8 minute.maid 54592 10.90764263 1 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
939 1992-05-21 8 dominicks 18688 9.835636886 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
940 1992-05-28 8 minute.maid 8128 9.00307017 0 2.39 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
941 1992-05-28 8 tropicana 9024 9.107642974 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
942 1992-05-28 8 dominicks 133824 11.80428078 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
943 1992-06-04 8 tropicana 84992 11.35031241 1 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
944 1992-06-04 8 minute.maid 4928 8.502688505 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
945 1992-06-04 8 dominicks 63488 11.05860619 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
946 1992-06-11 8 minute.maid 5440 8.60153434 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
947 1992-06-11 8 tropicana 14144 9.557045785 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
948 1992-06-11 8 dominicks 71040 11.17099838 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
949 1992-06-25 8 tropicana 7488 8.921057017999999 1 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
950 1992-06-25 8 minute.maid 5888 8.68067166 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
951 1992-06-25 8 dominicks 15360 9.639522007 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
952 1992-07-02 8 minute.maid 23872 10.0804615 1 2.02 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
953 1992-07-02 8 dominicks 17728 9.78290059 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
954 1992-07-02 8 tropicana 12352 9.421573272 0 2.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
955 1992-07-09 8 tropicana 5696 8.647519453 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
956 1992-07-09 8 minute.maid 6848 8.831711918 1 2.19 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
957 1992-07-09 8 dominicks 24256 10.09641929 0 1.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
958 1992-07-16 8 minute.maid 8192 9.010913347 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
959 1992-07-16 8 dominicks 19968 9.901886271 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
960 1992-07-16 8 tropicana 7680 8.946374826 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
961 1992-07-23 8 dominicks 15936 9.67633598 0 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
962 1992-07-23 8 minute.maid 55040 10.91581547 1 2.29 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
963 1992-07-23 8 tropicana 5440 8.60153434 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
964 1992-07-30 8 tropicana 5632 8.636219898 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
965 1992-07-30 8 minute.maid 6528 8.783855897 0 2.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
966 1992-07-30 8 dominicks 76352 11.24310951 1 1.49 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
967 1992-08-06 8 tropicana 8960 9.100525506 1 2.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
968 1992-08-06 8 minute.maid 6208 8.733594062 1 2.45 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
969 1992-08-06 8 dominicks 17408 9.76468515 1 1.69 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
970 1992-08-13 8 minute.maid 94720 11.45868045 1 1.99 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
971 1992-08-13 8 tropicana 6080 8.712759975 0 2.89 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
972 1992-08-13 8 dominicks 17536 9.77201119 0 1.79 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947
973 1992-08-20 8 dominicks 31232 10.34919849 0 1.59 0.252394035 0.095173274 10.59700966 0.054227156 0.131749698 0.035243328 0.283074736 2.636332801 1.5 2.905384316 0.641015947

View File

@@ -0,0 +1,64 @@
import argparse
import json
from azureml.core import Run, Model
from azureml.core.model import InferenceConfig
from azureml.core.environment import Environment
from azureml.core.webservice import AciWebservice
script_file_name = 'score.py'
conda_env_file_name = 'myenv.yml'
print("In deploy.py")
parser = argparse.ArgumentParser()
parser.add_argument("--time_column_name", type=str, help="time column name")
parser.add_argument("--group_column_names", type=str, help="group column names")
parser.add_argument("--model_names", type=str, help="model names")
parser.add_argument("--service_name", type=str, help="service name")
args = parser.parse_args()
# replace the group column names in scoring script to the ones set by user
print("Update group_column_names")
print(args.group_column_names)
with open(script_file_name, 'r') as cefr:
content = cefr.read()
with open(script_file_name, 'w') as cefw:
content = content.replace('<<groups>>', args.group_column_names.rstrip())
cefw.write(content.replace('<<time_colname>>', args.time_column_name.rstrip()))
with open(script_file_name, 'r') as cefr1:
content1 = cefr1.read()
print(content1)
model_list = json.loads(args.model_names)
print(model_list)
run = Run.get_context()
ws = run.experiment.workspace
myenv = Environment.from_conda_specification(name="env", file_path=conda_env_file_name)
deployment_config = AciWebservice.deploy_configuration(
cpu_cores=1,
memory_gb=2,
tags={"method": "grouping"},
description='grouping demo aci deployment'
)
inference_config = InferenceConfig(entry_script=script_file_name, environment=myenv)
models = []
for model_name in model_list:
models.append(Model(ws, name=model_name))
service = Model.deploy(
ws,
name=args.service_name,
models=models,
inference_config=inference_config,
deployment_config=deployment_config
)
service.wait_for_deployment(True)

View File

@@ -0,0 +1,11 @@
name: automl_grouping_env
dependencies:
# The python interpreter version.
# Currently Azure ML only supports 3.5.2 and later.
- python=3.6.2
- numpy>=1.16.0,<=1.16.2
- scikit-learn>=0.19.0,<=0.20.3
- conda-forge::fbprophet==0.5

View File

@@ -0,0 +1,55 @@
import json
import pickle
import re
import numpy as np
import pandas as pd
from sklearn.externals import joblib
from sklearn.linear_model import Ridge
from azureml.core.model import Model
import azureml.train.automl
def init():
global models
models = {}
global group_columns_str
group_columns_str = "<<groups>>"
global time_column_name
time_column_name = "<<time_colname>>"
global group_columns
group_columns = group_columns_str.split("#####")
global valid_chars
valid_chars = re.compile('[^a-zA-Z0-9-]')
def run(raw_data):
try:
data = pd.read_json(raw_data)
# Make sure we have correct time points.
data[time_column_name] = pd.to_datetime(data[time_column_name], unit='ms')
dfs = []
for grain, df_one in data.groupby(group_columns):
if isinstance(grain, int):
cur_group = str(grain)
elif isinstance(grain, str):
cur_group = grain
else:
cur_group = "#####".join(list(grain))
cur_group = valid_chars.sub('', cur_group)
print("Query model for group {}".format(cur_group))
if cur_group not in models:
model_path = Model.get_model_path(cur_group)
model = joblib.load(model_path)
models[cur_group] = model
_, xtrans = models[cur_group].forecast(df_one)
dfs.append(xtrans)
df_ret = pd.concat(dfs)
df_ret.reset_index(drop=False, inplace=True)
return json.dumps({'predictions': df_ret.to_json()})
except Exception as e:
error = str(e)
return error

View File

@@ -0,0 +1,22 @@
import argparse
from azureml.core import Run, Model
parser = argparse.ArgumentParser()
parser.add_argument("--model_name")
parser.add_argument("--model_path")
args = parser.parse_args()
run = Run.get_context()
ws = run.experiment.workspace
print('retrieved ws: {}'.format(ws))
print('begin register model')
model = Model.register(
workspace=ws,
model_path=args.model_path,
model_name=args.model_name
)
print('model registered: {}'.format(model))
print('complete')

View File

@@ -103,6 +103,7 @@
"output['SDK version'] = azureml.core.VERSION\n", "output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n", "output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace'] = ws.name\n", "output['Workspace'] = ws.name\n",
"output['SKU'] = ws.sku\n",
"output['Resource Group'] = ws.resource_group\n", "output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n", "output['Location'] = ws.location\n",
"output['Run History Name'] = experiment_name\n", "output['Run History Name'] = experiment_name\n",
@@ -257,7 +258,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"amlcompute_cluster_name = \"cpu-cluster-8\"\n", "amlcompute_cluster_name = \"cpu-cluster-fcfn\"\n",
" \n", " \n",
"found = False\n", "found = False\n",
"# Check if this compute target already exists in the workspace.\n", "# Check if this compute target already exists in the workspace.\n",
@@ -334,7 +335,7 @@
"automl_config = AutoMLConfig(task='forecasting',\n", "automl_config = AutoMLConfig(task='forecasting',\n",
" debug_log='automl_forecasting_function.log',\n", " debug_log='automl_forecasting_function.log',\n",
" primary_metric='normalized_root_mean_squared_error',\n", " primary_metric='normalized_root_mean_squared_error',\n",
" experiment_timeout_minutes=15,\n", " experiment_timeout_hours=0.25,\n",
" enable_early_stopping=True,\n", " enable_early_stopping=True,\n",
" training_data=train_data,\n", " training_data=train_data,\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
@@ -376,9 +377,7 @@
"\n", "\n",
"![Forecasting after training](forecast_function_at_train.png)\n", "![Forecasting after training](forecast_function_at_train.png)\n",
"\n", "\n",
"The `X_test` and `y_query` below, taken together, form the **forecast request**. The two are interpreted as aligned - `y_query` could actally be a column in `X_test`. `NaN`s in `y_query` are the question marks. These will be filled with the forecasts.\n", "We use `X_test` as a **forecast request** to generate the predictions."
"\n",
"When the forecast period immediately follows the training period, the models retain the last few points of data. You can simply fill `y_query` filled with question marks - the model has the data for the lookback already.\n"
] ]
}, },
{ {
@@ -407,8 +406,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"y_query = np.repeat(np.NaN, X_test.shape[0])\n", "y_pred_no_gap, xy_nogap = fitted_model.forecast(X_test)\n",
"y_pred_no_gap, xy_nogap = fitted_model.forecast(X_test, y_query)\n",
"\n", "\n",
"# xy_nogap contains the predictions in the _automl_target_col column.\n", "# xy_nogap contains the predictions in the _automl_target_col column.\n",
"# Those same numbers are output in y_pred_no_gap\n", "# Those same numbers are output in y_pred_no_gap\n",
@@ -436,7 +434,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"quantiles = fitted_model.forecast_quantiles(X_test, y_query)\n", "quantiles = fitted_model.forecast_quantiles(X_test)\n",
"quantiles" "quantiles"
] ]
}, },
@@ -447,7 +445,7 @@
"#### Distribution forecasts\n", "#### Distribution forecasts\n",
"\n", "\n",
"Often the figure of interest is not just the point prediction, but the prediction at some quantile of the distribution. \n", "Often the figure of interest is not just the point prediction, but the prediction at some quantile of the distribution. \n",
"This arises when the forecast is used to control some kind of inventory, for example of grocery items of virtual machines for a cloud service. In such case, the control point is usually something like \"we want the item to be in stock and not run out 99% of the time\". This is called a \"service level\". Here is how you get quantile forecasts." "This arises when the forecast is used to control some kind of inventory, for example of grocery items or virtual machines for a cloud service. In such case, the control point is usually something like \"we want the item to be in stock and not run out 99% of the time\". This is called a \"service level\". Here is how you get quantile forecasts."
] ]
}, },
{ {
@@ -459,10 +457,10 @@
"# specify which quantiles you would like \n", "# specify which quantiles you would like \n",
"fitted_model.quantiles = [0.01, 0.5, 0.95]\n", "fitted_model.quantiles = [0.01, 0.5, 0.95]\n",
"# use forecast_quantiles function, not the forecast() one\n", "# use forecast_quantiles function, not the forecast() one\n",
"y_pred_quantiles = fitted_model.forecast_quantiles(X_test, y_query)\n", "y_pred_quantiles = fitted_model.forecast_quantiles(X_test)\n",
"\n", "\n",
"# it all nicely aligns column-wise\n", "# it all nicely aligns column-wise\n",
"pd.concat([X_test.reset_index(), pd.DataFrame({'query' : y_query}), y_pred_quantiles], axis=1)" "pd.concat([X_test.reset_index(), y_pred_quantiles], axis=1)"
] ]
}, },
{ {
@@ -471,7 +469,7 @@
"source": [ "source": [
"#### Destination-date forecast: \"just do something\"\n", "#### Destination-date forecast: \"just do something\"\n",
"\n", "\n",
"In some scenarios, the X_test is not known. The forecast is likely to be weak, becaus it is missing contemporaneous predictors, which we will need to impute. If you still wish to predict forward under the assumption that the last known values will be carried forward, you can forecast out to \"destination date\". The destination date still needs to fit within the maximum horizon from training." "In some scenarios, the X_test is not known. The forecast is likely to be weak, because it is missing contemporaneous predictors, which we will need to impute. If you still wish to predict forward under the assumption that the last known values will be carried forward, you can forecast out to \"destination date\". The destination date still needs to fit within the maximum horizon from training."
] ]
}, },
{ {
@@ -538,9 +536,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"try: \n", "try: \n",
" y_query = y_away.copy()\n", " y_pred_away, xy_away = fitted_model.forecast(X_away)\n",
" y_query.fill(np.NaN)\n",
" y_pred_away, xy_away = fitted_model.forecast(X_away, y_query)\n",
" xy_away\n", " xy_away\n",
"except Exception as e:\n", "except Exception as e:\n",
" print(e)" " print(e)"
@@ -550,7 +546,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"How should we read that eror message? The forecast origin is at the last time themodel saw an actual values of `y` (the target). That was at the end of the training data! Because the model received all `NaN` (and not an actual target value), it is attempting to forecast from the end of training data. But the requested forecast periods are past the maximum horizon. We need to provide a define `y` value to establish the forecast origin.\n", "How should we read that eror message? The forecast origin is at the last time the model saw an actual value of `y` (the target). That was at the end of the training data! The model is attempting to forecast from the end of training data. But the requested forecast periods are past the maximum horizon. We need to provide a define `y` value to establish the forecast origin.\n",
"\n", "\n",
"We will use this helper function to take the required amount of context from the data preceding the testing data. It's definition is intentionally simplified to keep the idea in the clear." "We will use this helper function to take the required amount of context from the data preceding the testing data. It's definition is intentionally simplified to keep the idea in the clear."
] ]
@@ -710,7 +706,7 @@
], ],
"category": "tutorial", "category": "tutorial",
"compute": [ "compute": [
"remote" "Remote"
], ],
"datasets": [ "datasets": [
"None" "None"
@@ -739,13 +735,13 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.7" "version": "3.6.8"
}, },
"tags": [ "tags": [
"Forecasting", "Forecasting",
"Confidence Intervals" "Confidence Intervals"
], ],
"task": "forecasting" "task": "Forecasting"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -6,6 +6,4 @@ dependencies:
- azureml-sdk - azureml-sdk
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- pandas_ml
- statsmodels
- matplotlib - matplotlib

View File

@@ -40,7 +40,7 @@
"## Introduction\n", "## Introduction\n",
"In this example, we use AutoML to train, select, and operationalize a time-series forecasting model for multiple time-series.\n", "In this example, we use AutoML to train, select, and operationalize a time-series forecasting model for multiple time-series.\n",
"\n", "\n",
"Make sure you have executed the [configuration notebook](../configuration.ipynb) before running this notebook.\n", "Make sure you have executed the [configuration notebook](../../../configuration.ipynb) before running this notebook.\n",
"\n", "\n",
"The examples in the follow code samples use the University of Chicago's Dominick's Finer Foods dataset to forecast orange juice sales. Dominick's was a grocery chain in the Chicago metropolitan area." "The examples in the follow code samples use the University of Chicago's Dominick's Finer Foods dataset to forecast orange juice sales. Dominick's was a grocery chain in the Chicago metropolitan area."
] ]
@@ -92,6 +92,7 @@
"output['SDK version'] = azureml.core.VERSION\n", "output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n", "output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace'] = ws.name\n", "output['Workspace'] = ws.name\n",
"output['SKU'] = ws.sku\n",
"output['Resource Group'] = ws.resource_group\n", "output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n", "output['Location'] = ws.location\n",
"output['Run History Name'] = experiment_name\n", "output['Run History Name'] = experiment_name\n",
@@ -121,7 +122,7 @@
"from azureml.core.compute import ComputeTarget\n", "from azureml.core.compute import ComputeTarget\n",
"\n", "\n",
"# Choose a name for your cluster.\n", "# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"cpu-cluster-7\"\n", "amlcompute_cluster_name = \"cpu-cluster-oj\"\n",
"\n", "\n",
"found = False\n", "found = False\n",
"# Check if this compute target already exists in the workspace.\n", "# Check if this compute target already exists in the workspace.\n",
@@ -135,7 +136,7 @@
" print('Creating a new compute target...')\n", " print('Creating a new compute target...')\n",
" provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n", " provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n",
" #vm_priority = 'lowpriority', # optional\n", " #vm_priority = 'lowpriority', # optional\n",
" max_nodes = 4)\n", " max_nodes = 6)\n",
"\n", "\n",
" # Create the cluster.\n", " # Create the cluster.\n",
" compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n", " compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n",
@@ -324,9 +325,9 @@
"\n", "\n",
"For forecasting tasks, there are some additional parameters that can be set: the name of the column holding the date/time, the grain column names, and the maximum forecast horizon. A time column is required for forecasting, while the grain is optional. If a grain is not given, AutoML assumes that the whole dataset is a single time-series. We also pass a list of columns to drop prior to modeling. The _logQuantity_ column is completely correlated with the target quantity, so it must be removed to prevent a target leak.\n", "For forecasting tasks, there are some additional parameters that can be set: the name of the column holding the date/time, the grain column names, and the maximum forecast horizon. A time column is required for forecasting, while the grain is optional. If a grain is not given, AutoML assumes that the whole dataset is a single time-series. We also pass a list of columns to drop prior to modeling. The _logQuantity_ column is completely correlated with the target quantity, so it must be removed to prevent a target leak.\n",
"\n", "\n",
"The forecast horizon is given in units of the time-series frequency; for instance, the OJ series frequency is weekly, so a horizon of 20 means that a trained model will estimate sales up-to 20 weeks beyond the latest date in the training data for each series. In this example, we set the maximum horizon to the number of samples per series in the test set (n_test_periods). Generally, the value of this parameter will be dictated by business needs. For example, a demand planning organizaion that needs to estimate the next month of sales would set the horizon accordingly. Please see the [energy_demand notebook](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand) for more discussion of forecast horizon.\n", "The forecast horizon is given in units of the time-series frequency; for instance, the OJ series frequency is weekly, so a horizon of 20 means that a trained model will estimate sales up to 20 weeks beyond the latest date in the training data for each series. In this example, we set the maximum horizon to the number of samples per series in the test set (n_test_periods). Generally, the value of this parameter will be dictated by business needs. For example, a demand planning organizaion that needs to estimate the next month of sales would set the horizon accordingly. Please see the [energy_demand notebook](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/automated-machine-learning/forecasting-energy-demand) for more discussion of forecast horizon.\n",
"\n", "\n",
"Finally, a note about the cross-validation (CV) procedure for time-series data. AutoML uses out-of-sample error estimates to select a best pipeline/model, so it is important that the CV fold splitting is done correctly. Time-series can violate the basic statistical assumptions of the canonical K-Fold CV strategy, so AutoML implements a [rolling origin validation](https://robjhyndman.com/hyndsight/tscv/) procedure to create CV folds for time-series data. To use this procedure, you just need to specify the desired number of CV folds in the AutoMLConfig object. It is also possible to bypass CV and use your own validation set by setting the *X_valid* and *y_valid* parameters of AutoMLConfig.\n", "Finally, a note about the cross-validation (CV) procedure for time-series data. AutoML uses out-of-sample error estimates to select a best pipeline/model, so it is important that the CV fold splitting is done correctly. Time-series can violate the basic statistical assumptions of the canonical K-Fold CV strategy, so AutoML implements a [rolling origin validation](https://robjhyndman.com/hyndsight/tscv/) procedure to create CV folds for time-series data. To use this procedure, you just need to specify the desired number of CV folds in the AutoMLConfig object. It is also possible to bypass CV and use your own validation set by setting the *validation_data* parameter of AutoMLConfig.\n",
"\n", "\n",
"Here is a summary of AutoMLConfig parameters used for training the OJ model:\n", "Here is a summary of AutoMLConfig parameters used for training the OJ model:\n",
"\n", "\n",
@@ -334,7 +335,7 @@
"|-|-|\n", "|-|-|\n",
"|**task**|forecasting|\n", "|**task**|forecasting|\n",
"|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>\n", "|**primary_metric**|This is the metric that you want to optimize.<br> Forecasting supports the following primary metrics <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>\n",
"|**experiment_timeout_minutes**|Experimentation timeout in minutes.|\n", "|**experiment_timeout_hours**|Experimentation timeout in hours.|\n",
"|**enable_early_stopping**|If early stopping is on, training will stop when the primary metric is no longer improving.|\n", "|**enable_early_stopping**|If early stopping is on, training will stop when the primary metric is no longer improving.|\n",
"|**training_data**|Input dataset, containing both features and label column.|\n", "|**training_data**|Input dataset, containing both features and label column.|\n",
"|**label_column_name**|The name of the label column.|\n", "|**label_column_name**|The name of the label column.|\n",
@@ -365,14 +366,12 @@
"automl_config = AutoMLConfig(task='forecasting',\n", "automl_config = AutoMLConfig(task='forecasting',\n",
" debug_log='automl_oj_sales_errors.log',\n", " debug_log='automl_oj_sales_errors.log',\n",
" primary_metric='normalized_mean_absolute_error',\n", " primary_metric='normalized_mean_absolute_error',\n",
" experiment_timeout_minutes=15,\n", " experiment_timeout_hours=0.25,\n",
" training_data=train_dataset,\n", " training_data=train_dataset,\n",
" label_column_name=target_column_name,\n", " label_column_name=target_column_name,\n",
" compute_target=compute_target,\n", " compute_target=compute_target,\n",
" enable_early_stopping=True,\n", " enable_early_stopping=True,\n",
" n_cross_validations=3,\n", " n_cross_validations=3,\n",
" max_concurrent_iterations=4,\n",
" max_cores_per_iteration=-1,\n",
" verbosity=logging.INFO,\n", " verbosity=logging.INFO,\n",
" **time_series_settings)" " **time_series_settings)"
] ]
@@ -455,9 +454,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"To produce predictions on the test set, we need to know the feature values at all dates in the test set. This requirement is somewhat reasonable for the OJ sales data since the features mainly consist of price, which is usually set in advance, and customer demographics which are approximately constant for each store over the 20 week forecast horizon in the testing data. \n", "To produce predictions on the test set, we need to know the feature values at all dates in the test set. This requirement is somewhat reasonable for the OJ sales data since the features mainly consist of price, which is usually set in advance, and customer demographics which are approximately constant for each store over the 20 week forecast horizon in the testing data."
"\n",
"We will first create a query `y_query`, which is aligned index-for-index to `X_test`. This is a vector of target values where each `NaN` serves the function of the question mark to be replaced by forecast. Passing definite values in the `y` argument allows the `forecast` function to make predictions on data that does not immediately follow the train data which contains `y`. In each grain, the last time point where the model sees a definite value of `y` is that grain's _forecast origin_."
] ]
}, },
{ {
@@ -466,15 +463,10 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Replace ALL values in y by NaN.\n",
"# The forecast origin will be at the beginning of the first forecast period.\n",
"# (Which is the same time as the end of the last training period.)\n",
"y_query = y_test.copy().astype(np.float)\n",
"y_query.fill(np.nan)\n",
"# The featurized data, aligned to y, will also be returned.\n", "# The featurized data, aligned to y, will also be returned.\n",
"# This contains the assumptions that were made in the forecast\n", "# This contains the assumptions that were made in the forecast\n",
"# and helps align the forecast to the original data\n", "# and helps align the forecast to the original data\n",
"y_predictions, X_trans = fitted_model.forecast(X_test, y_query)" "y_predictions, X_trans = fitted_model.forecast(X_test)"
] ]
}, },
{ {
@@ -570,138 +562,7 @@
"source": [ "source": [
"### Develop the scoring script\n", "### Develop the scoring script\n",
"\n", "\n",
"Serializing and deserializing complex data frames may be tricky. We first develop the ```run()``` function of the scoring script locally, then write it into a scoring script. It is much easier to debug any quirks of the scoring function without crossing two compute environments. For this exercise, we handle a common quirk of how pandas dataframes serialize time stamp values." "For the deployment we need a function which will run the forecast on serialized data. It can be obtained from the best_run."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# this is where we test the run function of the scoring script interactively\n",
"# before putting it in the scoring script\n",
"\n",
"timestamp_columns = ['WeekStarting']\n",
"\n",
"def run(rawdata, test_model = None):\n",
" \"\"\"\n",
" Intended to process 'rawdata' string produced by\n",
" \n",
" {'X': X_test.to_json(), y' : y_test.to_json()}\n",
" \n",
" Don't convert the X payload to numpy.array, use it as pandas.DataFrame\n",
" \"\"\"\n",
" try:\n",
" # unpack the data frame with timestamp \n",
" rawobj = json.loads(rawdata) # rawobj is now a dict of strings \n",
" X_pred = pd.read_json(rawobj['X'], convert_dates=False) # load the pandas DF from a json string\n",
" for col in timestamp_columns: # fix timestamps\n",
" X_pred[col] = pd.to_datetime(X_pred[col], unit='ms') \n",
" \n",
" y_pred = np.array(rawobj['y']) # reconstitute numpy array from serialized list\n",
" \n",
" if test_model is None:\n",
" result = model.forecast(X_pred, y_pred) # use the global model from init function\n",
" else:\n",
" result = test_model.forecast(X_pred, y_pred) # use the model on which we are testing\n",
" \n",
" except Exception as e:\n",
" result = str(e)\n",
" return json.dumps({\"error\": result})\n",
" \n",
" forecast_as_list = result[0].tolist()\n",
" index_as_df = result[1].index.to_frame().reset_index(drop=True)\n",
" \n",
" return json.dumps({\"forecast\": forecast_as_list, # return the minimum over the wire: \n",
" \"index\": index_as_df.to_json() # no forecast and its featurized values\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# test the run function here before putting in the scoring script\n",
"import json\n",
"\n",
"test_sample = json.dumps({'X': X_test.to_json(), 'y' : y_query.tolist()})\n",
"response = run(test_sample, fitted_model)\n",
"\n",
"# unpack the response, dealing with the timestamp serialization again\n",
"res_dict = json.loads(response)\n",
"y_fcst_all = pd.read_json(res_dict['index'])\n",
"y_fcst_all[time_column_name] = pd.to_datetime(y_fcst_all[time_column_name], unit = 'ms')\n",
"y_fcst_all['forecast'] = res_dict['forecast']\n",
"y_fcst_all.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that the function works locally in the notebook, let's write it down into the scoring script. The scoring script is authored by the data scientist. Adjust it to taste, adding inputs, outputs and processing as needed."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile score_fcast.py\n",
"import pickle\n",
"import json\n",
"import numpy as np\n",
"import pandas as pd\n",
"import azureml.train.automl\n",
"from sklearn.externals import joblib\n",
"from azureml.core.model import Model\n",
"\n",
"\n",
"def init():\n",
" global model\n",
" model_path = Model.get_model_path(model_name = '<<modelid>>') # this name is model.id of model that we want to deploy\n",
" # deserialize the model file back into a sklearn model\n",
" model = joblib.load(model_path)\n",
"\n",
"timestamp_columns = ['WeekStarting']\n",
"\n",
"def run(rawdata, test_model = None):\n",
" \"\"\"\n",
" Intended to process 'rawdata' string produced by\n",
" \n",
" {'X': X_test.to_json(), y' : y_test.to_json()}\n",
" \n",
" Don't convert the X payload to numpy.array, use it as pandas.DataFrame\n",
" \"\"\"\n",
" try:\n",
" # unpack the data frame with timestamp \n",
" rawobj = json.loads(rawdata) # rawobj is now a dict of strings \n",
" X_pred = pd.read_json(rawobj['X'], convert_dates=False) # load the pandas DF from a json string\n",
" for col in timestamp_columns: # fix timestamps\n",
" X_pred[col] = pd.to_datetime(X_pred[col], unit='ms') \n",
" \n",
" y_pred = np.array(rawobj['y']) # reconstitute numpy array from serialized list\n",
" \n",
" if test_model is None:\n",
" result = model.forecast(X_pred, y_pred) # use the global model from init function\n",
" else:\n",
" result = test_model.forecast(X_pred, y_pred) # use the model on which we are testing\n",
" \n",
" except Exception as e:\n",
" result = str(e)\n",
" return json.dumps({\"error\": result})\n",
" \n",
" # prepare to send over wire as json\n",
" forecast_as_list = result[0].tolist()\n",
" index_as_df = result[1].index.to_frame().reset_index(drop=True)\n",
" \n",
" return json.dumps({\"forecast\": forecast_as_list, # return the minimum over the wire: \n",
" \"index\": index_as_df.to_json() # no forecast and its featurized values\n",
" })"
] ]
}, },
{ {
@@ -711,11 +572,7 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"script_file_name = 'score_fcast.py'\n", "script_file_name = 'score_fcast.py'\n",
"with open(script_file_name, 'r') as cefr:\n", "best_run.download_file('outputs/scoring_file_v_1_0_0.py', script_file_name)"
" content = cefr.read()\n",
"\n",
"with open(script_file_name, 'w') as cefw:\n",
" cefw.write(content.replace('<<modelid>>', remote_run.model_id))"
] ]
}, },
{ {
@@ -773,14 +630,18 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"# we send the data to the service serialized into a json string\n", "import json\n",
"test_sample = json.dumps({'X':X_test.to_json(), 'y' : y_query.tolist()})\n", "X_query = X_test.copy()\n",
"# We have to convert datetime to string, because Timestamps cannot be serialized to JSON.\n",
"X_query[time_column_name] = X_query[time_column_name].astype(str)\n",
"# The Service object accept the complex dictionary, which is internally converted to JSON string.\n",
"# The section 'data' contains the data frame in the form of dictionary.\n",
"test_sample = json.dumps({'data': X_query.to_dict(orient='records')})\n",
"response = aci_service.run(input_data = test_sample)\n", "response = aci_service.run(input_data = test_sample)\n",
"\n",
"# translate from networkese to datascientese\n", "# translate from networkese to datascientese\n",
"try: \n", "try: \n",
" res_dict = json.loads(response)\n", " res_dict = json.loads(response)\n",
" y_fcst_all = pd.read_json(res_dict['index'])\n", " y_fcst_all = pd.DataFrame(res_dict['index'])\n",
" y_fcst_all[time_column_name] = pd.to_datetime(y_fcst_all[time_column_name], unit = 'ms')\n", " y_fcst_all[time_column_name] = pd.to_datetime(y_fcst_all[time_column_name], unit = 'ms')\n",
" y_fcst_all['forecast'] = res_dict['forecast'] \n", " y_fcst_all['forecast'] = res_dict['forecast'] \n",
"except:\n", "except:\n",
@@ -823,7 +684,7 @@
"category": "tutorial", "category": "tutorial",
"celltoolbar": "Raw Cell Format", "celltoolbar": "Raw Cell Format",
"compute": [ "compute": [
"remote" "Remote"
], ],
"datasets": [ "datasets": [
"Orange Juice Sales" "Orange Juice Sales"
@@ -852,8 +713,11 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.7" "version": "3.6.8"
}, },
"tags": [
"None"
],
"task": "Forecasting" "task": "Forecasting"
}, },
"nbformat": 4, "nbformat": 4,

View File

@@ -7,5 +7,3 @@ dependencies:
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml
- statsmodels

View File

@@ -155,8 +155,7 @@
"automl_settings = {\n", "automl_settings = {\n",
" \"n_cross_validations\": 3,\n", " \"n_cross_validations\": 3,\n",
" \"primary_metric\": 'average_precision_score_weighted',\n", " \"primary_metric\": 'average_precision_score_weighted',\n",
" \"preprocess\": True,\n", " \"experiment_timeout_hours\": 0.2, # This is a time limit for testing purposes, remove it for real use cases, this will drastically limit ability to find the best model possible\n",
" \"experiment_timeout_minutes\": 10, # This is a time limit for testing purposes, remove it for real use cases, this will drastically limit ablity to find the best model possible\n",
" \"verbosity\": logging.INFO,\n", " \"verbosity\": logging.INFO,\n",
" \"enable_stack_ensemble\": False\n", " \"enable_stack_ensemble\": False\n",
"}\n", "}\n",
@@ -260,17 +259,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"#### Print the properties of the model\n", "#### Print the properties of the model\n",
"The fitted_model is a python object and you can read the different properties of the object.\n", "The fitted_model is a python object and you can read the different properties of the object.\n"
"See *Print the properties of the model* section in [this sample notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification/auto-ml-classification.ipynb)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy\n",
"\n",
"To deploy the model into a web service endpoint, see _Deploy_ section in [this sample notebook](https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/classification-with-deployment/auto-ml-classification-with-deployment.ipynb)"
] ]
}, },
{ {

View File

@@ -2,10 +2,8 @@ name: auto-ml-classification-credit-card-fraud-local
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- interpret
- azureml-defaults
- azureml-explain-model
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - interpret
- azureml-explain-model

View File

@@ -1,756 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/automated-machine-learning/regression-concrete-strength/auto-ml-regression-concrete-strength.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Automated Machine Learning\n",
"_**Regression with Deployment using Hardware Performance Dataset**_\n",
"\n",
"## Contents\n",
"1. [Introduction](#Introduction)\n",
"1. [Setup](#Setup)\n",
"1. [Data](#Data)\n",
"1. [Train](#Train)\n",
"1. [Results](#Results)\n",
"1. [Test](#Test)\n",
"1. [Acknowledgements](#Acknowledgements)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"In this example we use the Predicting Compressive Strength of Concrete Dataset to showcase how you can use AutoML for a regression problem. The regression goal is to predict the compressive strength of concrete based off of different ingredient combinations and the quantities of those ingredients.\n",
"\n",
"If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration](../../../configuration.ipynb) notebook first if you haven't already to establish your connection to the AzureML Workspace. \n",
"\n",
"In this notebook you will learn how to:\n",
"1. Create an `Experiment` in an existing `Workspace`.\n",
"2. Configure AutoML using `AutoMLConfig`.\n",
"3. Train the model using local compute.\n",
"4. Explore the results.\n",
"5. Test the best fitted model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup\n",
"As part of the setup you have already created an Azure ML Workspace object. For AutoML you will need to create an Experiment object, which is a named object in a Workspace used to run experiments."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"\n",
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import os\n",
" \n",
"\n",
"import azureml.core\n",
"from azureml.core.experiment import Experiment\n",
"from azureml.core.workspace import Workspace\n",
"from azureml.core.dataset import Dataset\n",
"from azureml.train.automl import AutoMLConfig"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ws = Workspace.from_config()\n",
"\n",
"# Choose a name for the experiment.\n",
"experiment_name = 'automl-regression-concrete'\n",
"\n",
"experiment = Experiment(ws, experiment_name)\n",
"\n",
"output = {}\n",
"output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace Name'] = ws.name\n",
"output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n",
"output['Experiment Name'] = experiment.name\n",
"pd.set_option('display.max_colwidth', -1)\n",
"outputDf = pd.DataFrame(data = output, index = [''])\n",
"outputDf.T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create or Attach existing AmlCompute\n",
"You will need to create a compute target for your AutoML run. In this tutorial, you create AmlCompute as your training compute resource.\n",
"#### Creation of AmlCompute takes approximately 5 minutes. \n",
"If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n",
"As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read this article on the default limits and how to request more quota."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.compute import AmlCompute\n",
"from azureml.core.compute import ComputeTarget\n",
"\n",
"# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"automlcl\"\n",
"\n",
"found = False\n",
"# Check if this compute target already exists in the workspace.\n",
"cts = ws.compute_targets\n",
"if amlcompute_cluster_name in cts and cts[amlcompute_cluster_name].type == 'AmlCompute':\n",
" found = True\n",
" print('Found existing compute target.')\n",
" compute_target = cts[amlcompute_cluster_name]\n",
" \n",
"if not found:\n",
" print('Creating a new compute target...')\n",
" provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n",
" #vm_priority = 'lowpriority', # optional\n",
" max_nodes = 6)\n",
"\n",
" # Create the cluster.\n",
" compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n",
" \n",
"print('Checking cluster status...')\n",
"# Can poll for a minimum number of nodes and for a specific timeout.\n",
"# If no min_node_count is provided, it will use the scale settings for the cluster.\n",
"compute_target.wait_for_completion(show_output = True, min_node_count = None, timeout_in_minutes = 20)\n",
" \n",
"# For a more detailed view of current AmlCompute status, use get_status()."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data\n",
"\n",
"Create a run configuration for the remote run."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.runconfig import RunConfiguration\n",
"from azureml.core.conda_dependencies import CondaDependencies\n",
"import pkg_resources\n",
"\n",
"# create a new RunConfig object\n",
"conda_run_config = RunConfiguration(framework=\"python\")\n",
"\n",
"# Set compute target to AmlCompute\n",
"conda_run_config.target = compute_target\n",
"conda_run_config.environment.docker.enabled = True\n",
"\n",
"cd = CondaDependencies.create(conda_packages=['numpy', 'py-xgboost<=0.80'])\n",
"conda_run_config.environment.python.conda_dependencies = cd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load Data\n",
"\n",
"Load the concrete strength dataset into X and y. X contains the training features, which are inputs to the model. y contains the training labels, which are the expected output of the model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/compresive_strength_concrete.csv\"\n",
"dataset = Dataset.Tabular.from_delimited_files(data)\n",
"X = dataset.drop_columns(columns=['CONCRETE'])\n",
"y = dataset.keep_columns(columns=['CONCRETE'], validate=True)\n",
"X_train, X_test = X.random_split(percentage=0.8, seed=223)\n",
"y_train, y_test = y.random_split(percentage=0.8, seed=223) \n",
"dataset.take(5).to_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Train\n",
"\n",
"Instantiate an `AutoMLConfig` object to specify the settings and data used to run the experiment.\n",
"\n",
"|Property|Description|\n",
"|-|-|\n",
"|**task**|classification or regression|\n",
"|**primary_metric**|This is the metric that you want to optimize. Regression supports the following primary metrics: <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n",
"|**iteration_timeout_minutes**|Time limit in minutes for each iteration.|\n",
"|**iterations**|Number of iterations. In each iteration AutoML trains a specific pipeline with the data.|\n",
"|**n_cross_validations**|Number of cross validation splits.|\n",
"|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n",
"|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n",
"\n",
"**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### If you would like to see even better results increase \"iteration_time_out minutes\" to 10+ mins and increase \"iterations\" to a minimum of 30"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_settings = {\n",
" \"iteration_timeout_minutes\": 5,\n",
" \"iterations\": 10,\n",
" \"n_cross_validations\": 5,\n",
" \"primary_metric\": 'spearman_correlation',\n",
" \"preprocess\": True,\n",
" \"max_concurrent_iterations\": 5,\n",
" \"verbosity\": logging.INFO,\n",
"}\n",
"\n",
"automl_config = AutoMLConfig(task = 'regression',\n",
" debug_log = 'automl.log',\n",
" run_configuration=conda_run_config,\n",
" X = X_train,\n",
" y = y_train,\n",
" **automl_settings\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"remote_run = experiment.submit(automl_config, show_output = True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"remote_run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Results\n",
"Widget for Monitoring Runs\n",
"The widget will first report a \u00e2\u20ac\u0153loading status while running the first iteration. After completing the first iteration, an auto-updating graph and table will be shown. The widget will refresh once per minute, so you should see the graph update as child runs complete.\n",
"Note: The widget displays a link at the bottom. Use this link to open a web interface to explore the individual run details."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.widgets import RunDetails\n",
"RunDetails(remote_run).show() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Retrieve All Child Runs\n",
"You can also use SDK methods to fetch all the child runs and see individual metrics that we log."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"children = list(remote_run.get_children())\n",
"metricslist = {}\n",
"for run in children:\n",
" properties = run.get_properties()\n",
" metrics = {k: v for k, v in run.get_metrics().items() if isinstance(v, float)}\n",
" metricslist[int(properties['iteration'])] = metrics\n",
"\n",
"rundata = pd.DataFrame(metricslist).sort_index(1)\n",
"rundata"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Retrieve the Best Model\n",
"Below we select the best pipeline from our iterations. The get_output method returns the best run and the fitted model. The Model includes the pipeline and any pre-processing. Overloads on get_output allow you to retrieve the best run and fitted model for any logged metric or for a particular iteration."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"best_run, fitted_model = remote_run.get_output()\n",
"print(best_run)\n",
"print(fitted_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Best Model Based on Any Other Metric\n",
"Show the run and the model that has the smallest root_mean_squared_error value (which turned out to be the same as the one with largest spearman_correlation value):"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"lookup_metric = \"root_mean_squared_error\"\n",
"best_run, fitted_model = remote_run.get_output(metric = lookup_metric)\n",
"print(best_run)\n",
"print(fitted_model)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"iteration = 3\n",
"third_run, third_model = remote_run.get_output(iteration = iteration)\n",
"print(third_run)\n",
"print(third_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Register the Fitted Model for Deployment\n",
"If neither metric nor iteration are specified in the register_model call, the iteration with the best primary metric is registered."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"description = 'AutoML Model'\n",
"tags = None\n",
"model = remote_run.register_model(description = description, tags = tags)\n",
"\n",
"print(remote_run.model_id) # This will be written to the script file later in the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Scoring Script\n",
"The scoring script is required to generate the image for deployment. It contains the code to do the predictions on input data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile score.py\n",
"import pickle\n",
"import json\n",
"import numpy\n",
"import azureml.train.automl\n",
"from sklearn.externals import joblib\n",
"from azureml.core.model import Model\n",
"\n",
"def init():\n",
" global model\n",
" model_path = Model.get_model_path(model_name = '<<modelid>>') # this name is model.id of model that we want to deploy\n",
" # deserialize the model file back into a sklearn model\n",
" model = joblib.load(model_path)\n",
"\n",
"def run(rawdata):\n",
" try:\n",
" data = json.loads(rawdata)['data']\n",
" data = numpy.array(data)\n",
" result = model.predict(data)\n",
" except Exception as e:\n",
" result = str(e)\n",
" return json.dumps({\"error\": result})\n",
" return json.dumps({\"result\":result.tolist()})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create a YAML File for the Environment"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To ensure the fit results are consistent with the training results, the SDK dependency versions need to be the same as the environment that trains the model. Details about retrieving the versions can be found in notebook [12.auto-ml-retrieve-the-training-sdk-versions](12.auto-ml-retrieve-the-training-sdk-versions.ipynb)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dependencies = remote_run.get_run_sdk_dependencies(iteration = 1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for p in ['azureml-train-automl', 'azureml-core']:\n",
" print('{}\\t{}'.format(p, dependencies[p]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn','py-xgboost==0.80'], pip_packages=['azureml-defaults','azureml-train-automl'])\n",
"\n",
"conda_env_file_name = 'myenv.yml'\n",
"myenv.save_to_file('.', conda_env_file_name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Substitute the actual version number in the environment file.\n",
"# This is not strictly needed in this notebook because the model should have been generated using the current SDK version.\n",
"# However, we include this in case this code is used on an experiment from a previous SDK version.\n",
"\n",
"with open(conda_env_file_name, 'r') as cefr:\n",
" content = cefr.read()\n",
"\n",
"with open(conda_env_file_name, 'w') as cefw:\n",
" cefw.write(content.replace(azureml.core.VERSION, dependencies['azureml-train-automl']))\n",
"\n",
"# Substitute the actual model id in the script file.\n",
"\n",
"script_file_name = 'score.py'\n",
"\n",
"with open(script_file_name, 'r') as cefr:\n",
" content = cefr.read()\n",
"\n",
"with open(script_file_name, 'w') as cefw:\n",
" cefw.write(content.replace('<<modelid>>', remote_run.model_id))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy the model as a Web Service on Azure Container Instance"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.model import InferenceConfig\n",
"from azureml.core.webservice import AciWebservice\n",
"from azureml.core.webservice import Webservice\n",
"from azureml.core.model import Model\n",
"\n",
"inference_config = InferenceConfig(runtime = \"python\", \n",
" entry_script = script_file_name,\n",
" conda_file = conda_env_file_name)\n",
"\n",
"aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n",
" memory_gb = 1, \n",
" tags = {'area': \"digits\", 'type': \"automl_regression\"}, \n",
" description = 'sample service for Automl Regression')\n",
"\n",
"aci_service_name = 'automl-sample-concrete'\n",
"print(aci_service_name)\n",
"aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n",
"aci_service.wait_for_deployment(True)\n",
"print(aci_service.state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Delete a Web Service\n",
"\n",
"Deletes the specified web service."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#aci_service.delete()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get Logs from a Deployed Web Service\n",
"\n",
"Gets logs from a deployed web service."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#aci_service.get_logs()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test\n",
"\n",
"Now that the model is trained, split the data in the same way the data was split for training (The difference here is the data is being split locally) and then run the test data through the trained model to get the predicted values."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"X_test = X_test.to_pandas_dataframe()\n",
"y_test = y_test.to_pandas_dataframe()\n",
"y_test = np.array(y_test)\n",
"y_test = y_test[:,0]\n",
"X_train = X_train.to_pandas_dataframe()\n",
"y_train = y_train.to_pandas_dataframe()\n",
"y_train = np.array(y_train)\n",
"y_train = y_train[:,0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Predict on training and test set, and calculate residual values."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"y_pred_train = fitted_model.predict(X_train)\n",
"y_residual_train = y_train - y_pred_train\n",
"\n",
"y_pred_test = fitted_model.predict(X_test)\n",
"y_residual_test = y_test - y_pred_test\n",
"\n",
"y_residual_train.shape"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from sklearn.metrics import mean_squared_error, r2_score\n",
"\n",
"# Set up a multi-plot chart.\n",
"f, (a0, a1) = plt.subplots(1, 2, gridspec_kw = {'width_ratios':[1, 1], 'wspace':0, 'hspace': 0})\n",
"f.suptitle('Regression Residual Values', fontsize = 18)\n",
"f.set_figheight(6)\n",
"f.set_figwidth(16)\n",
"\n",
"# Plot residual values of training set.\n",
"a0.axis([0, 360, -200, 200])\n",
"a0.plot(y_residual_train, 'bo', alpha = 0.5)\n",
"a0.plot([-10,360],[0,0], 'r-', lw = 3)\n",
"a0.text(16,170,'RMSE = {0:.2f}'.format(np.sqrt(mean_squared_error(y_train, y_pred_train))), fontsize = 12)\n",
"a0.text(16,140,'R2 score = {0:.2f}'.format(r2_score(y_train, y_pred_train)), fontsize = 12)\n",
"a0.set_xlabel('Training samples', fontsize = 12)\n",
"a0.set_ylabel('Residual Values', fontsize = 12)\n",
"\n",
"# Plot a histogram.\n",
"#a0.hist(y_residual_train, orientation = 'horizontal', color = ['b']*len(y_residual_train), bins = 10, histtype = 'step')\n",
"#a0.hist(y_residual_train, orientation = 'horizontal', color = ['b']*len(y_residual_train), alpha = 0.2, bins = 10)\n",
"\n",
"# Plot residual values of test set.\n",
"a1.axis([0, 90, -200, 200])\n",
"a1.plot(y_residual_test, 'bo', alpha = 0.5)\n",
"a1.plot([-10,360],[0,0], 'r-', lw = 3)\n",
"a1.text(5,170,'RMSE = {0:.2f}'.format(np.sqrt(mean_squared_error(y_test, y_pred_test))), fontsize = 12)\n",
"a1.text(5,140,'R2 score = {0:.2f}'.format(r2_score(y_test, y_pred_test)), fontsize = 12)\n",
"a1.set_xlabel('Test samples', fontsize = 12)\n",
"a1.set_yticklabels([])\n",
"\n",
"# Plot a histogram.\n",
"#a1.hist(y_residual_test, orientation = 'horizontal', color = ['b']*len(y_residual_test), bins = 10, histtype = 'step')\n",
"#a1.hist(y_residual_test, orientation = 'horizontal', color = ['b']*len(y_residual_test), alpha = 0.2, bins = 10)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calculate metrics for the prediction\n",
"\n",
"Now visualize the data on a scatter plot to show what our truth (actual) values are compared to the predicted values \n",
"from the trained model that was returned."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Plot outputs\n",
"%matplotlib notebook\n",
"test_pred = plt.scatter(y_test, y_pred_test, color='b')\n",
"test_test = plt.scatter(y_test, y_test, color='g')\n",
"plt.legend((test_pred, test_test), ('prediction', 'truth'), loc='upper left', fontsize=8)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Acknowledgements\n",
"\n",
"This Predicting Compressive Strength of Concrete Dataset is made available under the CC0 1.0 Universal (CC0 1.0)\n",
"Public Domain Dedication License: https://creativecommons.org/publicdomain/zero/1.0/. Any rights in individual contents of the database are licensed under the CC0 1.0 Universal (CC0 1.0)\n",
"Public Domain Dedication License: https://creativecommons.org/publicdomain/zero/1.0/ . The dataset itself can be found here: https://www.kaggle.com/pavanraj159/concrete-compressive-strength-data-set and http://archive.ics.uci.edu/ml/datasets/concrete+compressive+strength\n",
"\n",
"I-Cheng Yeh, \"Modeling of strength of high performance concrete using artificial neural networks,\" Cement and Concrete Research, Vol. 28, No. 12, pp. 1797-1808 (1998). \n",
"\n",
"Dua, D. and Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science."
]
}
],
"metadata": {
"authors": [
{
"name": "v-rasav"
}
],
"category": "tutorial",
"compute": [
"AML Compute"
],
"datasets": [
"Concrete"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"Azure ML AutoML"
],
"friendly_name": "Regression with deployment using concrete dataset",
"index_order": 1,
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
},
"tags": [
""
],
"task": "Regression"
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -1,12 +0,0 @@
name: auto-ml-regression-concrete-strength
dependencies:
- pip:
- azureml-sdk
- interpret
- azureml-defaults
- azureml-explain-model
- azureml-train-automl
- azureml-widgets
- matplotlib
- pandas_ml
- azureml-dataprep[pandas]

View File

@@ -206,9 +206,9 @@
"|-|-|\n", "|-|-|\n",
"|**task**|classification, regression or forecasting|\n", "|**task**|classification, regression or forecasting|\n",
"|**primary_metric**|This is the metric that you want to optimize. Regression supports the following primary metrics: <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n", "|**primary_metric**|This is the metric that you want to optimize. Regression supports the following primary metrics: <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n",
"|**experiment_timeout_minutes**| Maximum amount of time in minutes that all iterations combined can take before the experiment terminates.|\n", "|**experiment_timeout_hours**| Maximum amount of time in hours that all iterations combined can take before the experiment terminates.|\n",
"|**enable_early_stopping**| Flag to enble early termination if the score is not improving in the short term.|\n", "|**enable_early_stopping**| Flag to enble early termination if the score is not improving in the short term.|\n",
"|**featurization**| 'auto' / 'off' / FeaturizationConfig Indicator for whether featurization step should be done automatically or not, or whether customized featurization should be used. Note: If the input data is sparse, featurization cannot be turned on.|\n", "|**featurization**| 'auto' / 'off' / FeaturizationConfig Indicator for whether featurization step should be done automatically or not, or whether customized featurization should be used. Setting this enables AutoML to perform featurization on the input to handle *missing data*, and to perform some common *feature extraction*. Note: If the input data is sparse, featurization cannot be turned on.|\n",
"|**n_cross_validations**|Number of cross validation splits.|\n", "|**n_cross_validations**|Number of cross validation splits.|\n",
"|**training_data**|(sparse) array-like, shape = [n_samples, n_features]|\n", "|**training_data**|(sparse) array-like, shape = [n_samples, n_features]|\n",
"|**label_column_name**|(sparse) array-like, shape = [n_samples, ], targets values.|" "|**label_column_name**|(sparse) array-like, shape = [n_samples, ], targets values.|"
@@ -244,7 +244,7 @@
"source": [ "source": [
"featurization_config = FeaturizationConfig()\n", "featurization_config = FeaturizationConfig()\n",
"featurization_config.blocked_transformers = ['LabelEncoder']\n", "featurization_config.blocked_transformers = ['LabelEncoder']\n",
"#featurization_config.drop_columns = ['ERP', 'MMIN']\n", "#featurization_config.drop_columns = ['MMIN']\n",
"featurization_config.add_column_purpose('MYCT', 'Numeric')\n", "featurization_config.add_column_purpose('MYCT', 'Numeric')\n",
"featurization_config.add_column_purpose('VendorName', 'CategoricalHash')\n", "featurization_config.add_column_purpose('VendorName', 'CategoricalHash')\n",
"#default strategy mean, add transformer param for for 3 columns\n", "#default strategy mean, add transformer param for for 3 columns\n",
@@ -262,7 +262,7 @@
"source": [ "source": [
"automl_settings = {\n", "automl_settings = {\n",
" \"enable_early_stopping\": True, \n", " \"enable_early_stopping\": True, \n",
" \"experiment_timeout_minutes\" : 10,\n", " \"experiment_timeout_hours\" : 0.2,\n",
" \"max_concurrent_iterations\": 4,\n", " \"max_concurrent_iterations\": 4,\n",
" \"max_cores_per_iteration\": -1,\n", " \"max_cores_per_iteration\": -1,\n",
" \"n_cross_validations\": 5,\n", " \"n_cross_validations\": 5,\n",
@@ -558,7 +558,6 @@
"\n", "\n",
"# specify CondaDependencies obj\n", "# specify CondaDependencies obj\n",
"conda_run_config.environment.python.conda_dependencies = CondaDependencies.create(\n", "conda_run_config.environment.python.conda_dependencies = CondaDependencies.create(\n",
" conda_packages=['scikit-learn', 'numpy','py-xgboost<=0.80'],\n",
" pip_packages=azureml_pip_packages)" " pip_packages=azureml_pip_packages)"
] ]
}, },
@@ -634,7 +633,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.train.automl.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations\n", "from azureml.train.automl.runtime.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations\n",
"explainer_setup_class = automl_setup_model_explanations(fitted_model, 'regression', X_test=X_test)" "explainer_setup_class = automl_setup_model_explanations(fitted_model, 'regression', X_test=X_test)"
] ]
}, },
@@ -653,11 +652,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.explain.model._internal.explanation_client import ExplanationClient\n", "from azureml.explain.model._internal.explanation_client import ExplanationClient\n",
"from azureml.contrib.interpret.visualize import ExplanationDashboard\n", "from interpret_community.widget import ExplanationDashboard\n",
"client = ExplanationClient.from_run(automl_run)\n", "client = ExplanationClient.from_run(automl_run)\n",
"engineered_explanations = client.download_model_explanation(raw=False)\n", "engineered_explanations = client.download_model_explanation(raw=False)\n",
"print(engineered_explanations.get_feature_importance_dict())\n", "print(engineered_explanations.get_feature_importance_dict())\n",
"ExplanationDashboard(engineered_explanations, explainer_setup_class.automl_estimator, explainer_setup_class.X_test_transform)" "ExplanationDashboard(engineered_explanations, explainer_setup_class.automl_estimator, datasetX=explainer_setup_class.X_test_transform)"
] ]
}, },
{ {
@@ -676,7 +675,7 @@
"source": [ "source": [
"raw_explanations = client.download_model_explanation(raw=True)\n", "raw_explanations = client.download_model_explanation(raw=True)\n",
"print(raw_explanations.get_feature_importance_dict())\n", "print(raw_explanations.get_feature_importance_dict())\n",
"ExplanationDashboard(raw_explanations, explainer_setup_class.automl_pipeline, explainer_setup_class.X_test_raw)" "ExplanationDashboard(raw_explanations, explainer_setup_class.automl_pipeline, datasetX=explainer_setup_class.X_test_raw)"
] ]
}, },
{ {
@@ -718,17 +717,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "myenv = automl_run.get_environment().python.conda_dependencies\n",
"\n",
"azureml_pip_packages = [\n",
" 'azureml-explain-model', 'azureml-train-automl', 'azureml-defaults'\n",
"]\n",
" \n",
"\n",
"# specify CondaDependencies obj\n",
"myenv = CondaDependencies.create(conda_packages=['scikit-learn', 'pandas', 'numpy', 'py-xgboost<=0.80'],\n",
" pip_packages=azureml_pip_packages,\n",
" pin_sdk_version=True)\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())\n", " f.write(myenv.serialize_to_string())\n",

View File

@@ -2,12 +2,10 @@ name: auto-ml-regression-hardware-performance-explanation-and-featurization
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- interpret
- azureml-defaults
- azureml-explain-model
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml - interpret
- azureml-explain-model
- azureml-explain-model - azureml-explain-model
- azureml-contrib-interpret - azureml-contrib-interpret

View File

@@ -5,7 +5,8 @@ import os
import pickle import pickle
import azureml.train.automl import azureml.train.automl
import azureml.explain.model import azureml.explain.model
from azureml.train.automl.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations from azureml.train.automl.runtime.automl_explain_utilities import AutoMLExplainerSetupClass, \
automl_setup_model_explanations
from sklearn.externals import joblib from sklearn.externals import joblib
from azureml.core.model import Model from azureml.core.model import Model

View File

@@ -6,7 +6,8 @@ from azureml.core.run import Run
from azureml.core.experiment import Experiment from azureml.core.experiment import Experiment
from sklearn.externals import joblib from sklearn.externals import joblib
from azureml.core.dataset import Dataset from azureml.core.dataset import Dataset
from azureml.train.automl.automl_explain_utilities import AutoMLExplainerSetupClass, automl_setup_model_explanations from azureml.train.automl.runtime.automl_explain_utilities import AutoMLExplainerSetupClass, \
automl_setup_model_explanations, automl_check_model_if_explainable
from azureml.explain.model.mimic.models.lightgbm_model import LGBMExplainableModel from azureml.explain.model.mimic.models.lightgbm_model import LGBMExplainableModel
from azureml.explain.model.mimic_wrapper import MimicWrapper from azureml.explain.model.mimic_wrapper import MimicWrapper
from automl.client.core.common.constants import MODEL_PATH from automl.client.core.common.constants import MODEL_PATH
@@ -24,6 +25,11 @@ ws = run.experiment.workspace
experiment = Experiment(ws, '<<experimnet_name>>') experiment = Experiment(ws, '<<experimnet_name>>')
automl_run = Run(experiment=experiment, run_id='<<run_id>>') automl_run = Run(experiment=experiment, run_id='<<run_id>>')
# Check if this AutoML model is explainable
if not automl_check_model_if_explainable(automl_run):
raise Exception("Model explanations is currently not supported for " + automl_run.get_properties().get(
'run_algorithm'))
# Download the best model from the artifact store # Download the best model from the artifact store
automl_run.download_file(name=MODEL_PATH, output_file_path='model.pkl') automl_run.download_file(name=MODEL_PATH, output_file_path='model.pkl')

View File

@@ -1,761 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/automated-machine-learning/regression-hardware-performance/auto-ml-regression-hardware-performance.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Automated Machine Learning\n",
"_**Regression with Deployment using Hardware Performance Dataset**_\n",
"\n",
"## Contents\n",
"1. [Introduction](#Introduction)\n",
"1. [Setup](#Setup)\n",
"1. [Data](#Data)\n",
"1. [Train](#Train)\n",
"1. [Results](#Results)\n",
"1. [Test](#Test)\n",
"1. [Acknowledgements](#Acknowledgements)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"In this example we use the Hardware Performance Dataset to showcase how you can use AutoML for a simple regression problem. The Regression goal is to predict the performance of certain combinations of hardware parts.\n",
"\n",
"If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, go through the [configuration](../../../configuration.ipynb) notebook first if you haven't already to establish your connection to the AzureML Workspace. \n",
"\n",
"In this notebook you will learn how to:\n",
"1. Create an `Experiment` in an existing `Workspace`.\n",
"2. Configure AutoML using `AutoMLConfig`.\n",
"3. Train the model using local compute.\n",
"4. Explore the results.\n",
"5. Test the best fitted model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Setup\n",
"As part of the setup you have already created an Azure ML Workspace object. For AutoML you will need to create an Experiment object, which is a named object in a Workspace used to run experiments."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import logging\n",
"\n",
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import os\n",
" \n",
"\n",
"import azureml.core\n",
"from azureml.core.experiment import Experiment\n",
"from azureml.core.workspace import Workspace\n",
"from azureml.core.dataset import Dataset\n",
"from azureml.train.automl import AutoMLConfig"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ws = Workspace.from_config()\n",
"\n",
"# Choose a name for the experiment.\n",
"experiment_name = 'automl-regression-hardware'\n",
"\n",
"experiment = Experiment(ws, experiment_name)\n",
"\n",
"output = {}\n",
"output['SDK version'] = azureml.core.VERSION\n",
"output['Subscription ID'] = ws.subscription_id\n",
"output['Workspace Name'] = ws.name\n",
"output['Resource Group'] = ws.resource_group\n",
"output['Location'] = ws.location\n",
"output['Experiment Name'] = experiment.name\n",
"pd.set_option('display.max_colwidth', -1)\n",
"outputDf = pd.DataFrame(data = output, index = [''])\n",
"outputDf.T"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create or Attach existing AmlCompute\n",
"You will need to create a compute target for your AutoML run. In this tutorial, you create AmlCompute as your training compute resource.\n",
"#### Creation of AmlCompute takes approximately 5 minutes. \n",
"If the AmlCompute with that name is already in your workspace this code will skip the creation process.\n",
"As with other Azure services, there are limits on certain resources (e.g. AmlCompute) associated with the Azure Machine Learning service. Please read this article on the default limits and how to request more quota."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.compute import AmlCompute\n",
"from azureml.core.compute import ComputeTarget\n",
"\n",
"# Choose a name for your cluster.\n",
"amlcompute_cluster_name = \"automlcl\"\n",
"\n",
"found = False\n",
"# Check if this compute target already exists in the workspace.\n",
"cts = ws.compute_targets\n",
"if amlcompute_cluster_name in cts and cts[amlcompute_cluster_name].type == 'AmlCompute':\n",
" found = True\n",
" print('Found existing compute target.')\n",
" compute_target = cts[amlcompute_cluster_name]\n",
" \n",
"if not found:\n",
" print('Creating a new compute target...')\n",
" provisioning_config = AmlCompute.provisioning_configuration(vm_size = \"STANDARD_D2_V2\", # for GPU, use \"STANDARD_NC6\"\n",
" #vm_priority = 'lowpriority', # optional\n",
" max_nodes = 6)\n",
"\n",
" # Create the cluster.\n",
" compute_target = ComputeTarget.create(ws, amlcompute_cluster_name, provisioning_config)\n",
" \n",
"print('Checking cluster status...')\n",
"# Can poll for a minimum number of nodes and for a specific timeout.\n",
"# If no min_node_count is provided, it will use the scale settings for the cluster.\n",
"compute_target.wait_for_completion(show_output = True, min_node_count = None, timeout_in_minutes = 20)\n",
" \n",
"# For a more detailed view of current AmlCompute status, use get_status()."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data\n",
"\n",
"Create a run configuration for the remote run."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.runconfig import RunConfiguration\n",
"from azureml.core.conda_dependencies import CondaDependencies\n",
"import pkg_resources\n",
"\n",
"# create a new RunConfig object\n",
"conda_run_config = RunConfiguration(framework=\"python\")\n",
"\n",
"# Set compute target to AmlCompute\n",
"conda_run_config.target = compute_target\n",
"conda_run_config.environment.docker.enabled = True\n",
"\n",
"cd = CondaDependencies.create(conda_packages=['numpy', 'py-xgboost<=0.80'])\n",
"conda_run_config.environment.python.conda_dependencies = cd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load Data\n",
"\n",
"Load the hardware performance dataset into X and y. X contains the training features, which are inputs to the model. y contains the training labels, which are the expected output of the model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"data = \"https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/machineData.csv\"\n",
"dataset = Dataset.Tabular.from_delimited_files(data)\n",
"X = dataset.drop_columns(columns=['ERP'])\n",
"y = dataset.keep_columns(columns=['ERP'], validate=True)\n",
"X_train, X_test = X.random_split(percentage=0.8, seed=223)\n",
"y_train, y_test = y.random_split(percentage=0.8, seed=223)\n",
"dataset.take(5).to_pandas_dataframe()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"## Train\n",
"\n",
"Instantiate an `AutoMLConfig` object to specify the settings and data used to run the experiment.\n",
"\n",
"|Property|Description|\n",
"|-|-|\n",
"|**task**|classification or regression|\n",
"|**primary_metric**|This is the metric that you want to optimize. Regression supports the following primary metrics: <br><i>spearman_correlation</i><br><i>normalized_root_mean_squared_error</i><br><i>r2_score</i><br><i>normalized_mean_absolute_error</i>|\n",
"|**iteration_timeout_minutes**|Time limit in minutes for each iteration.|\n",
"|**iterations**|Number of iterations. In each iteration AutoML trains a specific pipeline with the data.|\n",
"|**n_cross_validations**|Number of cross validation splits.|\n",
"|**X**|(sparse) array-like, shape = [n_samples, n_features]|\n",
"|**y**|(sparse) array-like, shape = [n_samples, ], targets values.|\n",
"\n",
"**_You can find more information about primary metrics_** [here](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-auto-train#primary-metric)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### If you would like to see even better results increase \"iteration_time_out minutes\" to 10+ mins and increase \"iterations\" to a minimum of 30"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"automl_settings = {\n",
" \"iteration_timeout_minutes\": 5,\n",
" \"iterations\": 10,\n",
" \"n_cross_validations\": 5,\n",
" \"primary_metric\": 'spearman_correlation',\n",
" \"preprocess\": True,\n",
" \"max_concurrent_iterations\": 5,\n",
" \"verbosity\": logging.INFO,\n",
"}\n",
"\n",
"automl_config = AutoMLConfig(task = 'regression',\n",
" debug_log = 'automl_errors.log',\n",
" run_configuration=conda_run_config,\n",
" X = X_train,\n",
" y = y_train,\n",
" **automl_settings\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"remote_run = experiment.submit(automl_config, show_output = False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"remote_run"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Results"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Widget for Monitoring Runs\n",
"\n",
"The widget will first report a \"loading\" status while running the first iteration. After completing the first iteration, an auto-updating graph and table will be shown. The widget will refresh once per minute, so you should see the graph update as child runs complete.\n",
"\n",
"**Note:** The widget displays a link at the bottom. Use this link to open a web interface to explore the individual run details."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.widgets import RunDetails\n",
"RunDetails(remote_run).show() "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Wait until the run finishes.\n",
"remote_run.wait_for_completion(show_output = True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Retrieve All Child Runs\n",
"You can also use SDK methods to fetch all the child runs and see individual metrics that we log."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"children = list(remote_run.get_children())\n",
"metricslist = {}\n",
"for run in children:\n",
" properties = run.get_properties()\n",
" metrics = {k: v for k, v in run.get_metrics().items() if isinstance(v, float)}\n",
" metricslist[int(properties['iteration'])] = metrics\n",
"\n",
"rundata = pd.DataFrame(metricslist).sort_index(1)\n",
"rundata"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Retrieve the Best Model\n",
"Below we select the best pipeline from our iterations. The get_output method returns the best run and the fitted model. The Model includes the pipeline and any pre-processing. Overloads on get_output allow you to retrieve the best run and fitted model for any logged metric or for a particular iteration."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"best_run, fitted_model = remote_run.get_output()\n",
"print(best_run)\n",
"print(fitted_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Best Model Based on Any Other Metric\n",
"Show the run and the model that has the smallest `root_mean_squared_error` value (which turned out to be the same as the one with largest `spearman_correlation` value):"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"lookup_metric = \"root_mean_squared_error\"\n",
"best_run, fitted_model = remote_run.get_output(metric = lookup_metric)\n",
"print(best_run)\n",
"print(fitted_model)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"iteration = 3\n",
"third_run, third_model = remote_run.get_output(iteration = iteration)\n",
"print(third_run)\n",
"print(third_model)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Register the Fitted Model for Deployment\n",
"If neither metric nor iteration are specified in the register_model call, the iteration with the best primary metric is registered."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"description = 'AutoML Model'\n",
"tags = None\n",
"model = remote_run.register_model(description = description, tags = tags)\n",
"\n",
"print(remote_run.model_id) # This will be written to the script file later in the notebook."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Scoring Script\n",
"The scoring script is required to generate the image for deployment. It contains the code to do the predictions on input data."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile score.py\n",
"import pickle\n",
"import json\n",
"import numpy\n",
"import azureml.train.automl\n",
"from sklearn.externals import joblib\n",
"from azureml.core.model import Model\n",
"\n",
"def init():\n",
" global model\n",
" model_path = Model.get_model_path(model_name = '<<modelid>>') # this name is model.id of model that we want to deploy\n",
" # deserialize the model file back into a sklearn model\n",
" model = joblib.load(model_path)\n",
"\n",
"def run(rawdata):\n",
" try:\n",
" data = json.loads(rawdata)['data']\n",
" data = numpy.array(data)\n",
" result = model.predict(data)\n",
" except Exception as e:\n",
" result = str(e)\n",
" return json.dumps({\"error\": result})\n",
" return json.dumps({\"result\":result.tolist()})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create a YAML File for the Environment"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To ensure the fit results are consistent with the training results, the SDK dependency versions need to be the same as the environment that trains the model. Details about retrieving the versions can be found in notebook [12.auto-ml-retrieve-the-training-sdk-versions](12.auto-ml-retrieve-the-training-sdk-versions.ipynb)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dependencies = remote_run.get_run_sdk_dependencies(iteration = 1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for p in ['azureml-train-automl', 'azureml-core']:\n",
" print('{}\\t{}'.format(p, dependencies[p]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn','py-xgboost==0.80'], pip_packages=['azureml-defaults','azureml-train-automl'])\n",
"\n",
"conda_env_file_name = 'myenv.yml'\n",
"myenv.save_to_file('.', conda_env_file_name)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Substitute the actual version number in the environment file.\n",
"# This is not strictly needed in this notebook because the model should have been generated using the current SDK version.\n",
"# However, we include this in case this code is used on an experiment from a previous SDK version.\n",
"\n",
"with open(conda_env_file_name, 'r') as cefr:\n",
" content = cefr.read()\n",
"\n",
"with open(conda_env_file_name, 'w') as cefw:\n",
" cefw.write(content.replace(azureml.core.VERSION, dependencies['azureml-train-automl']))\n",
"\n",
"# Substitute the actual model id in the script file.\n",
"\n",
"script_file_name = 'score.py'\n",
"\n",
"with open(script_file_name, 'r') as cefr:\n",
" content = cefr.read()\n",
"\n",
"with open(script_file_name, 'w') as cefw:\n",
" cefw.write(content.replace('<<modelid>>', remote_run.model_id))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy the model as a Web Service on Azure Container Instance"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.model import InferenceConfig\n",
"from azureml.core.webservice import AciWebservice\n",
"from azureml.core.webservice import Webservice\n",
"from azureml.core.model import Model\n",
"\n",
"inference_config = InferenceConfig(runtime = \"python\", \n",
" entry_script = script_file_name,\n",
" conda_file = conda_env_file_name)\n",
"\n",
"aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n",
" memory_gb = 1, \n",
" tags = {'area': \"digits\", 'type': \"automl_regression\"}, \n",
" description = 'sample service for Automl Regression')\n",
"\n",
"aci_service_name = 'automl-sample-hardware'\n",
"print(aci_service_name)\n",
"aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n",
"aci_service.wait_for_deployment(True)\n",
"print(aci_service.state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Delete a Web Service\n",
"\n",
"Deletes the specified web service."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#aci_service.delete()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get Logs from a Deployed Web Service\n",
"\n",
"Gets logs from a deployed web service."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#aci_service.get_logs()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test\n",
"\n",
"Now that the model is trained, split the data in the same way the data was split for training (The difference here is the data is being split locally) and then run the test data through the trained model to get the predicted values."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"X_test = X_test.to_pandas_dataframe()\n",
"y_test = y_test.to_pandas_dataframe()\n",
"y_test = np.array(y_test)\n",
"y_test = y_test[:,0]\n",
"X_train = X_train.to_pandas_dataframe()\n",
"y_train = y_train.to_pandas_dataframe()\n",
"y_train = np.array(y_train)\n",
"y_train = y_train[:,0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Predict on training and test set, and calculate residual values."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"y_pred_train = fitted_model.predict(X_train)\n",
"y_residual_train = y_train - y_pred_train\n",
"\n",
"y_pred_test = fitted_model.predict(X_test)\n",
"y_residual_test = y_test - y_pred_test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Calculate metrics for the prediction\n",
"\n",
"Now visualize the data on a scatter plot to show what our truth (actual) values are compared to the predicted values \n",
"from the trained model that was returned."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"from sklearn.metrics import mean_squared_error, r2_score\n",
"\n",
"# Set up a multi-plot chart.\n",
"f, (a0, a1) = plt.subplots(1, 2, gridspec_kw = {'width_ratios':[1, 1], 'wspace':0, 'hspace': 0})\n",
"f.suptitle('Regression Residual Values', fontsize = 18)\n",
"f.set_figheight(6)\n",
"f.set_figwidth(16)\n",
"\n",
"# Plot residual values of training set.\n",
"a0.axis([0, 360, -200, 200])\n",
"a0.plot(y_residual_train, 'bo', alpha = 0.5)\n",
"a0.plot([-10,360],[0,0], 'r-', lw = 3)\n",
"a0.text(16,170,'RMSE = {0:.2f}'.format(np.sqrt(mean_squared_error(y_train, y_pred_train))), fontsize = 12)\n",
"a0.text(16,140,'R2 score = {0:.2f}'.format(r2_score(y_train, y_pred_train)),fontsize = 12)\n",
"a0.set_xlabel('Training samples', fontsize = 12)\n",
"a0.set_ylabel('Residual Values', fontsize = 12)\n",
"\n",
"# Plot residual values of test set.\n",
"a1.axis([0, 90, -200, 200])\n",
"a1.plot(y_residual_test, 'bo', alpha = 0.5)\n",
"a1.plot([-10,360],[0,0], 'r-', lw = 3)\n",
"a1.text(5,170,'RMSE = {0:.2f}'.format(np.sqrt(mean_squared_error(y_test, y_pred_test))), fontsize = 12)\n",
"a1.text(5,140,'R2 score = {0:.2f}'.format(r2_score(y_test, y_pred_test)),fontsize = 12)\n",
"a1.set_xlabel('Test samples', fontsize = 12)\n",
"a1.set_yticklabels([])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib notebook\n",
"test_pred = plt.scatter(y_test, y_pred_test, color='')\n",
"test_test = plt.scatter(y_test, y_test, color='g')\n",
"plt.legend((test_pred, test_test), ('prediction', 'truth'), loc='upper left', fontsize=8)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Acknowledgements\n",
"This Predicting Hardware Performance Dataset is made available under the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication License: https://creativecommons.org/publicdomain/zero/1.0/. Any rights in individual contents of the database are licensed under the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication License: https://creativecommons.org/publicdomain/zero/1.0/ . The dataset itself can be found here: https://www.kaggle.com/faizunnabi/comp-hardware-performance and https://archive.ics.uci.edu/ml/datasets/Computer+Hardware\n",
"\n",
"_**Citation Found Here**_\n"
]
}
],
"metadata": {
"authors": [
{
"name": "v-rasav"
}
],
"category": "tutorial",
"compute": [
"AML Compute"
],
"datasets": [
"Concrete"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"Azure ML AutoML"
],
"friendly_name": "Regression with deployment using hardware performance dataset",
"index_order": 1,
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
},
"star_tag": [
"featured"
],
"tags": [
""
],
"task": "Regression"
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -1,12 +0,0 @@
name: auto-ml-regression-hardware-performance
dependencies:
- pip:
- azureml-sdk
- interpret
- azureml-defaults
- azureml-explain-model
- azureml-train-automl
- azureml-widgets
- matplotlib
- pandas_ml
- azureml-dataprep[pandas]

View File

@@ -188,15 +188,18 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"automlconfig-remarks-sample"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"automl_settings = {\n", "automl_settings = {\n",
" \"n_cross_validations\": 3,\n", " \"n_cross_validations\": 3,\n",
" \"primary_metric\": 'r2_score',\n", " \"primary_metric\": 'r2_score',\n",
" \"preprocess\": True,\n",
" \"enable_early_stopping\": True, \n", " \"enable_early_stopping\": True, \n",
" \"experiment_timeout_minutes\": 20, #for real scenarios we reccommend a timeout of at least one hour \n", " \"experiment_timeout_hours\": 0.3, #for real scenarios we reccommend a timeout of at least one hour \n",
" \"max_concurrent_iterations\": 4,\n", " \"max_concurrent_iterations\": 4,\n",
" \"max_cores_per_iteration\": -1,\n", " \"max_cores_per_iteration\": -1,\n",
" \"verbosity\": logging.INFO,\n", " \"verbosity\": logging.INFO,\n",

View File

@@ -5,5 +5,3 @@ dependencies:
- azureml-train-automl - azureml-train-automl
- azureml-widgets - azureml-widgets
- matplotlib - matplotlib
- pandas_ml
- paramiko<2.5.0

View File

@@ -140,6 +140,9 @@
"framework": [ "framework": [
"Azure ML AutoML" "Azure ML AutoML"
], ],
"tags": [
""
],
"friendly_name": "Forecasting with automated ML SQL integration", "friendly_name": "Forecasting with automated ML SQL integration",
"index_order": 1, "index_order": 1,
"kernelspec": { "kernelspec": {
@@ -151,9 +154,6 @@
"name": "sql", "name": "sql",
"version": "" "version": ""
}, },
"tags": [
""
],
"task": "Forecasting" "task": "Forecasting"
}, },
"nbformat": 4, "nbformat": 4,

View File

@@ -56,7 +56,7 @@ CREATE OR ALTER PROCEDURE [dbo].[AutoMLTrain]
@task NVARCHAR(40)='classification', -- The type of task. Can be classification, regression or forecasting. @task NVARCHAR(40)='classification', -- The type of task. Can be classification, regression or forecasting.
@experiment_name NVARCHAR(32)='automl-sql-test', -- This can be used to find the experiment in the Azure Portal. @experiment_name NVARCHAR(32)='automl-sql-test', -- This can be used to find the experiment in the Azure Portal.
@iteration_timeout_minutes INT = 15, -- The maximum time in minutes for training a single pipeline. @iteration_timeout_minutes INT = 15, -- The maximum time in minutes for training a single pipeline.
@experiment_timeout_minutes INT = 60, -- The maximum time in minutes for training all pipelines. @experiment_timeout_hours FLOAT = 1, -- The maximum time in hours for training all pipelines.
@n_cross_validations INT = 3, -- The number of cross validations. @n_cross_validations INT = 3, -- The number of cross validations.
@blacklist_models NVARCHAR(MAX) = '', -- A comma separated list of algos that will not be used. @blacklist_models NVARCHAR(MAX) = '', -- A comma separated list of algos that will not be used.
-- The list of possible models can be found at: -- The list of possible models can be found at:
@@ -131,8 +131,8 @@ if __name__.startswith("sqlindb"):
X_train = data_train X_train = data_train
if experiment_timeout_minutes == 0: if experiment_timeout_hours == 0:
experiment_timeout_minutes = None experiment_timeout_hours = None
if experiment_exit_score == 0: if experiment_exit_score == 0:
experiment_exit_score = None experiment_exit_score = None
@@ -163,7 +163,7 @@ if __name__.startswith("sqlindb"):
debug_log = log_file_name, debug_log = log_file_name,
primary_metric = primary_metric, primary_metric = primary_metric,
iteration_timeout_minutes = iteration_timeout_minutes, iteration_timeout_minutes = iteration_timeout_minutes,
experiment_timeout_minutes = experiment_timeout_minutes, experiment_timeout_hours = experiment_timeout_hours,
iterations = iterations, iterations = iterations,
n_cross_validations = n_cross_validations, n_cross_validations = n_cross_validations,
preprocess = preprocess, preprocess = preprocess,
@@ -204,7 +204,7 @@ if __name__.startswith("sqlindb"):
@iterations INT, @task NVARCHAR(40), @iterations INT, @task NVARCHAR(40),
@experiment_name NVARCHAR(32), @experiment_name NVARCHAR(32),
@iteration_timeout_minutes INT, @iteration_timeout_minutes INT,
@experiment_timeout_minutes INT, @experiment_timeout_hours FLOAT,
@n_cross_validations INT, @n_cross_validations INT,
@blacklist_models NVARCHAR(MAX), @blacklist_models NVARCHAR(MAX),
@whitelist_models NVARCHAR(MAX), @whitelist_models NVARCHAR(MAX),
@@ -223,7 +223,7 @@ if __name__.startswith("sqlindb"):
, @task = @task , @task = @task
, @experiment_name = @experiment_name , @experiment_name = @experiment_name
, @iteration_timeout_minutes = @iteration_timeout_minutes , @iteration_timeout_minutes = @iteration_timeout_minutes
, @experiment_timeout_minutes = @experiment_timeout_minutes , @experiment_timeout_hours = @experiment_timeout_hours
, @n_cross_validations = @n_cross_validations , @n_cross_validations = @n_cross_validations
, @blacklist_models = @blacklist_models , @blacklist_models = @blacklist_models
, @whitelist_models = @whitelist_models , @whitelist_models = @whitelist_models

View File

@@ -235,7 +235,7 @@
" @task NVARCHAR(40)='classification', -- The type of task. Can be classification, regression or forecasting.\r\n", " @task NVARCHAR(40)='classification', -- The type of task. Can be classification, regression or forecasting.\r\n",
" @experiment_name NVARCHAR(32)='automl-sql-test', -- This can be used to find the experiment in the Azure Portal.\r\n", " @experiment_name NVARCHAR(32)='automl-sql-test', -- This can be used to find the experiment in the Azure Portal.\r\n",
" @iteration_timeout_minutes INT = 15, -- The maximum time in minutes for training a single pipeline. \r\n", " @iteration_timeout_minutes INT = 15, -- The maximum time in minutes for training a single pipeline. \r\n",
" @experiment_timeout_minutes INT = 60, -- The maximum time in minutes for training all pipelines.\r\n", " @experiment_timeout_hours FLOAT = 1, -- The maximum time in hours for training all pipelines.\r\n",
" @n_cross_validations INT = 3, -- The number of cross validations.\r\n", " @n_cross_validations INT = 3, -- The number of cross validations.\r\n",
" @blacklist_models NVARCHAR(MAX) = '', -- A comma separated list of algos that will not be used.\r\n", " @blacklist_models NVARCHAR(MAX) = '', -- A comma separated list of algos that will not be used.\r\n",
" -- The list of possible models can be found at:\r\n", " -- The list of possible models can be found at:\r\n",
@@ -307,8 +307,8 @@
"\r\n", "\r\n",
" X_train = data_train\r\n", " X_train = data_train\r\n",
"\r\n", "\r\n",
" if experiment_timeout_minutes == 0:\r\n", " if experiment_timeout_hours == 0:\r\n",
" experiment_timeout_minutes = None\r\n", " experiment_timeout_hours = None\r\n",
"\r\n", "\r\n",
" if experiment_exit_score == 0:\r\n", " if experiment_exit_score == 0:\r\n",
" experiment_exit_score = None\r\n", " experiment_exit_score = None\r\n",
@@ -337,7 +337,7 @@
" debug_log = log_file_name, \r\n", " debug_log = log_file_name, \r\n",
" primary_metric = primary_metric, \r\n", " primary_metric = primary_metric, \r\n",
" iteration_timeout_minutes = iteration_timeout_minutes, \r\n", " iteration_timeout_minutes = iteration_timeout_minutes, \r\n",
" experiment_timeout_minutes = experiment_timeout_minutes,\r\n", " experiment_timeout_hours = experiment_timeout_hours,\r\n",
" iterations = iterations, \r\n", " iterations = iterations, \r\n",
" n_cross_validations = n_cross_validations, \r\n", " n_cross_validations = n_cross_validations, \r\n",
" preprocess = preprocess,\r\n", " preprocess = preprocess,\r\n",
@@ -378,7 +378,7 @@
"\t\t\t\t @iterations INT, @task NVARCHAR(40),\r\n", "\t\t\t\t @iterations INT, @task NVARCHAR(40),\r\n",
"\t\t\t\t @experiment_name NVARCHAR(32),\r\n", "\t\t\t\t @experiment_name NVARCHAR(32),\r\n",
"\t\t\t\t @iteration_timeout_minutes INT,\r\n", "\t\t\t\t @iteration_timeout_minutes INT,\r\n",
"\t\t\t\t @experiment_timeout_minutes INT,\r\n", "\t\t\t\t @experiment_timeout_hours FLOAT,\r\n",
"\t\t\t\t @n_cross_validations INT,\r\n", "\t\t\t\t @n_cross_validations INT,\r\n",
"\t\t\t\t @blacklist_models NVARCHAR(MAX),\r\n", "\t\t\t\t @blacklist_models NVARCHAR(MAX),\r\n",
"\t\t\t\t @whitelist_models NVARCHAR(MAX),\r\n", "\t\t\t\t @whitelist_models NVARCHAR(MAX),\r\n",
@@ -396,7 +396,7 @@
"\t, @task = @task\r\n", "\t, @task = @task\r\n",
"\t, @experiment_name = @experiment_name\r\n", "\t, @experiment_name = @experiment_name\r\n",
"\t, @iteration_timeout_minutes = @iteration_timeout_minutes\r\n", "\t, @iteration_timeout_minutes = @iteration_timeout_minutes\r\n",
"\t, @experiment_timeout_minutes = @experiment_timeout_minutes\r\n", "\t, @experiment_timeout_hours = @experiment_timeout_hours\r\n",
"\t, @n_cross_validations = @n_cross_validations\r\n", "\t, @n_cross_validations = @n_cross_validations\r\n",
"\t, @blacklist_models = @blacklist_models\r\n", "\t, @blacklist_models = @blacklist_models\r\n",
"\t, @whitelist_models = @whitelist_models\r\n", "\t, @whitelist_models = @whitelist_models\r\n",

View File

@@ -11,6 +11,13 @@
"Licensed under the MIT License." "Licensed under the MIT License."
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Register Azure Databricks trained model and deploy it to ACI\n"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
@@ -163,7 +170,7 @@
"\n", "\n",
"myacienv = CondaDependencies.create(conda_packages=['scikit-learn','numpy','pandas']) # showing how to add libs as an eg. - not needed for this model.\n", "myacienv = CondaDependencies.create(conda_packages=['scikit-learn','numpy','pandas']) # showing how to add libs as an eg. - not needed for this model.\n",
"\n", "\n",
"with open(\"mydeployenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myacienv.serialize_to_string())" " f.write(myacienv.serialize_to_string())"
] ]
}, },
@@ -175,18 +182,37 @@
"source": [ "source": [
"#deploy to ACI\n", "#deploy to ACI\n",
"from azureml.core.webservice import AciWebservice, Webservice\n", "from azureml.core.webservice import AciWebservice, Webservice\n",
"from azureml.exceptions import WebserviceException\n",
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"from azureml.core.conda_dependencies import CondaDependencies\n",
"\n",
"\n", "\n",
"myaci_config = AciWebservice.deploy_configuration(cpu_cores = 2, \n", "myaci_config = AciWebservice.deploy_configuration(cpu_cores = 2, \n",
" memory_gb = 2, \n", " memory_gb = 2, \n",
" tags = {'name':'Databricks Azure ML ACI'}, \n", " tags = {'name':'Databricks Azure ML ACI'}, \n",
" description = 'This is for ADB and AML example.')\n", " description = 'This is for ADB and AML example.')\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= 'spark-py', \n", "service_name = 'aciws'\n",
" entry_script='score_sparkml.py',\n",
" conda_file='mydeployenv.yml')\n",
"\n", "\n",
"myservice = Model.deploy(ws, 'aciws', [mymodel], inference_config, myaci_config)\n", "# Remove any existing service under the same name.\n",
"try:\n",
" Webservice(ws, service_name).delete()\n",
"except WebserviceException:\n",
" pass\n",
"\n",
"myenv = Environment.get(ws, name='AzureML-PySpark-MmlSpark-0.15')\n",
"# we need to add extra packages to procured environment\n",
"# in order to deploy amended environment we need to rename it\n",
"myenv.name = 'myenv'\n",
"model_dependencies = CondaDependencies('myenv.yml')\n",
"for pip_dep in model_dependencies.pip_packages:\n",
" myenv.python.conda_dependencies.add_pip_package(pip_dep)\n",
"for conda_dep in model_dependencies.conda_packages:\n",
" myenv.python.conda_dependencies.add_conda_package(conda_dep)\n",
"inference_config = InferenceConfig(entry_script='score_sparkml.py', environment=myenv)\n",
"\n",
"myservice = Model.deploy(ws, service_name, [mymodel], inference_config, myaci_config)\n",
"myservice.wait_for_deployment(show_output=True)" "myservice.wait_for_deployment(show_output=True)"
] ]
}, },
@@ -199,18 +225,6 @@
"help(Webservice)" "help(Webservice)"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# List images by ws\n",
"\n",
"for i in ContainerImage.list(workspace = ws):\n",
" print('{}(v.{} [{}]) stored at {} with build log {}'.format(i.name, i.version, i.creation_state, i.image_location, i.image_build_log_uri))"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -258,6 +272,15 @@
"myservice.delete()" "myservice.delete()"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deploying to other types of computes\n",
"\n",
"In order to learn how to deploy to other types of compute targets, such as AKS, please take a look at the set of notebooks in the [deployment](https://github.com/Azure/MachineLearningNotebooks/tree/master/how-to-use-azureml/deployment) folder."
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},

View File

@@ -1,298 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Azure ML & Azure Databricks notebooks by Parashar Shah.\n",
"\n",
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook uses image from ACI notebook for deploying to AKS."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import azureml.core\n",
"\n",
"# Check core SDK version number\n",
"print(\"SDK version:\", azureml.core.VERSION)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Set auth to be used by workspace related APIs.\n",
"# For automation or CI/CD ServicePrincipalAuthentication can be used.\n",
"# https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.authentication.serviceprincipalauthentication?view=azure-ml-py\n",
"auth = None"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core import Workspace\n",
"\n",
"ws = Workspace.from_config(auth = auth)\n",
"print('Workspace name: ' + ws.name, \n",
" 'Azure region: ' + ws.location, \n",
" 'Subscription id: ' + ws.subscription_id, \n",
" 'Resource group: ' + ws.resource_group, sep = '\\n')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#Register the model\n",
"import os\n",
"from azureml.core.model import Model\n",
"\n",
"model_name = \"AdultCensus_runHistory_aks.mml\" # \n",
"model_name_dbfs = os.path.join(\"/dbfs\", model_name)\n",
"\n",
"print(\"copy model from dbfs to local\")\n",
"model_local = \"file:\" + os.getcwd() + \"/\" + model_name\n",
"dbutils.fs.cp(model_name, model_local, True)\n",
"\n",
"mymodel = Model.register(model_path = model_name, # this points to a local file\n",
" model_name = model_name, # this is the name the model is registered as, am using same name for both path and name. \n",
" description = \"ADB trained model by Parashar\",\n",
" workspace = ws)\n",
"\n",
"print(mymodel.name, mymodel.description, mymodel.version)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#%%writefile score_sparkml.py\n",
"score_sparkml = \"\"\"\n",
" \n",
"import json\n",
" \n",
"def init():\n",
" # One-time initialization of PySpark and predictive model\n",
" import pyspark\n",
" from azureml.core.model import Model\n",
" from pyspark.ml import PipelineModel\n",
" \n",
" global trainedModel\n",
" global spark\n",
" \n",
" spark = pyspark.sql.SparkSession.builder.appName(\"ADB and AML notebook by Parashar\").getOrCreate()\n",
" model_name = \"{model_name}\" #interpolated\n",
" model_path = Model.get_model_path(model_name)\n",
" trainedModel = PipelineModel.load(model_path)\n",
" \n",
"def run(input_json):\n",
" if isinstance(trainedModel, Exception):\n",
" return json.dumps({{\"trainedModel\":str(trainedModel)}})\n",
" \n",
" try:\n",
" sc = spark.sparkContext\n",
" input_list = json.loads(input_json)\n",
" input_rdd = sc.parallelize(input_list)\n",
" input_df = spark.read.json(input_rdd)\n",
" \n",
" # Compute prediction\n",
" prediction = trainedModel.transform(input_df)\n",
" #result = prediction.first().prediction\n",
" predictions = prediction.collect()\n",
" \n",
" #Get each scored result\n",
" preds = [str(x['prediction']) for x in predictions]\n",
" result = \",\".join(preds)\n",
" # you can return any data type as long as it is JSON-serializable\n",
" return result.tolist()\n",
" except Exception as e:\n",
" result = str(e)\n",
" return result\n",
" \n",
"\"\"\".format(model_name=model_name)\n",
" \n",
"exec(score_sparkml)\n",
" \n",
"with open(\"score_sparkml.py\", \"w\") as file:\n",
" file.write(score_sparkml)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.conda_dependencies import CondaDependencies \n",
"\n",
"myacienv = CondaDependencies.create(conda_packages=['scikit-learn','numpy','pandas']) #showing how to add libs as an eg. - not needed for this model.\n",
"\n",
"with open(\"mydeployenv.yml\",\"w\") as f:\n",
" f.write(myacienv.serialize_to_string())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#create AKS compute\n",
"#it may take 20-25 minutes to create a new cluster\n",
"\n",
"from azureml.core.compute import AksCompute, ComputeTarget\n",
"\n",
"# Use the default configuration (can also provide parameters to customize)\n",
"prov_config = AksCompute.provisioning_configuration()\n",
"\n",
"aks_name = 'ps-aks-demo2' \n",
"\n",
"# Create the cluster\n",
"aks_target = ComputeTarget.create(workspace = ws, \n",
" name = aks_name, \n",
" provisioning_configuration = prov_config)\n",
"\n",
"aks_target.wait_for_completion(show_output = True)\n",
"\n",
"print(aks_target.provisioning_state)\n",
"print(aks_target.provisioning_errors)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#deploy to AKS\n",
"from azureml.core.webservice import AksWebservice, Webservice\n",
"from azureml.core.model import InferenceConfig\n",
"\n",
"aks_config = AksWebservice.deploy_configuration(enable_app_insights=True)\n",
"\n",
"inference_config = InferenceConfig(runtime = 'spark-py', \n",
" entry_script ='score_sparkml.py',\n",
" conda_file ='mydeployenv.yml')\n",
"\n",
"aks_service = Model.deploy(ws, 'ps-aks-service', [mymodel], inference_config, aks_config, aks_target)\n",
"aks_service.wait_for_deployment(show_output=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"aks_service.deployment_status"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#for using the Web HTTP API \n",
"print(aks_service.scoring_uri)\n",
"print(aks_service.get_keys())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"\n",
"#get the some sample data\n",
"test_data_path = \"AdultCensusIncomeTest\"\n",
"test = spark.read.parquet(test_data_path).limit(5)\n",
"\n",
"test_json = json.dumps(test.toJSON().collect())\n",
"\n",
"print(test_json)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#using data defined above predict if income is >50K (1) or <=50K (0)\n",
"aks_service.run(input_data=test_json)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#comment to not delete the web service\n",
"aks_service.delete()\n",
"#model.delete()\n",
"aks_target.delete() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/azure-databricks/amlsdk/deploy-to-aks-existingimage-05.png)"
]
}
],
"metadata": {
"authors": [
{
"name": "pasha"
}
],
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
},
"name": "deploy-to-aks-existingimage-05",
"notebookId": 1030695628045968
},
"nbformat": 4,
"nbformat_minor": 1
}

View File

@@ -640,7 +640,7 @@
"\n", "\n",
"myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn'], pip_packages=['azureml-defaults', 'azureml-sdk[automl]'])\n", "myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn'], pip_packages=['azureml-defaults', 'azureml-sdk[automl]'])\n",
"\n", "\n",
"conda_env_file_name = 'mydeployenv.yml'\n", "conda_env_file_name = 'myenv.yml'\n",
"myenv.save_to_file('.', conda_env_file_name)" "myenv.save_to_file('.', conda_env_file_name)"
] ]
}, },
@@ -661,22 +661,40 @@
"# this will take 10-15 minutes to finish\n", "# this will take 10-15 minutes to finish\n",
"\n", "\n",
"from azureml.core.webservice import AciWebservice, Webservice\n", "from azureml.core.webservice import AciWebservice, Webservice\n",
"from azureml.exceptions import WebserviceException\n",
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.model import Model\n", "from azureml.core.model import Model\n",
"from azureml.core.environment import Environment\n",
"from azureml.core.conda_dependencies import CondaDependencies\n",
"import uuid\n", "import uuid\n",
"\n", "\n",
"\n",
"myaci_config = AciWebservice.deploy_configuration(\n", "myaci_config = AciWebservice.deploy_configuration(\n",
" cpu_cores = 2, \n", " cpu_cores = 2, \n",
" memory_gb = 2, \n", " memory_gb = 2, \n",
" tags = {'name':'Databricks Azure ML ACI'}, \n", " tags = {'name':'Databricks Azure ML ACI'}, \n",
" description = 'This is for ADB and AutoML example.')\n", " description = 'This is for ADB and AutoML example.')\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= 'spark-py', \n", "myenv = Environment.get(ws, name='AzureML-PySpark-MmlSpark-0.15')\n",
" entry_script='score.py',\n", "# we need to add extra packages to procured environment\n",
" conda_file='mydeployenv.yml')\n", "# in order to deploy amended environment we need to rename it\n",
"myenv.name = 'myenv'\n",
"model_dependencies = CondaDependencies('myenv.yml')\n",
"for pip_dep in model_dependencies.pip_packages:\n",
" myenv.python.conda_dependencies.add_pip_package(pip_dep)\n",
"for conda_dep in model_dependencies.conda_packages:\n",
" myenv.python.conda_dependencies.add_conda_package(conda_dep)\n",
"inference_config = InferenceConfig(entry_script='score_sparkml.py', environment=myenv)\n",
"\n", "\n",
"guid = str(uuid.uuid4()).split(\"-\")[0]\n", "guid = str(uuid.uuid4()).split(\"-\")[0]\n",
"service_name = \"myservice-{}\".format(guid)\n", "service_name = \"myservice-{}\".format(guid)\n",
"\n",
"# Remove any existing service under the same name.\n",
"try:\n",
" Webservice(ws, service_name).delete()\n",
"except WebserviceException:\n",
" pass\n",
"\n",
"print(\"Creating service with name: {}\".format(service_name))\n", "print(\"Creating service with name: {}\".format(service_name))\n",
"\n", "\n",
"myservice = Model.deploy(ws, service_name, [model], inference_config, myaci_config)\n", "myservice = Model.deploy(ws, service_name, [model], inference_config, myaci_config)\n",
@@ -795,7 +813,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.8"
}, },
"name": "auto-ml-classification-local-adb", "name": "auto-ml-classification-local-adb",
"notebookId": 2733885892129020 "notebookId": 2733885892129020

View File

@@ -345,7 +345,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"sample-akscompute-provision"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.compute import AksCompute, ComputeTarget\n", "from azureml.core.compute import AksCompute, ComputeTarget\n",

View File

@@ -682,7 +682,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"sample-akswebservice-deploy-from-image"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"%%time\n", "%%time\n",

View File

@@ -195,7 +195,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"You can now create and/or use an Environment object when deploying a Webservice. The Environment can have been previously registered with your Workspace, or it will be registered with it as a part of the Webservice deployment. Only Environments that were created using azureml-defaults version 1.0.48 or later will work with this new handling however.\n", "You can now create and/or use an Environment object when deploying a Webservice. The Environment can have been previously registered with your Workspace, or it will be registered with it as a part of the Webservice deployment. Please note that your environment must include azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service.\n",
"\n", "\n",
"More information can be found in our [using environments notebook](../training/using-environments/using-environments.ipynb)." "More information can be found in our [using environments notebook](../training/using-environments/using-environments.ipynb)."
] ]
@@ -221,23 +221,30 @@
"## Create Inference Configuration\n", "## Create Inference Configuration\n",
"\n", "\n",
"There is now support for a source directory, you can upload an entire folder from your local machine as dependencies for the Webservice.\n", "There is now support for a source directory, you can upload an entire folder from your local machine as dependencies for the Webservice.\n",
"Note: in that case, your entry_script, conda_file, and extra_docker_file_steps paths are relative paths to the source_directory path.\n", "Note: in that case, environments's entry_script and file_path are relative paths to the source_directory path; myenv.docker.base_dockerfile is a string containing extra docker steps or contents of the docker file.\n",
"\n", "\n",
"Sample code for using a source directory:\n", "Sample code for using a source directory:\n",
"\n", "\n",
"```python\n", "```python\n",
"from azureml.core.environment import Environment\n",
"from azureml.core.model import InferenceConfig\n",
"\n",
"myenv = Environment.from_conda_specification(name='myenv', file_path='env/myenv.yml')\n",
"\n",
"# explicitly set base_image to None when setting base_dockerfile\n",
"myenv.docker.base_image = None\n",
"# add extra docker commends to execute\n",
"myenv.docker.base_dockerfile = \"FROM ubuntu\\n RUN echo \\\"hello\\\"\"\n",
"\n",
"inference_config = InferenceConfig(source_directory=\"C:/abc\",\n", "inference_config = InferenceConfig(source_directory=\"C:/abc\",\n",
" runtime= \"python\", \n",
" entry_script=\"x/y/score.py\",\n", " entry_script=\"x/y/score.py\",\n",
" conda_file=\"env/myenv.yml\", \n", " environment=myenv)\n",
" extra_docker_file_steps=\"helloworld.txt\")\n",
"```\n", "```\n",
"\n", "\n",
" - source_directory = holds source path as string, this entire folder gets added in image so its really easy to access any files within this folder or subfolder\n", " - file_path: input parameter to Environment constructor. Manages conda and python package dependencies.\n",
" - runtime = Which runtime to use for the image. Current supported runtimes are 'spark-py' and 'python\n", " - env.docker.base_dockerfile: any extra steps you want to inject into docker file\n",
" - entry_script = contains logic specific to initializing your model and running predictions\n", " - source_directory: holds source path as string, this entire folder gets added in image so its really easy to access any files within this folder or subfolder\n",
" - conda_file = manages conda and python package dependencies.\n", " - entry_script: contains logic specific to initializing your model and running predictions"
" - extra_docker_file_steps = optional: any extra steps you want to inject into docker file"
] ]
}, },
{ {

View File

@@ -20,7 +20,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Register model and deploy as webservice\n", "# Register model and deploy as webservice in ACI\n",
"\n", "\n",
"Following this notebook, you will:\n", "Following this notebook, you will:\n",
"\n", "\n",
@@ -45,6 +45,7 @@
"source": [ "source": [
"import azureml.core\n", "import azureml.core\n",
"\n", "\n",
"\n",
"# Check core SDK version number.\n", "# Check core SDK version number.\n",
"print('SDK version:', azureml.core.VERSION)" "print('SDK version:', azureml.core.VERSION)"
] ]
@@ -70,6 +71,7 @@
"source": [ "source": [
"from azureml.core import Workspace\n", "from azureml.core import Workspace\n",
"\n", "\n",
"\n",
"ws = Workspace.from_config()\n", "ws = Workspace.from_config()\n",
"print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')" "print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')"
] ]
@@ -91,6 +93,7 @@
"source": [ "source": [
"from azureml.core import Dataset\n", "from azureml.core import Dataset\n",
"\n", "\n",
"\n",
"datastore = ws.get_default_datastore()\n", "datastore = ws.get_default_datastore()\n",
"datastore.upload_files(files=['./features.csv', './labels.csv'],\n", "datastore.upload_files(files=['./features.csv', './labels.csv'],\n",
" target_path='sklearn_regression/',\n", " target_path='sklearn_regression/',\n",
@@ -116,7 +119,8 @@
"execution_count": null, "execution_count": null,
"metadata": { "metadata": {
"tags": [ "tags": [
"register model from file" "register model from file",
"sample-model-register"
] ]
}, },
"outputs": [], "outputs": [],
@@ -124,6 +128,7 @@
"from azureml.core import Model\n", "from azureml.core import Model\n",
"from azureml.core.resource_configuration import ResourceConfiguration\n", "from azureml.core.resource_configuration import ResourceConfiguration\n",
"\n", "\n",
"\n",
"model = Model.register(workspace=ws,\n", "model = Model.register(workspace=ws,\n",
" model_name='my-sklearn-model', # Name of the registered model in your workspace.\n", " model_name='my-sklearn-model', # Name of the registered model in your workspace.\n",
" model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.\n", " model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.\n",
@@ -158,6 +163,8 @@
"\n", "\n",
"The Azure Machine Learning service provides a default environment for supported model frameworks, including scikit-learn, based on the metadata you provided when registering your model. This is the easiest way to deploy your model.\n", "The Azure Machine Learning service provides a default environment for supported model frameworks, including scikit-learn, based on the metadata you provided when registering your model. This is the easiest way to deploy your model.\n",
"\n", "\n",
"Even when you deploy your model to ACI with a default environment you can still customize the deploy configuration (i.e. the number of cores and amount of memory made available for the deployment) using the [AciWebservice.deploy_configuration()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aci.aciwebservice#deploy-configuration-cpu-cores-none--memory-gb-none--tags-none--properties-none--description-none--location-none--auth-enabled-none--ssl-enabled-none--enable-app-insights-none--ssl-cert-pem-file-none--ssl-key-pem-file-none--ssl-cname-none--dns-name-label-none--). Look at the \"Use a custom environment\" section of this notebook for more information on deploy configuration.\n",
"\n",
"**Note**: This step can take several minutes." "**Note**: This step can take several minutes."
] ]
}, },
@@ -170,6 +177,7 @@
"from azureml.core import Webservice\n", "from azureml.core import Webservice\n",
"from azureml.exceptions import WebserviceException\n", "from azureml.exceptions import WebserviceException\n",
"\n", "\n",
"\n",
"service_name = 'my-sklearn-service'\n", "service_name = 'my-sklearn-service'\n",
"\n", "\n",
"# Remove any existing service under the same name.\n", "# Remove any existing service under the same name.\n",
@@ -197,6 +205,7 @@
"source": [ "source": [
"import json\n", "import json\n",
"\n", "\n",
"\n",
"input_payload = json.dumps({\n", "input_payload = json.dumps({\n",
" 'data': [\n", " 'data': [\n",
" [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n", " [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n",
@@ -230,9 +239,9 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Use a custom environment (for all models)\n", "### Use a custom environment\n",
"\n", "\n",
"If you want more control over how your model is run, if it uses another framework, or if it has special runtime requirements, you can instead specify your own environment and scoring method.\n", "If you want more control over how your model is run, if it uses another framework, or if it has special runtime requirements, you can instead specify your own environment and scoring method. Custom environments can be used for any model you want to deploy.\n",
"\n", "\n",
"Specify the model's runtime environment by creating an [Environment](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.environment%28class%29?view=azure-ml-py) object and providing the [CondaDependencies](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.conda_dependencies.condadependencies?view=azure-ml-py) needed by your model." "Specify the model's runtime environment by creating an [Environment](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.environment%28class%29?view=azure-ml-py) object and providing the [CondaDependencies](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.conda_dependencies.condadependencies?view=azure-ml-py) needed by your model."
] ]
@@ -246,6 +255,7 @@
"from azureml.core import Environment\n", "from azureml.core import Environment\n",
"from azureml.core.conda_dependencies import CondaDependencies\n", "from azureml.core.conda_dependencies import CondaDependencies\n",
"\n", "\n",
"\n",
"environment = Environment('my-sklearn-environment')\n", "environment = Environment('my-sklearn-environment')\n",
"environment.python.conda_dependencies = CondaDependencies.create(pip_packages=[\n", "environment.python.conda_dependencies = CondaDependencies.create(pip_packages=[\n",
" 'azureml-defaults',\n", " 'azureml-defaults',\n",
@@ -277,7 +287,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Deploy your model in the custom environment by providing an [InferenceConfig](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py) object to [Model.deploy()](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.model.model?view=azure-ml-py#deploy-workspace--name--models--inference-config--deployment-config-none--deployment-target-none-).\n", "Deploy your model in the custom environment by providing an [InferenceConfig](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py) object to [Model.deploy()](https://docs.microsoft.com/en-us/python/api/azureml-core/azureml.core.model.model?view=azure-ml-py#deploy-workspace--name--models--inference-config--deployment-config-none--deployment-target-none-). In this case we are also using the [AciWebservice.deploy_configuration()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aci.aciwebservice#deploy-configuration-cpu-cores-none--memory-gb-none--tags-none--properties-none--description-none--location-none--auth-enabled-none--ssl-enabled-none--enable-app-insights-none--ssl-cert-pem-file-none--ssl-key-pem-file-none--ssl-cname-none--dns-name-label-none--) method to generate a custom deploy configuration.\n",
"\n", "\n",
"**Note**: This step can take several minutes." "**Note**: This step can take several minutes."
] ]
@@ -287,15 +297,18 @@
"execution_count": null, "execution_count": null,
"metadata": { "metadata": {
"tags": [ "tags": [
"azuremlexception-remarks-sample" "azuremlexception-remarks-sample",
"sample-aciwebservice-deploy-config"
] ]
}, },
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core import Webservice\n", "from azureml.core import Webservice\n",
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.webservice import AciWebservice\n",
"from azureml.exceptions import WebserviceException\n", "from azureml.exceptions import WebserviceException\n",
"\n", "\n",
"\n",
"service_name = 'my-custom-env-service'\n", "service_name = 'my-custom-env-service'\n",
"\n", "\n",
"# Remove any existing service under the same name.\n", "# Remove any existing service under the same name.\n",
@@ -304,11 +317,14 @@
"except WebserviceException:\n", "except WebserviceException:\n",
" pass\n", " pass\n",
"\n", "\n",
"inference_config = InferenceConfig(entry_script='score.py',\n", "inference_config = InferenceConfig(entry_script='score.py', environment=environment)\n",
" source_directory='.',\n", "aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)\n",
" environment=environment)\n",
"\n", "\n",
"service = Model.deploy(ws, service_name, [model], inference_config)\n", "service = Model.deploy(workspace=ws,\n",
" name=service_name,\n",
" models=[model],\n",
" inference_config=inference_config,\n",
" deployment_config=aci_config)\n",
"service.wait_for_deployment(show_output=True)" "service.wait_for_deployment(show_output=True)"
] ]
}, },
@@ -327,6 +343,7 @@
"source": [ "source": [
"import json\n", "import json\n",
"\n", "\n",
"\n",
"input_payload = json.dumps({\n", "input_payload = json.dumps({\n",
" 'data': [\n", " 'data': [\n",
" [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n", " [ 0.03807591, 0.05068012, 0.06169621, 0.02187235, -0.0442235,\n",
@@ -404,7 +421,7 @@
"\n", "\n",
" - To run a production-ready web service, see the [notebook on deployment to Azure Kubernetes Service](../production-deploy-to-aks/production-deploy-to-aks.ipynb).\n", " - To run a production-ready web service, see the [notebook on deployment to Azure Kubernetes Service](../production-deploy-to-aks/production-deploy-to-aks.ipynb).\n",
" - To run a local web service, see the [notebook on deployment to a local Docker container](../deploy-to-local/register-model-deploy-local.ipynb).\n", " - To run a local web service, see the [notebook on deployment to a local Docker container](../deploy-to-local/register-model-deploy-local.ipynb).\n",
" - For more information on datasets, see the [notebook on training with datasets](../../work-with-data/datasets-tutorial/train-with-datasets.ipynb).\n", " - For more information on datasets, see the [notebook on training with datasets](../../work-with-data/datasets-tutorial/train-with-datasets/train-with-datasets.ipynb).\n",
" - For more information on environments, see the [notebook on using environments](../../training/using-environments/using-environments.ipynb).\n", " - For more information on environments, see the [notebook on using environments](../../training/using-environments/using-environments.ipynb).\n",
" - For information on all the available deployment targets, see [&ldquo;How and where to deploy models&rdquo;](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-and-where#choose-a-compute-target)." " - For information on all the available deployment targets, see [&ldquo;How and where to deploy models&rdquo;](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-and-where#choose-a-compute-target)."
] ]

View File

@@ -96,7 +96,8 @@
"execution_count": null, "execution_count": null,
"metadata": { "metadata": {
"tags": [ "tags": [
"register model from file" "register model from file",
"sample-model-register"
] ]
}, },
"outputs": [], "outputs": [],
@@ -188,6 +189,15 @@
" return error" " return error"
] ]
}, },
{
"cell_type": "markdown",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency for your environemnt. This package contains the functionality needed to host the model as a web service."
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -205,16 +215,6 @@
" - inference-schema[numpy-support]" " - inference-schema[numpy-support]"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile C:/abc/dockerstep/customDockerStep.txt\n",
"RUN echo \"this is test\""
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -239,11 +239,10 @@
"source": [ "source": [
"## Create Inference Configuration\n", "## Create Inference Configuration\n",
"\n", "\n",
" - source_directory = holds source path as string, this entire folder gets added in image so its really easy to access any files within this folder or subfolder\n", " - file_path: input parameter to Environment constructor. Manages conda and python package dependencies.\n",
" - runtime = Which runtime to use for the image. Current supported runtimes are 'spark-py' and 'python\n", " - env.docker.base_dockerfile: any extra steps you want to inject into docker file\n",
" - entry_script = contains logic specific to initializing your model and running predictions\n", " - source_directory: holds source path as string, this entire folder gets added in image so its really easy to access any files within this folder or subfolder\n",
" - conda_file = manages conda and python package dependencies.\n", " - entry_script: contains logic specific to initializing your model and running predictions"
" - extra_docker_file_steps = optional: any extra steps you want to inject into docker file"
] ]
}, },
{ {
@@ -252,13 +251,19 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.environment import Environment\n",
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"\n", "\n",
"\n",
"myenv = Environment.from_conda_specification(name='myenv', file_path='env/myenv.yml')\n",
"\n",
"# explicitly set base_image to None when setting base_dockerfile\n",
"myenv.docker.base_image = None\n",
"myenv.docker.base_dockerfile = \"RUN echo \\\"this is test\\\"\"\n",
"\n",
"inference_config = InferenceConfig(source_directory=\"C:/abc\",\n", "inference_config = InferenceConfig(source_directory=\"C:/abc\",\n",
" runtime=\"python\", \n",
" entry_script=\"x/y/score.py\",\n", " entry_script=\"x/y/score.py\",\n",
" conda_file=\"env/myenv.yml\", \n", " environment=myenv)\n"
" extra_docker_file_steps=\"dockerstep/customDockerStep.txt\")"
] ]
}, },
{ {

View File

@@ -166,7 +166,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"sample-localwebservice-deploy"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import LocalWebservice\n", "from azureml.core.webservice import LocalWebservice\n",
@@ -341,9 +345,11 @@
], ],
"category": "tutorial", "category": "tutorial",
"compute": [ "compute": [
"local" "Local"
],
"datasets": [
"None"
], ],
"datasets": [],
"deployment": [ "deployment": [
"Local" "Local"
], ],

View File

@@ -0,0 +1,369 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/deployment/production-deploy-to-aks/production-deploy-to-aks.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Deploy models to Azure Kubernetes Service (AKS) using controlled roll out\n",
"This notebook will show you how to deploy mulitple AKS webservices with the same scoring endpoint and how to roll out your models in a controlled manner by configuring % of scoring traffic going to each webservice. If you are using a Notebook VM, you are all set. Otherwise, go through the [configuration notebook](../../../configuration.ipynb) to install the Azure Machine Learning Python SDK and create an Azure ML Workspace."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Check for latest version\n",
"import azureml.core\n",
"print(azureml.core.VERSION)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Initialize workspace\n",
"Create a [Workspace](https://docs.microsoft.com/python/api/azureml-core/azureml.core.workspace%28class%29?view=azure-ml-py) object from your persisted configuration."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.workspace import Workspace\n",
"\n",
"ws = Workspace.from_config()\n",
"print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep = '\\n')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Register the model\n",
"Register a file or folder as a model by calling [Model.register()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.model?view=azure-ml-py#register-workspace--model-path--model-name--tags-none--properties-none--description-none--datasets-none--model-framework-none--model-framework-version-none--child-paths-none-).\n",
"In addition to the content of the model file itself, your registered model will also store model metadata -- model description, tags, and framework information -- that will be useful when managing and deploying models in your workspace. Using tags, for instance, you can categorize your models and apply filters when listing models in your workspace."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core import Model\n",
"\n",
"model = Model.register(workspace=ws,\n",
" model_name='sklearn_regression_model.pkl', # Name of the registered model in your workspace.\n",
" model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.\n",
" model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.\n",
" model_framework_version='0.19.1', # Version of scikit-learn used to create the model.\n",
" description='Ridge regression model to predict diabetes progression.',\n",
" tags={'area': 'diabetes', 'type': 'regression'})\n",
"\n",
"print('Name:', model.name)\n",
"print('Version:', model.version)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Register an environment (for all models)\n",
"\n",
"If you control over how your model is run, or if it has special runtime requirements, you can specify your own environment and scoring method.\n",
"\n",
"Specify the model's runtime environment by creating an [Environment](https://docs.microsoft.com/python/api/azureml-core/azureml.core.environment%28class%29?view=azure-ml-py) object and providing the [CondaDependencies](https://docs.microsoft.com/python/api/azureml-core/azureml.core.conda_dependencies.condadependencies?view=azure-ml-py) needed by your model."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core import Environment\n",
"from azureml.core.conda_dependencies import CondaDependencies\n",
"\n",
"environment=Environment('my-sklearn-environment')\n",
"environment.python.conda_dependencies = CondaDependencies.create(pip_packages=[\n",
" 'azureml-defaults',\n",
" 'inference-schema[numpy-support]',\n",
" 'joblib',\n",
" 'numpy',\n",
" 'scikit-learn'\n",
"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When using a custom environment, you must also provide Python code for initializing and running your model. An example script is included with this notebook."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"with open('score.py') as f:\n",
" print(f.read())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create the InferenceConfig\n",
"Create the inference configuration to reference your environment and entry script during deployment"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.model import InferenceConfig\n",
"\n",
"inference_config = InferenceConfig(entry_script='score.py', \n",
" source_directory='.',\n",
" environment=environment)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Provision the AKS Cluster\n",
"If you already have an AKS cluster attached to this workspace, skip the step below and provide the name of the cluster."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.compute import AksCompute\n",
"from azureml.core.compute import ComputeTarget\n",
"# Use the default configuration (can also provide parameters to customize)\n",
"prov_config = AksCompute.provisioning_configuration()\n",
"\n",
"aks_name = 'my-aks' \n",
"# Create the cluster\n",
"aks_target = ComputeTarget.create(workspace = ws, \n",
" name = aks_name, \n",
" provisioning_configuration = prov_config) \n",
"aks_target.wait_for_completion(show_output=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create an Endpoint and add a version (AKS service)\n",
"This creates a new endpoint and adds a version behind it. By default the first version added is the default version. You can specify the traffic percentile a version takes behind an endpoint. \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# deploying the model and create a new endpoint\n",
"from azureml.core.webservice import AksEndpoint\n",
"# from azureml.core.compute import ComputeTarget\n",
"\n",
"#select a created compute\n",
"compute = ComputeTarget(ws, 'my-aks')\n",
"namespace_name=\"endpointnamespace\"\n",
"# define the endpoint name\n",
"endpoint_name = \"myendpoint1\"\n",
"# define the service name\n",
"version_name= \"versiona\"\n",
"\n",
"endpoint_deployment_config = AksEndpoint.deploy_configuration(tags = {'modelVersion':'firstversion', 'department':'finance'}, \n",
" description = \"my first version\", namespace = namespace_name, \n",
" version_name = version_name, traffic_percentile = 40)\n",
"\n",
"endpoint = Model.deploy(ws, endpoint_name, [model], inference_config, endpoint_deployment_config, compute)\n",
"endpoint.wait_for_deployment(True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"endpoint.get_logs()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Add another version of the service to an existing endpoint\n",
"This adds another version behind an existing endpoint. You can specify the traffic percentile the new version takes. If no traffic_percentile is specified then it defaults to 0. All the unspecified traffic percentile (in this example 50) across all versions goes to default version."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Adding a new version to an existing Endpoint.\n",
"version_name_add=\"versionb\" \n",
"\n",
"endpoint.create_version(version_name = version_name_add, inference_config=inference_config, models=[model], tags = {'modelVersion':'secondversion', 'department':'finance'}, \n",
" description = \"my second version\", traffic_percentile = 10)\n",
"endpoint.wait_for_deployment(True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Update an existing version in an endpoint\n",
"There are two types of versions: control and treatment. An endpoint contains one or more treatment versions but only one control version. This categorization helps compare the different versions against the defined control version."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"endpoint.update_version(version_name=endpoint.versions[version_name_add].name, description=\"my second version update\", traffic_percentile=40, is_default=True, is_control_version_type=True)\n",
"endpoint.wait_for_deployment(True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test the web service using run method\n",
"Test the web sevice by passing in data. Run() method retrieves API keys behind the scenes to make sure that call is authenticated."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Scoring on endpoint\n",
"import json\n",
"test_sample = json.dumps({'data': [\n",
" [1,2,3,4,5,6,7,8,9,10], \n",
" [10,9,8,7,6,5,4,3,2,1]\n",
"]})\n",
"\n",
"test_sample_encoded = bytes(test_sample, encoding='utf8')\n",
"prediction = endpoint.run(input_data=test_sample_encoded)\n",
"print(prediction)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Delete Resources"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# deleting a version in an endpoint\n",
"endpoint.delete_version(version_name=version_name)\n",
"endpoint.wait_for_deployment(True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# deleting an endpoint, this will delete all versions in the endpoint and the endpoint itself\n",
"endpoint.delete()"
]
}
],
"metadata": {
"authors": [
{
"name": "shipatel"
}
],
"category": "deployment",
"compute": [
"None"
],
"datasets": [
"Diabetes"
],
"deployment": [
"Azure Kubernetes Service"
],
"exclude_from_index": false,
"framework": [
"Scikit-learn"
],
"friendly_name": "Deploy models to AKS using controlled roll out",
"index_order": 3,
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
},
"star_tag": [
"featured"
],
"tags": [
"None"
],
"task": "Deploy a model with Azure Machine Learning"
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -0,0 +1,4 @@
name: deploy-aks-with-controlled-rollout
dependencies:
- pip:
- azureml-sdk

View File

@@ -0,0 +1,28 @@
import pickle
import json
import numpy
from sklearn.externals import joblib
from sklearn.linear_model import Ridge
from azureml.core.model import Model
def init():
global model
# note here "sklearn_regression_model.pkl" is the name of the model registered under
# this is a different behavior than before when the code is run locally, even though the code is the same.
model_path = Model.get_model_path('sklearn_regression_model.pkl')
# deserialize the model file back into a sklearn model
model = joblib.load(model_path)
# note you can pass in multiple rows for scoring
def run(raw_data):
try:
data = json.loads(raw_data)['data']
data = numpy.array(data)
result = model.predict(data)
# you can return any data type as long as it is JSON-serializable
return result.tolist()
except Exception as e:
error = str(e)
return error

View File

@@ -158,7 +158,8 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## 5. *Create myenv.yml file*" "## 5. *Create myenv.yml file*\n",
"Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -169,7 +170,8 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn'])\n", "myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn'],\n",
" pip_packages=['azureml-defaults'])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -189,10 +191,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" conda_file=\"myenv.yml\")" "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
] ]
}, },
{ {
@@ -431,7 +434,8 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"aks_service.update(enable_app_insights=False)" "aks_service.update(enable_app_insights=False)\n",
"aks_service.wait_for_deployment(show_output = True)"
] ]
}, },
{ {

View File

@@ -244,7 +244,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Setting up inference configuration\n", "### Setting up inference configuration\n",
"First we create a YAML file that specifies which dependencies we would like to see in our container." "First we create a YAML file that specifies which dependencies we would like to see in our container. Please note that you must include azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -255,7 +255,7 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\",\"onnxruntime==0.4.0\",\"azureml-core\"])\n", "myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime==0.4.0\", \"azureml-core\", \"azureml-defaults\"])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -275,11 +275,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" conda_file=\"myenv.yml\",\n", "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
" extra_docker_file_steps = \"Dockerfile\")"
] ]
}, },
{ {
@@ -316,9 +316,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import Webservice\n",
"from random import randint\n",
"\n",
"aci_service_name = 'my-aci-service-15ad'\n", "aci_service_name = 'my-aci-service-15ad'\n",
"print(\"Service\", aci_service_name)\n", "print(\"Service\", aci_service_name)\n",
"aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n", "aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n",
@@ -376,7 +373,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"#aci_service.delete()" "aci_service.delete()"
] ]
} }
], ],
@@ -386,6 +383,22 @@
"name": "viswamy" "name": "viswamy"
} }
], ],
"category": "deployment",
"compute": [
"local"
],
"datasets": [
"PASCAL VOC"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"ONNX"
],
"friendly_name": "Convert and deploy TinyYolo with ONNX Runtime",
"index_order": 5,
"kernelspec": { "kernelspec": {
"display_name": "Python 3.6", "display_name": "Python 3.6",
"language": "python", "language": "python",
@@ -402,7 +415,14 @@
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5"
} },
"star_tag": [
"featured"
],
"tags": [
"ONNX Converter"
],
"task": "Object Detection"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -2,5 +2,6 @@ name: onnx-convert-aml-deploy-tinyyolo
dependencies: dependencies:
- pip: - pip:
- azureml-sdk - azureml-sdk
- numpy
- git+https://github.com/apple/coremltools@v2.1 - git+https://github.com/apple/coremltools@v2.1
- onnxmltools==1.3.1 - onnxmltools==1.3.1

View File

@@ -319,7 +319,8 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Write Environment File" "### Write Environment File\n",
"Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -330,7 +331,8 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime\", \"azureml-core\"])\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime\", \"azureml-core\", \"azureml-defaults\"])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -350,11 +352,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" conda_file=\"myenv.yml\",\n", "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
" extra_docker_file_steps = \"Dockerfile\")"
] ]
}, },
{ {
@@ -391,8 +393,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import Webservice\n",
"\n",
"aci_service_name = 'onnx-demo-emotion'\n", "aci_service_name = 'onnx-demo-emotion'\n",
"print(\"Service\", aci_service_name)\n", "print(\"Service\", aci_service_name)\n",
"aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n", "aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n",
@@ -726,7 +726,7 @@
"source": [ "source": [
"# remember to delete your service after you are done using it!\n", "# remember to delete your service after you are done using it!\n",
"\n", "\n",
"# aci_service.delete()" "aci_service.delete()"
] ]
}, },
{ {
@@ -755,6 +755,22 @@
"name": "viswamy" "name": "viswamy"
} }
], ],
"category": "deployment",
"compute": [
"Local"
],
"datasets": [
"Emotion FER"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"ONNX"
],
"friendly_name": "Deploy Facial Expression Recognition (FER+) with ONNX Runtime",
"index_order": 2,
"kernelspec": { "kernelspec": {
"display_name": "Python 3.6", "display_name": "Python 3.6",
"language": "python", "language": "python",
@@ -772,7 +788,12 @@
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5"
}, },
"msauthor": "vinitra.swamy" "msauthor": "vinitra.swamy",
"star_tag": [],
"tags": [
"ONNX Model Zoo"
],
"task": "Facial Expression Recognition"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -306,7 +306,7 @@
"source": [ "source": [
"### Write Environment File\n", "### Write Environment File\n",
"\n", "\n",
"This step creates a YAML environment file that specifies which dependencies we would like to see in our Linux Virtual Machine." "This step creates a YAML environment file that specifies which dependencies we would like to see in our Linux Virtual Machine. Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -317,7 +317,7 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime\", \"azureml-core\"])\n", "myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime\", \"azureml-core\", \"azureml-defaults\"])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -337,11 +337,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" extra_docker_file_steps = \"Dockerfile\",\n", "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
" conda_file=\"myenv.yml\")"
] ]
}, },
{ {
@@ -378,8 +378,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import Webservice\n",
"\n",
"aci_service_name = 'onnx-demo-mnist'\n", "aci_service_name = 'onnx-demo-mnist'\n",
"print(\"Service\", aci_service_name)\n", "print(\"Service\", aci_service_name)\n",
"aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n", "aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)\n",
@@ -735,7 +733,7 @@
"source": [ "source": [
"# remember to delete your service after you are done using it!\n", "# remember to delete your service after you are done using it!\n",
"\n", "\n",
"# aci_service.delete()" "aci_service.delete()"
] ]
}, },
{ {
@@ -763,6 +761,22 @@
"name": "viswamy" "name": "viswamy"
} }
], ],
"category": "deployment",
"compute": [
"Local"
],
"datasets": [
"MNIST"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"ONNX"
],
"friendly_name": "Deploy MNIST digit recognition with ONNX Runtime",
"index_order": 1,
"kernelspec": { "kernelspec": {
"display_name": "Python 3.6", "display_name": "Python 3.6",
"language": "python", "language": "python",
@@ -780,7 +794,12 @@
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5"
}, },
"msauthor": "vinitra.swamy" "msauthor": "vinitra.swamy",
"star_tag": [],
"tags": [
"ONNX Model Zoo"
],
"task": "Image Classification"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -241,7 +241,8 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\",\"onnxruntime\",\"azureml-core\"])\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\", \"onnxruntime\", \"azureml-core\", \"azureml-defaults\"])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -251,7 +252,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Create the inference configuration object" "Create the inference configuration object. Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -261,11 +262,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" conda_file=\"myenv.yml\",\n", "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
" extra_docker_file_steps = \"Dockerfile\")"
] ]
}, },
{ {
@@ -302,7 +303,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import Webservice\n",
"from random import randint\n", "from random import randint\n",
"\n", "\n",
"aci_service_name = 'onnx-demo-resnet50'+str(randint(0,100))\n", "aci_service_name = 'onnx-demo-resnet50'+str(randint(0,100))\n",
@@ -362,7 +362,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"#aci_service.delete()" "aci_service.delete()"
] ]
} }
], ],
@@ -372,6 +372,22 @@
"name": "viswamy" "name": "viswamy"
} }
], ],
"category": "deployment",
"compute": [
"Local"
],
"datasets": [
"ImageNet"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"ONNX"
],
"friendly_name": "Deploy ResNet50 with ONNX Runtime",
"index_order": 4,
"kernelspec": { "kernelspec": {
"display_name": "Python 3.6", "display_name": "Python 3.6",
"language": "python", "language": "python",
@@ -388,7 +404,12 @@
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.5" "version": "3.6.5"
} },
"star_tag": [],
"tags": [
"ONNX Model Zoo"
],
"task": "Image Classification"
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2

View File

@@ -405,7 +405,7 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"### Create inference configuration\n", "### Create inference configuration\n",
"First we create a YAML file that specifies which dependencies we would like to see in our container." "First we create a YAML file that specifies which dependencies we would like to see in our container. Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -416,7 +416,7 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"myenv = CondaDependencies.create(pip_packages=[\"numpy\",\"onnxruntime\",\"azureml-core\"])\n", "myenv = CondaDependencies.create(pip_packages=[\"numpy\",\"onnxruntime\",\"azureml-core\", \"azureml-defaults\"])\n",
"\n", "\n",
"with open(\"myenv.yml\",\"w\") as f:\n", "with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())" " f.write(myenv.serialize_to_string())"
@@ -436,11 +436,11 @@
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.environment import Environment\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "\n",
" entry_script=\"score.py\",\n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" conda_file=\"myenv.yml\",\n", "inference_config = InferenceConfig(entry_script=\"score.py\", environment=myenv)"
" extra_docker_file_steps = \"Dockerfile\")"
] ]
}, },
{ {
@@ -477,7 +477,6 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.core.webservice import Webservice\n",
"from azureml.core.model import Model\n", "from azureml.core.model import Model\n",
"from random import randint\n", "from random import randint\n",
"\n", "\n",
@@ -538,7 +537,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"#aci_service.delete()" "aci_service.delete()"
] ]
} }
], ],
@@ -548,6 +547,22 @@
"name": "viswamy" "name": "viswamy"
} }
], ],
"category": "deployment",
"compute": [
"AML Compute"
],
"datasets": [
"MNIST"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"ONNX"
],
"friendly_name": "Train MNIST in PyTorch, convert, and deploy with ONNX Runtime",
"index_order": 3,
"kernelspec": { "kernelspec": {
"display_name": "Python 3.6", "display_name": "Python 3.6",
"language": "python", "language": "python",
@@ -565,6 +580,11 @@
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.6" "version": "3.6.6"
}, },
"star_tag": [],
"tags": [
"ONNX Converter"
],
"task": "Image Classification",
"widgets": { "widgets": {
"application/vnd.jupyter.widget-state+json": { "application/vnd.jupyter.widget-state+json": {
"state": { "state": {

View File

@@ -318,7 +318,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"sample-deploy-to-aks"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Set the web service configuration (using default here)\n", "# Set the web service configuration (using default here)\n",
@@ -331,7 +335,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"tags": [
"sample-deploy-to-aks"
]
},
"outputs": [], "outputs": [],
"source": [ "source": [
"%%time\n", "%%time\n",

View File

@@ -1,454 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/deployment/register-model-create-image-deploy-service/register-model-create-image-deploy-service.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Register Model, Create Image and Deploy Service\n",
"\n",
"This example shows how to deploy a web service in step-by-step fashion:\n",
"\n",
" 1. Register model\n",
" 2. Query versions of models and select one to deploy\n",
" 3. Create Docker image\n",
" 4. Query versions of images\n",
" 5. Deploy the image as web service\n",
" \n",
"**IMPORTANT**:\n",
" * This notebook requires you to first complete [train-within-notebook](../../training/train-within-notebook/train-within-notebook.ipynb) example\n",
" \n",
"The train-within-notebook example taught you how to deploy a web service directly from model in one step. This Notebook shows a more advanced approach that gives you more control over model versions and Docker image versions. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prerequisites\n",
"If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, make sure you go through the [configuration](../../../configuration.ipynb) Notebook first if you haven't."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Check core SDK version number\n",
"import azureml.core\n",
"\n",
"print(\"SDK version:\", azureml.core.VERSION)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Initialize Workspace\n",
"\n",
"Initialize a workspace object from persisted configuration."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create workspace"
]
},
"outputs": [],
"source": [
"from azureml.core import Workspace\n",
"\n",
"ws = Workspace.from_config()\n",
"print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep = '\\n')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Register Model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can add tags and descriptions to your models. Note you need to have a `sklearn_linreg_model.pkl` file in the current directory. This file is generated by the 01 notebook. The below call registers that file as a model with the same name `sklearn_linreg_model.pkl` in the workspace.\n",
"\n",
"Using tags, you can track useful information such as the name and version of the machine learning library used to train the model. Note that tags must be alphanumeric."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"register model from file"
]
},
"outputs": [],
"source": [
"from azureml.core.model import Model\n",
"import sklearn\n",
"\n",
"library_version = \"sklearn\"+sklearn.__version__.replace(\".\",\"x\")\n",
"\n",
"model = Model.register(model_path = \"sklearn_regression_model.pkl\",\n",
" model_name = \"sklearn_regression_model.pkl\",\n",
" tags = {'area': \"diabetes\", 'type': \"regression\", 'version': library_version},\n",
" description = \"Ridge regression model to predict diabetes\",\n",
" workspace = ws)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can explore the registered models within your workspace and query by tag. Models are versioned. If you call the register_model command many times with same model name, you will get multiple versions of the model with increasing version numbers."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"register model from file"
]
},
"outputs": [],
"source": [
"regression_models = Model.list(workspace=ws, tags=['area'])\n",
"for m in regression_models:\n",
" print(\"Name:\", m.name,\"\\tVersion:\", m.version, \"\\tDescription:\", m.description, m.tags)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can pick a specific model to deploy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(model.name, model.description, model.version, sep = '\\t')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create Docker Image"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Show `score.py`. Note that the `sklearn_regression_model.pkl` in the `get_model_path` call is referring to a model named `sklearn_linreg_model.pkl` registered under the workspace. It is NOT referenceing the local file."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile score.py\n",
"import os\n",
"import pickle\n",
"import json\n",
"import numpy\n",
"from sklearn.externals import joblib\n",
"from sklearn.linear_model import Ridge\n",
"\n",
"def init():\n",
" global model\n",
" # AZUREML_MODEL_DIR is an environment variable created during deployment.\n",
" # It is the path to the model folder (./azureml-models/$MODEL_NAME/$VERSION)\n",
" # For multiple models, it points to the folder containing all deployed models (./azureml-models)\n",
" model_path = os.path.join(os.getenv('AZUREML_MODEL_DIR'), 'sklearn_regression_model.pkl')\n",
" # deserialize the model file back into a sklearn model\n",
" model = joblib.load(model_path)\n",
"\n",
"# note you can pass in multiple rows for scoring\n",
"def run(raw_data):\n",
" try:\n",
" data = json.loads(raw_data)['data']\n",
" data = numpy.array(data)\n",
" result = model.predict(data)\n",
" # you can return any datatype as long as it is JSON-serializable\n",
" return result.tolist()\n",
" except Exception as e:\n",
" error = str(e)\n",
" return error"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core.conda_dependencies import CondaDependencies \n",
"\n",
"myenv = CondaDependencies.create(conda_packages=['numpy','scikit-learn'])\n",
"\n",
"with open(\"myenv.yml\",\"w\") as f:\n",
" f.write(myenv.serialize_to_string())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that following command can take few minutes. \n",
"\n",
"You can add tags and descriptions to images. Also, an image can contain multiple models."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create image"
]
},
"outputs": [],
"source": [
"from azureml.core.image import Image, ContainerImage\n",
"\n",
"image_config = ContainerImage.image_configuration(runtime= \"python\",\n",
" execution_script=\"score.py\",\n",
" conda_file=\"myenv.yml\",\n",
" tags = {'area': \"diabetes\", 'type': \"regression\"},\n",
" description = \"Image with ridge regression model\")\n",
"\n",
"image = Image.create(name = \"myimage1\",\n",
" # this is the model object. note you can pass in 0-n models via this list-type parameter\n",
" # in case you need to reference multiple models, or none at all, in your scoring script.\n",
" models = [model],\n",
" image_config = image_config, \n",
" workspace = ws)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create image"
]
},
"outputs": [],
"source": [
"image.wait_for_creation(show_output = True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Use a custom Docker image\n",
"\n",
"You can also specify a custom Docker image to be used as base image if you don't want to use the default base image provided by Azure ML. Please make sure the custom Docker image has Ubuntu >= 16.04, Conda >= 4.5.\\* and Python(3.5.\\* or 3.6.\\*).\n",
"\n",
"Only Supported for `ContainerImage`(from azureml.core.image) with `python` runtime.\n",
"```python\n",
"# use an image available in public Container Registry without authentication\n",
"image_config.base_image = \"mcr.microsoft.com/azureml/o16n-sample-user-base/ubuntu-miniconda\"\n",
"\n",
"# or, use an image available in a private Container Registry\n",
"image_config.base_image = \"myregistry.azurecr.io/mycustomimage:1.0\"\n",
"image_config.base_image_registry.address = \"myregistry.azurecr.io\"\n",
"image_config.base_image_registry.username = \"username\"\n",
"image_config.base_image_registry.password = \"password\"\n",
"\n",
"# or, use an image built during training.\n",
"image_config.base_image = run.properties[\"AzureML.DerivedImageName\"]\n",
"```\n",
"You can get the address of training image from the properties of a Run object. Only new runs submitted with azureml-sdk>=1.0.22 to AMLCompute targets will have the 'AzureML.DerivedImageName' property. Instructions on how to get a Run can be found in [manage-runs](../../training/manage-runs/manage-runs.ipynb). \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"List images by tag and find out the detailed build log for debugging."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create image"
]
},
"outputs": [],
"source": [
"for i in Image.list(workspace = ws,tags = [\"area\"]):\n",
" print('{}(v.{} [{}]) stored at {} with build log {}'.format(i.name, i.version, i.creation_state, i.image_location, i.image_build_log_uri))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy image as web service on Azure Container Instance\n",
"\n",
"Note that the service creation can take few minutes."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"deploy service",
"aci"
]
},
"outputs": [],
"source": [
"from azureml.core.webservice import AciWebservice\n",
"\n",
"aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, \n",
" memory_gb = 1, \n",
" tags = {'area': \"diabetes\", 'type': \"regression\"}, \n",
" description = 'Predict diabetes using regression model')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"deploy service",
"aci"
]
},
"outputs": [],
"source": [
"from azureml.core.webservice import Webservice\n",
"\n",
"aci_service_name = 'my-aci-service-2'\n",
"print(aci_service_name)\n",
"aci_service = Webservice.deploy_from_image(deployment_config = aciconfig,\n",
" image = image,\n",
" name = aci_service_name,\n",
" workspace = ws)\n",
"aci_service.wait_for_deployment(True)\n",
"print(aci_service.state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test web service"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Call the web service with some dummy input data to get a prediction."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"deploy service",
"aci"
]
},
"outputs": [],
"source": [
"import json\n",
"\n",
"test_sample = json.dumps({'data': [\n",
" [1,2,3,4,5,6,7,8,9,10], \n",
" [10,9,8,7,6,5,4,3,2,1]\n",
"]})\n",
"test_sample = bytes(test_sample,encoding = 'utf8')\n",
"\n",
"prediction = aci_service.run(input_data=test_sample)\n",
"print(prediction)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Delete ACI to clean up"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"deploy service",
"aci"
]
},
"outputs": [],
"source": [
"aci_service.delete()"
]
}
],
"metadata": {
"authors": [
{
"name": "aashishb"
}
],
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -1,8 +0,0 @@
name: register-model-create-image-deploy-service
dependencies:
- pip:
- azureml-sdk
- matplotlib
- tqdm
- scipy
- sklearn

View File

@@ -0,0 +1 @@
{"class":"org.apache.spark.ml.classification.LogisticRegressionModel","timestamp":1570147252329,"sparkVersion":"2.4.0","uid":"LogisticRegression_5df3978caaf3","paramMap":{"regParam":0.01},"defaultParamMap":{"aggregationDepth":2,"threshold":0.5,"rawPredictionCol":"rawPrediction","featuresCol":"features","labelCol":"label","predictionCol":"prediction","family":"auto","regParam":0.0,"tol":1.0E-6,"probabilityCol":"probability","standardization":true,"elasticNetParam":0.0,"maxIter":100,"fitIntercept":true}}

View File

@@ -0,0 +1,343 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/deployment/deploy-to-cloud/model-register-and-deploy.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Register Spark Model and deploy as Webservice\n",
"\n",
"This example shows how to deploy a Webservice in step-by-step fashion:\n",
"\n",
" 1. Register Spark Model\n",
" 2. Deploy Spark Model as Webservice"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prerequisites\n",
"If you are using an Azure Machine Learning Notebook VM, you are all set. Otherwise, make sure you go through the [configuration](../../../configuration.ipynb) Notebook first if you haven't."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Check core SDK version number\n",
"import azureml.core\n",
"\n",
"print(\"SDK version:\", azureml.core.VERSION)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Initialize Workspace\n",
"\n",
"Initialize a workspace object from persisted configuration."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create workspace"
]
},
"outputs": [],
"source": [
"from azureml.core import Workspace\n",
"\n",
"ws = Workspace.from_config()\n",
"print(ws.name, ws.resource_group, ws.location, ws.subscription_id, sep='\\n')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Register Model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can add tags and descriptions to your Models. Note you need to have a `iris.model` file in the current directory. This model file is generated using [train in spark](../training/train-in-spark/train-in-spark.ipynb) notebook. The below call registers that file as a Model with the same name `iris.model` in the workspace.\n",
"\n",
"Using tags, you can track useful information such as the name and version of the machine learning library used to train the model. Note that tags must be alphanumeric."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"register model from file"
]
},
"outputs": [],
"source": [
"from azureml.core.model import Model\n",
"\n",
"model = Model.register(model_path=\"iris.model\",\n",
" model_name=\"iris.model\",\n",
" tags={'type': \"regression\"},\n",
" description=\"Logistic regression model to predict iris species\",\n",
" workspace=ws)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fetch Environment"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can now create and/or use an Environment object when deploying a Webservice. The Environment can have been previously registered with your Workspace, or it will be registered with it as a part of the Webservice deployment.\n",
"\n",
"In this notebook, we will be using 'AzureML-PySpark-MmlSpark-0.15', a curated environment.\n",
"\n",
"More information can be found in our [using environments notebook](../training/using-environments/using-environments.ipynb)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.core import Environment\n",
"\n",
"env = Environment.get(ws, name='AzureML-PySpark-MmlSpark-0.15')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create Inference Configuration\n",
"\n",
"There is now support for a source directory, you can upload an entire folder from your local machine as dependencies for the Webservice.\n",
"Note: in that case, your entry_script is relative path to the source_directory path.\n",
"\n",
"Sample code for using a source directory:\n",
"\n",
"```python\n",
"inference_config = InferenceConfig(source_directory=\"C:/abc\",\n",
" entry_script=\"x/y/score.py\",\n",
" environment=environment)\n",
"```\n",
"\n",
" - source_directory = holds source path as string, this entire folder gets added in image so its really easy to access any files within this folder or subfolder\n",
" - entry_script = contains logic specific to initializing your model and running predictions\n",
" - environment = An environment object to use for the deployment. Doesn't have to be registered"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"create image"
]
},
"outputs": [],
"source": [
"from azureml.core.model import InferenceConfig\n",
"\n",
"inference_config = InferenceConfig(entry_script=\"score.py\", environment=env)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Deploy Model as Webservice on Azure Container Instance\n",
"\n",
"Note that the service creation can take few minutes."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"azuremlexception-remarks-sample"
]
},
"outputs": [],
"source": [
"from azureml.core.webservice import AciWebservice, Webservice\n",
"from azureml.exceptions import WebserviceException\n",
"\n",
"deployment_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=1)\n",
"aci_service_name = 'aciservice1'\n",
"\n",
"try:\n",
" # if you want to get existing service below is the command\n",
" # since aci name needs to be unique in subscription deleting existing aci if any\n",
" # we use aci_service_name to create azure aci\n",
" service = Webservice(ws, name=aci_service_name)\n",
" if service:\n",
" service.delete()\n",
"except WebserviceException as e:\n",
" print()\n",
"\n",
"service = Model.deploy(ws, aci_service_name, [model], inference_config, deployment_config)\n",
"\n",
"service.wait_for_deployment(True)\n",
"print(service.state)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Test web service"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"test_sample = json.dumps({'features':{'type':1,'values':[4.3,3.0,1.1,0.1]},'label':2.0})\n",
"\n",
"test_sample_encoded = bytes(test_sample, encoding='utf8')\n",
"prediction = service.run(input_data=test_sample_encoded)\n",
"print(prediction)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Delete ACI to clean up"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"tags": [
"deploy service",
"aci"
]
},
"outputs": [],
"source": [
"service.delete()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Model Profiling\n",
"\n",
"You can also take advantage of the profiling feature to estimate CPU and memory requirements for models.\n",
"\n",
"```python\n",
"profile = Model.profile(ws, \"profilename\", [model], inference_config, test_sample)\n",
"profile.wait_for_profiling(True)\n",
"profiling_results = profile.get_results()\n",
"print(profiling_results)\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Model Packaging\n",
"\n",
"If you want to build a Docker image that encapsulates your model and its dependencies, you can use the model packaging option. The output image will be pushed to your workspace's ACR.\n",
"\n",
"You must include an Environment object in your inference configuration to use `Model.package()`.\n",
"\n",
"```python\n",
"package = Model.package(ws, [model], inference_config)\n",
"package.wait_for_creation(show_output=True) # Or show_output=False to hide the Docker build logs.\n",
"package.pull()\n",
"```\n",
"\n",
"Instead of a fully-built image, you can also generate a Dockerfile and download all the assets needed to build an image on top of your Environment.\n",
"\n",
"```python\n",
"package = Model.package(ws, [model], inference_config, generate_dockerfile=True)\n",
"package.wait_for_creation(show_output=True)\n",
"package.save(\"./local_context_dir\")\n",
"```"
]
}
],
"metadata": {
"authors": [
{
"name": "aashishb"
}
],
"category": "deployment",
"compute": [
"None"
],
"datasets": [
"Iris"
],
"deployment": [
"Azure Container Instance"
],
"exclude_from_index": false,
"framework": [
"PySpark"
],
"friendly_name": "Register Spark model and deploy as webservice",
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -0,0 +1,4 @@
name: model-register-and-deploy-spark
dependencies:
- pip:
- azureml-sdk

View File

@@ -0,0 +1,37 @@
import traceback
from pyspark.ml.linalg import VectorUDT
from azureml.core.model import Model
from pyspark.ml.classification import LogisticRegressionModel
from pyspark.sql.types import StructType, StructField
from pyspark.sql.types import DoubleType
from pyspark.sql import SQLContext
from pyspark import SparkContext
sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)
spark = sqlContext.sparkSession
input_schema = StructType([StructField("features", VectorUDT()), StructField("label", DoubleType())])
reader = spark.read
reader.schema(input_schema)
def init():
global model
# note here "iris.model" is the name of the model registered under the workspace
# this call should return the path to the model.pkl file on the local disk.
model_path = Model.get_model_path('iris.model')
# Load the model file back into a LogisticRegression model
model = LogisticRegressionModel.load(model_path)
def run(data):
try:
input_df = reader.json(sc.parallelize([data]))
result = model.transform(input_df)
# you can return any datatype as long as it is JSON-serializable
return result.collect()[0]['prediction']
except Exception as e:
traceback.print_exc()
error = str(e)
return error

View File

@@ -1,11 +1,14 @@
## Using explain model APIs ## Using AzureML Interpret APIs
<a name="samples"></a> <a name="samples"></a>
# Explain Model SDK Sample Notebooks # AzureML Interpret SDK Sample Notebooks
Follow these sample notebooks to learn: You can run the interpret-community SDK to explain models locally without Azure.
For notebooks on the local experience, please see:
https://github.com/interpretml/interpret-community/tree/master/notebooks
1. [Explain tabular data locally](tabular-data): Basic examples of explaining model trained on tabular data. Follow these sample notebooks to learn about the model interpretability integration with Azure:
2. [Explain on remote AMLCompute](azure-integration/remote-explanation): Explain a model on a remote AMLCompute target.
3. [Explain tabular data with Run History](azure-integration/run-history): Explain a model with Run History. 1. [Explain on remote AMLCompute](azure-integration/remote-explanation): Explain a model on a remote AMLCompute target.
4. [Operationalize model explanation](azure-integration/scoring-time): Operationalize model explanation as a web service. 2. [Explain tabular data with Run History](azure-integration/run-history): Explain a model with Run History.
3. [Operationalize model explanation](azure-integration/scoring-time): Operationalize model explanation as a web service.

View File

@@ -669,7 +669,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard" "from interpret_community.widget import ExplanationDashboard"
] ]
}, },
{ {
@@ -678,7 +678,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"ExplanationDashboard(global_explanation, original_model, x_test)" "ExplanationDashboard(global_explanation, original_model, datasetX=x_test)"
] ]
}, },
{ {

View File

@@ -61,4 +61,4 @@ global_explanation = tabular_explainer.explain_global(X_test)
# Uploading model explanation data for storage or visualization in webUX # Uploading model explanation data for storage or visualization in webUX
# The explanation can then be downloaded on any compute # The explanation can then be downloaded on any compute
comment = 'Global explanation on regression model trained on boston dataset' comment = 'Global explanation on regression model trained on boston dataset'
client.upload_model_explanation(global_explanation, comment=comment) client.upload_model_explanation(global_explanation, comment=comment, model_id=original_model.id)

View File

@@ -564,7 +564,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard" "from interpret_community.widget import ExplanationDashboard"
] ]
}, },
{ {
@@ -573,7 +573,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"ExplanationDashboard(downloaded_global_explanation, model, x_test)" "ExplanationDashboard(downloaded_global_explanation, model, datasetX=x_test)"
] ]
}, },
{ {

View File

@@ -290,7 +290,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard" "from interpret_community.widget import ExplanationDashboard"
] ]
}, },
{ {
@@ -299,7 +299,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"ExplanationDashboard(global_explanation, clf, x_test)" "ExplanationDashboard(global_explanation, clf, datasetX=x_test)"
] ]
}, },
{ {
@@ -308,7 +308,9 @@
"source": [ "source": [
"## Deploy \n", "## Deploy \n",
"\n", "\n",
"Deploy Model and ScoringExplainer" "Deploy Model and ScoringExplainer.\n",
"\n",
"Please note that you must indicate azureml-defaults with verion >= 1.0.45 as a pip dependency, because it contains the functionality needed to host the model as a web service."
] ]
}, },
{ {
@@ -319,7 +321,7 @@
"source": [ "source": [
"from azureml.core.conda_dependencies import CondaDependencies \n", "from azureml.core.conda_dependencies import CondaDependencies \n",
"\n", "\n",
"# WARNING: to install this, g++ needs to be available on the Docker image and is not by default (look at the next cell)\n", "# azureml-defaults is required to host the model as a web service.\n",
"azureml_pip_packages = [\n", "azureml_pip_packages = [\n",
" 'azureml-defaults', 'azureml-contrib-interpret', 'azureml-core', 'azureml-telemetry',\n", " 'azureml-defaults', 'azureml-contrib-interpret', 'azureml-core', 'azureml-telemetry',\n",
" 'azureml-interpret'\n", " 'azureml-interpret'\n",
@@ -338,16 +340,6 @@
" print(f.read())" " print(f.read())"
] ]
}, },
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%writefile dockerfile\n",
"RUN apt-get update && apt-get install -y g++ "
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
@@ -369,6 +361,8 @@
"from azureml.core.model import InferenceConfig\n", "from azureml.core.model import InferenceConfig\n",
"from azureml.core.webservice import AciWebservice\n", "from azureml.core.webservice import AciWebservice\n",
"from azureml.core.model import Model\n", "from azureml.core.model import Model\n",
"from azureml.core.environment import Environment\n",
"\n",
"\n", "\n",
"aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n", "aciconfig = AciWebservice.deploy_configuration(cpu_cores=1, \n",
" memory_gb=1, \n", " memory_gb=1, \n",
@@ -376,10 +370,8 @@
" \"method\" : \"local_explanation\"}, \n", " \"method\" : \"local_explanation\"}, \n",
" description='Get local explanations for IBM Employee Attrition data')\n", " description='Get local explanations for IBM Employee Attrition data')\n",
"\n", "\n",
"inference_config = InferenceConfig(runtime= \"python\", \n", "myenv = Environment.from_conda_specification(name=\"myenv\", file_path=\"myenv.yml\")\n",
" entry_script=\"score_local_explain.py\",\n", "inference_config = InferenceConfig(entry_script=\"score_local_explain.py\", environment=myenv)\n",
" conda_file=\"myenv.yml\",\n",
" extra_docker_file_steps=\"dockerfile\")\n",
"\n", "\n",
"# Use configs and models generated above\n", "# Use configs and models generated above\n",
"service = Model.deploy(ws, 'model-scoring-deploy-local', [scoring_explainer_model, original_model], inference_config, aciconfig)\n", "service = Model.deploy(ws, 'model-scoring-deploy-local', [scoring_explainer_model, original_model], inference_config, aciconfig)\n",

View File

@@ -355,7 +355,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard" "from interpret_community.widget import ExplanationDashboard"
] ]
}, },
{ {
@@ -364,7 +364,7 @@
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
"ExplanationDashboard(global_explanation, original_svm_model, x_test)" "ExplanationDashboard(global_explanation, original_svm_model, datasetX=x_test)"
] ]
}, },
{ {

View File

@@ -116,7 +116,7 @@ global_explanation = tabular_explainer.explain_global(x_test)
# uploading model explanation data for storage or visualization # uploading model explanation data for storage or visualization
comment = 'Global explanation on classification model trained on IBM employee attrition dataset' comment = 'Global explanation on classification model trained on IBM employee attrition dataset'
client.upload_model_explanation(global_explanation, comment=comment) client.upload_model_explanation(global_explanation, comment=comment, model_id=original_model.id)
# also create a lightweight explainer for scoring time # also create a lightweight explainer for scoring time
scoring_explainer = LinearScoringExplainer(tabular_explainer) scoring_explainer = LinearScoringExplainer(tabular_explainer)

View File

@@ -1,509 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/explain-model/tabular-data/advanced-feature-transformations-explain-local.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Explain binary classification model predictions with raw feature transformations\n",
"_**This notebook showcases how to use the Azure Machine Learning Interpretability SDK to explain and visualize a binary classification model that uses advanced many to one or many to many feature transformations.**_\n",
"\n",
"\n",
"\n",
"## Table of Contents\n",
"\n",
"1. [Introduction](#Introduction)\n",
"1. [Setup](#Setup)\n",
"1. [Run model explainer locally at training time](#Explain)\n",
" 1. Apply feature transformations\n",
" 1. Train a binary classification model\n",
" 1. Explain the model on raw features\n",
" 1. Generate global explanations\n",
" 1. Generate local explanations\n",
"1. [Visualize results](#Visualize)\n",
"1. [Next steps](#Next)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"\n",
"This notebook illustrates creating explanations for a binary classification model, Titanic passenger data classification, that uses many to one and many to many feature transformations from raw data to engineered features. For the many to one transformation, we sum 2 features `age` and `fare`. For many to many transformations two features are computed: one that is product of `age` and `fare` and another that is square of this product. Our tabular data explainer is then used to get the explanation object with the flag `allow_all_transformations` passed. The object is then used to get raw feature importances.\n",
"\n",
"\n",
"We will showcase raw feature transformations with three tabular data explainers: TabularExplainer (SHAP), MimicExplainer (global surrogate), and PFIExplainer.\n",
"\n",
"| ![Interpretability Toolkit Architecture](./img/interpretability-architecture.png) |\n",
"|:--:|\n",
"| *Interpretability Toolkit Architecture* |\n",
"\n",
"Problem: Titanic passenger data classification with scikit-learn (run model explainer locally)\n",
"\n",
"1. Transform raw features to engineered features\n",
"2. Train a Logistic Regression model using Scikit-learn\n",
"3. Run 'explain_model' globally and locally with full dataset in local mode, which doesn't contact any Azure services.\n",
"4. Visualize the global and local explanations with the visualization dashboard.\n",
"---\n",
"\n",
"Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n",
"If you are using Jupyter Labs run the following command:\n",
"```\n",
"(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n",
"```\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explain\n",
"\n",
"### Run model explainer locally at training time"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.pipeline import Pipeline\n",
"from sklearn.impute import SimpleImputer\n",
"from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
"from sklearn.linear_model import LogisticRegression\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# Explainers:\n",
"# 1. SHAP Tabular Explainer\n",
"from interpret.ext.blackbox import TabularExplainer\n",
"\n",
"# OR\n",
"\n",
"# 2. Mimic Explainer\n",
"from interpret.ext.blackbox import MimicExplainer\n",
"# You can use one of the following four interpretable models as a global surrogate to the black box model\n",
"from interpret.ext.glassbox import LGBMExplainableModel\n",
"from interpret.ext.glassbox import LinearExplainableModel\n",
"from interpret.ext.glassbox import SGDExplainableModel\n",
"from interpret.ext.glassbox import DecisionTreeExplainableModel\n",
"\n",
"# OR\n",
"\n",
"# 3. PFI Explainer\n",
"from interpret.ext.blackbox import PFIExplainer "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load the Titanic passenger data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"titanic_url = ('https://raw.githubusercontent.com/amueller/'\n",
" 'scipy-2017-sklearn/091d371/notebooks/datasets/titanic3.csv')\n",
"data = pd.read_csv(titanic_url)\n",
"# fill missing values\n",
"data = data.fillna(method=\"ffill\")\n",
"data = data.fillna(method=\"bfill\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similar to example [here](https://scikit-learn.org/stable/auto_examples/compose/plot_column_transformer_mixed_types.html#sphx-glr-auto-examples-compose-plot-column-transformer-mixed-types-py), use a subset of columns"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"\n",
"numeric_features = ['age', 'fare']\n",
"categorical_features = ['embarked', 'sex', 'pclass']\n",
"\n",
"y = data['survived'].values\n",
"X = data[categorical_features + numeric_features]\n",
"\n",
"# Split data into train and test\n",
"x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Transform raw features"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can explain raw features by either using a `sklearn.compose.ColumnTransformer` or a list of fitted transformer tuples. The cell below uses `sklearn.compose.ColumnTransformer`. In case you want to run the example with the list of fitted transformer tuples, comment the cell below and uncomment the cell that follows after. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# We add many to one and many to many transformations for illustration purposes.\n",
"# The support for raw feature explanations with many to one and many to many transformations are only supported \n",
"# When allow_all_transformations is set to True on explainer creation\n",
"from sklearn.preprocessing import FunctionTransformer\n",
"many_to_one_transformer = FunctionTransformer(lambda x: x.sum(axis=1).reshape(-1, 1))\n",
"many_to_many_transformer = FunctionTransformer(lambda x: np.hstack(\n",
" (np.prod(x, axis=1).reshape(-1, 1), (np.prod(x, axis=1)**2).reshape(-1, 1))\n",
"))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.compose import ColumnTransformer\n",
"\n",
"transformations = ColumnTransformer([\n",
" (\"age_fare_1\", Pipeline(steps=[\n",
" ('imputer', SimpleImputer(strategy='median')),\n",
" ('scaler', StandardScaler())\n",
" ]), [\"age\", \"fare\"]),\n",
" (\"age_fare_2\", many_to_one_transformer, [\"age\", \"fare\"]),\n",
" (\"age_fare_3\", many_to_many_transformer, [\"age\", \"fare\"]),\n",
" (\"embarked\", Pipeline(steps=[\n",
" (\"imputer\", SimpleImputer(strategy='constant', fill_value='missing')), \n",
" (\"encoder\", OneHotEncoder(sparse=False))]), [\"embarked\"]),\n",
" (\"sex_pclass\", OneHotEncoder(sparse=False), [\"sex\", \"pclass\"]) \n",
"])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"'''\n",
"# Uncomment below if sklearn-pandas is not installed\n",
"#!pip install sklearn-pandas\n",
"from sklearn_pandas import DataFrameMapper\n",
"\n",
"# Impute, standardize the numeric features and one-hot encode the categorical features. \n",
"\n",
"transformations = [\n",
" ([\"age\", \"fare\"], Pipeline(steps=[\n",
" ('imputer', SimpleImputer(strategy='median')),\n",
" ('scaler', StandardScaler())\n",
" ])),\n",
" ([\"age\", \"fare\"], many_to_one_transformer),\n",
" ([\"age\", \"fare\"], many_to_many_transformer),\n",
" ([\"embarked\"], Pipeline(steps=[\n",
" (\"imputer\", SimpleImputer(strategy='constant', fill_value='missing')), \n",
" (\"encoder\", OneHotEncoder(sparse=False))])),\n",
" ([\"sex\", \"pclass\"], OneHotEncoder(sparse=False)) \n",
"]\n",
"\n",
"\n",
"# Append classifier to preprocessing pipeline.\n",
"# Now we have a full prediction pipeline.\n",
"clf = Pipeline(steps=[('preprocessor', DataFrameMapper(transformations)),\n",
" ('classifier', LogisticRegression(solver='lbfgs'))])\n",
"'''"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train a Logistic Regression model, which you want to explain"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Append classifier to preprocessing pipeline.\n",
"# Now we have a full prediction pipeline.\n",
"clf = Pipeline(steps=[('preprocessor', transformations),\n",
" ('classifier', LogisticRegression(solver='lbfgs'))])\n",
"model = clf.fit(x_train, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Explain predictions on your local machine"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 1. Using SHAP TabularExplainer\n",
"# When the last parameter allow_all_transformations is passed, we handle many to one and many to many transformations to \n",
"# generate approximations to raw feature importances. When this flag is passed, for transformations not recognized as one to \n",
"# many, we distribute feature importances evenly to raw features generating them.\n",
"# clf.steps[-1][1] returns the trained classification model\n",
"explainer = TabularExplainer(clf.steps[-1][1], \n",
" initialization_examples=x_train, \n",
" features=x_train.columns, \n",
" transformations=transformations, \n",
" allow_all_transformations=True)\n",
"\n",
"\n",
"\n",
"\n",
"# 2. Using MimicExplainer\n",
"# augment_data is optional and if true, oversamples the initialization examples to improve surrogate model accuracy to fit original model. Useful for high-dimensional data where the number of rows is less than the number of columns. \n",
"# max_num_of_augmentations is optional and defines max number of times we can increase the input data size.\n",
"# LGBMExplainableModel can be replaced with LinearExplainableModel, SGDExplainableModel, or DecisionTreeExplainableModel\n",
"# explainer = MimicExplainer(clf.steps[-1][1], \n",
"# x_train, \n",
"# LGBMExplainableModel, \n",
"# augment_data=True, \n",
"# max_num_of_augmentations=10, \n",
"# features=x_train.columns, \n",
"# transformations=transformations, \n",
"# allow_all_transformations=True)\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"# 3. Using PFIExplainer\n",
"\n",
"# Use the parameter \"metric\" to pass a metric name or function to evaluate the permutation. \n",
"# Note that if a metric function is provided a higher value must be better.\n",
"# Otherwise, take the negative of the function or set the parameter \"is_error_metric\" to True.\n",
"# Default metrics: \n",
"# F1 Score for binary classification, F1 Score with micro average for multiclass classification and\n",
"# Mean absolute error for regression\n",
"\n",
"\n",
"# explainer = PFIExplainer(clf.steps[-1][1], \n",
"# features=x_train.columns, \n",
"# transformations=transformations)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate global explanations\n",
"Explain overall model predictions (global explanation)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Passing in test dataset for evaluation examples - note it must be a representative sample of the original data\n",
"# x_train can be passed as well, but with more examples explanations will take longer although they may be more accurate\n",
"\n",
"global_explanation = explainer.explain_global(x_test)\n",
"\n",
"# Note: if you used the PFIExplainer in the previous step, use the next line of code instead\n",
"# global_explanation = explainer.explain_global(x_test, true_labels=y_test)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Sorted SHAP values\n",
"print('ranked global importance values: {}'.format(global_explanation.get_ranked_global_values()))\n",
"# Corresponding feature names\n",
"print('ranked global importance names: {}'.format(global_explanation.get_ranked_global_names()))\n",
"# Feature ranks (based on original order of features)\n",
"print('global importance rank: {}'.format(global_explanation.global_importance_rank))\n",
"# Per class feature names\n",
"print('ranked per class feature names: {}'.format(global_explanation.get_ranked_per_class_names()))\n",
"# Per class feature importance values\n",
"print('ranked per class feature values: {}'.format(global_explanation.get_ranked_per_class_values()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Print out a dictionary that holds the sorted feature importance names and values\n",
"print('global importance rank: {}'.format(global_explanation.get_feature_importance_dict()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Explain overall model predictions as a collection of local (instance-level) explanations"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# feature shap values for all features and all data points in the training data\n",
"print('local importance values: {}'.format(global_explanation.local_importance_values))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate local explanations\n",
"Explain local data points (individual instances)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Note: PFIExplainer does not support local explanations\n",
"# You can pass a specific data point or a group of data points to the explain_local function\n",
"\n",
"# E.g., Explain the first data point in the test set\n",
"instance_num = 1\n",
"local_explanation = explainer.explain_local(x_test[:instance_num])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Get the prediction for the first member of the test set and explain why model made that prediction\n",
"prediction_value = clf.predict(x_test)[instance_num]\n",
"\n",
"sorted_local_importance_values = local_explanation.get_ranked_local_values()[prediction_value]\n",
"sorted_local_importance_names = local_explanation.get_ranked_local_names()[prediction_value]\n",
"\n",
"print('local importance values: {}'.format(sorted_local_importance_values))\n",
"print('local importance names: {}'.format(sorted_local_importance_names))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize\n",
"Load the visualization dashboard"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ExplanationDashboard(global_explanation, model, x_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Next\n",
"Learn about other use cases of the explain package on a:\n",
" \n",
"1. [Training time: regression problem](./explain-regression-local.ipynb)\n",
"1. [Training time: binary classification problem](./explain-binary-classification-local.ipynb)\n",
"1. [Training time: multiclass classification problem](./explain-multiclass-classification-local.ipynb)\n",
"1. [Explain models with simple feature transformations](./simple-feature-transformations-explain-local.ipynb)\n",
"1. [Save model explanations via Azure Machine Learning Run History](../azure-integration/run-history/save-retrieve-explanations-run-history.ipynb)\n",
"1. [Run explainers remotely on Azure Machine Learning Compute (AMLCompute)](../azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb)\n",
"1. Inferencing time: deploy a classification model and explainer:\n",
" 1. [Deploy a locally-trained model and explainer](../azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb)\n",
" 1. [Deploy a remotely-trained model and explainer](../azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"authors": [
{
"name": "mesameki"
}
],
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -1,9 +0,0 @@
name: advanced-feature-transformations-explain-local
dependencies:
- pip:
- azureml-sdk
- interpret
- azureml-interpret
- azureml-contrib-interpret
- sklearn-pandas
- ipywidgets

View File

@@ -1,390 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright (c) Microsoft Corporation. All rights reserved.\n",
"\n",
"Licensed under the MIT License."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Impressions](https://PixelServer20190423114238.azurewebsites.net/api/impressions/MachineLearningNotebooks/how-to-use-azureml/explain-model/tabular-data/explain-binary-classification-local.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Explain binary classification model predictions\n",
"_**This notebook showcases how to use the Azure Machine Learning Interpretability SDK to explain and visualize a binary classification model predictions.**_\n",
"\n",
"\n",
"## Table of Contents\n",
"\n",
"1. [Introduction](#Introduction)\n",
"1. [Setup](#Setup)\n",
"1. [Run model explainer locally at training time](#Explain)\n",
" 1. Train a binary classification model\n",
" 1. Explain the model\n",
" 1. Generate global explanations\n",
" 1. Generate local explanations\n",
"1. [Visualize results](#Visualize)\n",
"1. [Next steps](#Next)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Introduction\n",
"\n",
"This notebook illustrates how to explain a binary classification model predictions locally at training time without contacting any Azure services.\n",
"It demonstrates the API calls that you need to make to get the global and local explanations and a visualization dashboard that provides an interactive way of discovering patterns in data and explanations.\n",
"\n",
"We will showcase three tabular data explainers: TabularExplainer (SHAP), MimicExplainer (global surrogate), and PFIExplainer.\n",
"\n",
"| ![Interpretability Toolkit Architecture](./img/interpretability-architecture.png) |\n",
"|:--:|\n",
"| *Interpretability Toolkit Architecture* |\n",
"\n",
"Problem: Breast cancer diagnosis classification with scikit-learn (run model explainer locally)\n",
"\n",
"1. Train a SVM classification model using Scikit-learn\n",
"2. Run 'explain_model' globally and locally with full dataset in local mode, which doesn't contact any Azure services.\n",
"3. Visualize the global and local explanations with the visualization dashboard.\n",
"---\n",
"\n",
"Setup: If you are using Jupyter notebooks, the extensions should be installed automatically with the package.\n",
"If you are using Jupyter Labs run the following command:\n",
"```\n",
"(myenv) $ jupyter labextension install @jupyter-widgets/jupyterlab-manager\n",
"```\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Explain\n",
"\n",
"### Run model explainer locally at training time"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.datasets import load_breast_cancer\n",
"from sklearn import svm\n",
"\n",
"# Explainers:\n",
"# 1. SHAP Tabular Explainer\n",
"from interpret.ext.blackbox import TabularExplainer\n",
"\n",
"# OR\n",
"\n",
"# 2. Mimic Explainer\n",
"from interpret.ext.blackbox import MimicExplainer\n",
"# You can use one of the following four interpretable models as a global surrogate to the black box model\n",
"from interpret.ext.glassbox import LGBMExplainableModel\n",
"from interpret.ext.glassbox import LinearExplainableModel\n",
"from interpret.ext.glassbox import SGDExplainableModel\n",
"from interpret.ext.glassbox import DecisionTreeExplainableModel\n",
"\n",
"# OR\n",
"\n",
"# 3. PFI Explainer\n",
"from interpret.ext.blackbox import PFIExplainer "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Load the breast cancer diagnosis data"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"breast_cancer_data = load_breast_cancer()\n",
"classes = breast_cancer_data.target_names.tolist()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Split data into train and test\n",
"from sklearn.model_selection import train_test_split\n",
"x_train, x_test, y_train, y_test = train_test_split(breast_cancer_data.data, breast_cancer_data.target, test_size=0.2, random_state=0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Train a SVM classification model, which you want to explain"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"clf = svm.SVC(gamma=0.001, C=100., probability=True)\n",
"model = clf.fit(x_train, y_train)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Explain predictions on your local machine"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# 1. Using SHAP TabularExplainer\n",
"explainer = TabularExplainer(model, \n",
" x_train, \n",
" features=breast_cancer_data.feature_names, \n",
" classes=classes)\n",
"\n",
"\n",
"\n",
"\n",
"# 2. Using MimicExplainer\n",
"# augment_data is optional and if true, oversamples the initialization examples to improve surrogate model accuracy to fit original model. Useful for high-dimensional data where the number of rows is less than the number of columns. \n",
"# max_num_of_augmentations is optional and defines max number of times we can increase the input data size.\n",
"# LGBMExplainableModel can be replaced with LinearExplainableModel, SGDExplainableModel, or DecisionTreeExplainableModel\n",
"# explainer = MimicExplainer(model, \n",
"# x_train, \n",
"# LGBMExplainableModel, \n",
"# augment_data=True, \n",
"# max_num_of_augmentations=10, \n",
"# features=breast_cancer_data.feature_names, \n",
"# classes=classes)\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"# 3. Using PFIExplainer\n",
"\n",
"# Use the parameter \"metric\" to pass a metric name or function to evaluate the permutation. \n",
"# Note that if a metric function is provided a higher value must be better.\n",
"# Otherwise, take the negative of the function or set the parameter \"is_error_metric\" to True.\n",
"# Default metrics: \n",
"# F1 Score for binary classification, F1 Score with micro average for multiclass classification and\n",
"# Mean absolute error for regression\n",
"\n",
"# explainer = PFIExplainer(model, \n",
"# features=breast_cancer_data.feature_names, \n",
"# classes=classes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate global explanations\n",
"Explain overall model predictions (global explanation)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Passing in test dataset for evaluation examples - note it must be a representative sample of the original data\n",
"# x_train can be passed as well, but with more examples explanations will take longer although they may be more accurate\n",
"global_explanation = explainer.explain_global(x_test)\n",
"\n",
"# Note: if you used the PFIExplainer in the previous step, use the next line of code instead\n",
"# global_explanation = explainer.explain_global(x_test, true_labels=y_test)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Sorted SHAP values\n",
"print('ranked global importance values: {}'.format(global_explanation.get_ranked_global_values()))\n",
"# Corresponding feature names\n",
"print('ranked global importance names: {}'.format(global_explanation.get_ranked_global_names()))\n",
"# Feature ranks (based on original order of features)\n",
"print('global importance rank: {}'.format(global_explanation.global_importance_rank))\n",
"\n",
"# Note: PFIExplainer does not support per class explanations\n",
"# Per class feature names\n",
"print('ranked per class feature names: {}'.format(global_explanation.get_ranked_per_class_names()))\n",
"# Per class feature importance values\n",
"print('ranked per class feature values: {}'.format(global_explanation.get_ranked_per_class_values()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Print out a dictionary that holds the sorted feature importance names and values\n",
"print('global importance rank: {}'.format(global_explanation.get_feature_importance_dict()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Explain overall model predictions as a collection of local (instance-level) explanations"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# feature shap values for all features and all data points in the training data\n",
"print('local importance values: {}'.format(global_explanation.local_importance_values))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate local explanations\n",
"Explain local data points (individual instances)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Note: PFIExplainer does not support local explanations\n",
"# You can pass a specific data point or a group of data points to the explain_local function\n",
"\n",
"# E.g., Explain the first data point in the test set\n",
"instance_num = 0\n",
"local_explanation = explainer.explain_local(x_test[instance_num,:])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Get the prediction for the first member of the test set and explain why model made that prediction\n",
"prediction_value = clf.predict(x_test)[instance_num]\n",
"\n",
"sorted_local_importance_values = local_explanation.get_ranked_local_values()[prediction_value]\n",
"sorted_local_importance_names = local_explanation.get_ranked_local_names()[prediction_value]\n",
"\n",
"print('local importance values: {}'.format(sorted_local_importance_values))\n",
"print('local importance names: {}'.format(sorted_local_importance_names))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Visualize\n",
"Load the visualization dashboard"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from azureml.contrib.interpret.visualize import ExplanationDashboard"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ExplanationDashboard(global_explanation, model, x_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Next\n",
"Learn about other use cases of the explain package on a:\n",
" \n",
"1. [Training time: regression problem](./explain-regression-local.ipynb)\n",
"1. [Training time: multiclass classification problem](./explain-multiclass-classification-local.ipynb)\n",
"1. Explain models with engineered features:\n",
" 1. [Simple feature transformations](./simple-feature-transformations-explain-local.ipynb)\n",
" 1. [Advanced feature transformations](./advanced-feature-transformations-explain-local.ipynb)\n",
"1. [Save model explanations via Azure Machine Learning Run History](../azure-integration/run-history/save-retrieve-explanations-run-history.ipynb)\n",
"1. [Run explainers remotely on Azure Machine Learning Compute (AMLCompute)](../azure-integration/remote-explanation/explain-model-on-amlcompute.ipynb)\n",
"1. Inferencing time: deploy a classification model and explainer:\n",
" 1. [Deploy a locally-trained model and explainer](../azure-integration/scoring-time/train-explain-model-locally-and-deploy.ipynb)\n",
" 1. [Deploy a remotely-trained model and explainer](../azure-integration/scoring-time/train-explain-model-on-amlcompute-and-deploy.ipynb)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"authors": [
{
"name": "mesameki"
}
],
"kernelspec": {
"display_name": "Python 3.6",
"language": "python",
"name": "python36"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

View File

@@ -1,8 +0,0 @@
name: explain-binary-classification-local
dependencies:
- pip:
- azureml-sdk
- interpret
- azureml-interpret
- azureml-contrib-interpret
- ipywidgets

Some files were not shown because too many files have changed in this diff Show More