Navigation überspringen

Machine Learning Samples

Sample: OJ Sales Simulated Data

OJ Sales Many Models Forecasting Retail Sales Grocery

Dieses Dataset stammt aus dem OJ-Dataset von Dominick und enthält zusätzliche simulierte Daten mit dem Ziel, ein Dataset bereitzustellen, das das gleichzeitige Trainieren von Tausenden von Modellen in Azure Machine Learning vereinfacht.

Die Daten enthalten wöchentliche Verkäufe von gekühltem Orangensaft in einem Zeitraum von 121 Wochen. Es sind 3.991 Läden enthalten und drei Orangensaftmarken pro Laden, also können insgesamt 11.973 Modelle trainiert werden.

Weitere Informationen zum ursprünglichen Dataset finden Sie unter diesem Link. Sie können auch auf das ursprüngliche Dataset zugreifen.

Benachrichtigungen

MICROSOFT STELLT DATASETS DER PLATTFORM AZURE OPEN DATASETS AUF EINER „AS IS“-BASIS (D. H. OHNE MÄNGELGEWÄHR) ZUR VERFÜGUNG. MICROSOFT ÜBERNIMMT WEDER AUSDRÜCKLICH NOCH STILLSCHWEIGEND DIE GEWÄHRLEISTUNG FÜR IHRE NUTZUNG DER DATENSÄTZE UND SICHERT KEINERLEI GARANTIEN ODER BEDINGUNGEN ZU. SOWEIT NACH ÖRTLICH ANWENDBAREM RECHT ZULÄSSIG, LEHNT MICROSOFT JEGLICHE HAFTUNG FÜR SCHÄDEN ODER VERLUSTE AB. DIES SCHLIEßT DIREKTE, INDIREKTE, BESONDERE ODER ZUFÄLLIGE SCHÄDEN ODER VERLUSTE SOWIE FOLGE- UND STRAFSCHÄDEN UND DAMIT VERBUNDENE VERLUSTE EIN.

Für die Bereitstellung dieses Datasets gelten die ursprünglichen Nutzungsbedingungen, unter denen Microsoft die Quelldaten bezogen hat. Das Dataset kann Daten von Microsoft enthalten.

Access

Available inWhen to use
Azure Notebooks

Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine.

Azure Databricks

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Preview

WeekStarting Store Brand Quantity Advert Price Revenue
10/1/1992 12:00:00 AM 3023 minute.maid 15495 1 1.99 30835.05
10/1/1992 12:00:00 AM 1766 minute.maid 11111 1 2.12 23555.32
10/1/1992 12:00:00 AM 3075 minute.maid 10715 1 2.23 23894.45
10/1/1992 12:00:00 AM 716 minute.maid 11292 1 2.04 23035.68
10/1/1992 12:00:00 AM 3231 minute.maid 12811 1 2.63 33692.93
10/1/1992 12:00:00 AM 1067 minute.maid 14741 1 2.3 33904.3
10/1/1992 12:00:00 AM 1260 minute.maid 18689 1 1.91 35695.99
10/1/1992 12:00:00 AM 1368 minute.maid 18334 1 2.53 46385.02
10/1/1992 12:00:00 AM 1639 minute.maid 16272 1 2.63 42795.36
10/1/1992 12:00:00 AM 2983 minute.maid 19797 1 1.95 38604.15
Name Data type Unique Values (sample) Description
Advert int 1

Wert, der angibt, ob der Orangensaft während der Woche beworben wurde

  • 0: Keine Werbung
  • 1: Werbung
Brand string tropicana
minute.maid

Marke des Orangensafts

Price double 2.6
2.09

Preis des Orangensafts (in USD)

Quantity int 10939
11638

Menge des in einer Woche verkauften Orangensafts

Revenue double 36036.0
33264.0

Umsatz aus den Orangensaftverkäufen für diese Woche (in USD)

Store int 1939
3321

Marktnummer, wo der Orangensaft verkauft wurde

WeekStarting timestamp 1990-06-28 00:00:00
1991-10-17 00:00:00

Datum, das anzeigt, welcher Woche die Verkäufe zugeordnet werden können

Select your preferred service:

Azure Notebooks

Azure Databricks

Azure Notebooks

Package: Language: Python
In [ ]:
from azureml.core.workspace import Workspace
ws = Workspace.from_config()
datastore = ws.get_default_config()
In [ ]:
from azureml.opendatasets import OjSalesSimulated

Read data from Azure Open Datasets

In [ ]:
# Create a Data Directory in local path
import os

oj_sales_path = "oj_sales_data"

if not os.path.exists(oj_sales_path):
    os.mkdir(oj_sales_path)
In [ ]:
# Pull all of the data
oj_sales_files = OjSalesSimulated.get_file_dataset()

# or pull a subset of the data
oj_sales_files = OjSalesSimulated.get_file_dataset(num_files=10)
In [ ]:
oj_sales_files.download(oj_sales_path, overwrite=True)

Upload the individual datasets to Blob Storage

We upload the data to Blob and will create the FileDataset from this folder of csv files.

In [ ]:
target_path = 'oj_sales_data'

datastore.upload(src_dir = oj_sales_path,
                target_path = target_path,
                overwrite = True, 
                show_progress = True)

Create the file dataset

We need to define the path of the data to create the FileDataset.

In [ ]:
from azureml.core.dataset import Dataset

ds_name = 'oj_data'
path_on_datastore = datastore.path(target_path + '/')

input_ds = Dataset.File.from_files(path=path_on_datastore, validate=False)

Register the file dataset to the workspace

We want to register the dataset to our workspace so we can call it as an input into our Pipeline for forecasting.

In [ ]:
registered_ds = input_ds.register(ws, ds_name, create_new_version=True)
named_ds = registered_ds.as_named_input(ds_name)

Azure Databricks

Package: Language: Python
In [1]:
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
# Download or mount OJ Sales raw files Azure Machine Learning file datasets.
# This works only for Linux based compute. See https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-create-register-datasets to learn more about datasets.

from azureml.opendatasets import OjSalesSimulated

ojss_file = OjSalesSimulated.get_file_dataset()
ojss_file
In [2]:
ojss_file.to_path()
In [3]:
# Download files to local storage
import os
import tempfile

mount_point = tempfile.mkdtemp()
ojss_file.download(mount_point, overwrite=True)
In [4]:
# Mount files. Useful when training job will run on a remote compute.
import gzip
import struct
import pandas as pd
import numpy as np

# load compressed OJ Sales Simulated gz files and return numpy arrays
def load_data(filename, label=False):
    with gzip.open(filename) as gz:
        gz.read(4)
        n_items = struct.unpack('>I', gz.read(4))
        if not label:
            n_rows = struct.unpack('>I', gz.read(4))[0]
            n_cols = struct.unpack('>I', gz.read(4))[0]
            res = np.frombuffer(gz.read(n_items[0] * n_rows * n_cols), dtype=np.uint8)
            res = res.reshape(n_items[0], n_rows * n_cols)
        else:
            res = np.frombuffer(gz.read(n_items[0]), dtype=np.uint8)
            res = res.reshape(n_items[0], 1)
    return pd.DataFrame(res)
In [5]:
import sys
mount_point = tempfile.mkdtemp()
print(mount_point)
print(os.path.exists(mount_point))
print(os.listdir(mount_point))

if sys.platform == 'linux':
  print("start mounting....")
  with ojss_file.mount(mount_point):
    print(os.listdir(mount_point))  
    train_images_df = load_data(os.path.join(mount_point, 'train-tabular-oj-ubyte.gz'))
    print(train_images_df.info())
In [6]: