Dela via


Självstudie: Ladda upp, komma åt och utforska dina data i Azure Machine Learning

GÄLLER FÖR: Python SDK azure-ai-ml v2 (aktuell)

I den här självstudiekursen får du lära du dig att:

  • Ladda upp dina data till molnlagring
  • Skapa en Azure Machine Learning-datatillgång
  • Få åtkomst till dina data i en notebook-fil för interaktiv utveckling
  • Skapa nya versioner av datatillgångar

Ett maskininlärningsprojekt börjar vanligtvis med undersökande dataanalys (EDA), förbearbetning av data (rengöring, funktionsutveckling) och skapandet av prototyper för Machine Learning-modell för att validera hypoteser. Den här prototypprojektfasen är mycket interaktiv. Den lämpar sig för utveckling i en IDE eller en Jupyter Notebook med en interaktiv Python-konsol. I den här självstudien beskrivs dessa idéer.

Den här videon visar hur du kommer igång i Azure Machine Learning-studio, så att du kan följa stegen i självstudien. Videon visar hur du skapar en notebook-fil, klonar anteckningsboken, skapar en beräkningsinstans och laddar ned de data som behövs för självstudien. Stegen beskrivs också i följande avsnitt.

Förutsättningar

  1. Om du vill använda Azure Machine Learning behöver du en arbetsyta. Om du inte har någon slutför du Skapa resurser som du behöver för att komma igång med att skapa en arbetsyta och lära dig mer om hur du använder den.

  2. Logga in i studion och välj din arbetsyta om den inte redan är öppen.

  3. Öppna eller skapa en notebook-fil på din arbetsyta:

Ange kerneln och öppna i Visual Studio Code (VS Code)

  1. I det övre fältet ovanför den öppnade notebook-filen skapar du en beräkningsinstans om du inte redan har en.

    Skärmbild som visar hur du skapar en beräkningsinstans.

  2. Om beräkningsinstansen har stoppats väljer du Starta beräkning och väntar tills den körs.

    Skärmbild som visar hur du startar en stoppad beräkningsinstans.

  3. Vänta tills beräkningsinstansen körs. Kontrollera sedan att kerneln, som finns längst upp till höger, är Python 3.10 - SDK v2. Annars använder du listrutan för att välja den här kerneln.

    Skärmbild som visar hur du ställer in kerneln.

    Om du inte ser den här kerneln kontrollerar du att beräkningsinstansen körs. I så fall väljer du knappen Uppdatera längst upp till höger i anteckningsboken.

  4. Om du ser en banderoll som säger att du måste autentiseras väljer du Autentisera.

  5. Du kan köra notebook-filen här eller öppna den i VS Code för en fullständig integrerad utvecklingsmiljö (IDE) med kraften i Azure Machine Learning-resurser. Välj Öppna i VS Code och välj sedan antingen webb- eller skrivbordsalternativet. När du startar på det här sättet kopplas VS Code till beräkningsinstansen, kerneln och arbetsytans filsystem.

    Skärmbild som visar hur du öppnar anteckningsboken i VS Code.

Viktigt!

Resten av den här självstudien innehåller celler i notebook-filen för självstudien. Kopiera och klistra in dem i den nya anteckningsboken eller växla till anteckningsboken nu om du klonade den.

Ladda ned data som används i den här självstudien

För datainmatning hanterar Azure Data Explorer rådata i dessa format. I den här självstudien används det här CSV-formatet för kreditkortsklientdataexempel. Stegen fortsätter i en Azure Machine Learning-resurs. I den resursen skapar vi en lokal mapp, med det föreslagna namnet på data, direkt under mappen där den här notebook-filen finns.

Kommentar

Den här självstudien beror på data som placeras på en plats för en Azure Machine Learning-resursmapp. I den här självstudien innebär "lokal" en mappplats i den Azure Machine Learning-resursen.

  1. Välj Öppna terminalen under de tre punkterna, som du ser i den här bilden:

    Skärmbild som visar öppna terminalverktyget i notebook-verktygsfältet.

  2. Terminalfönstret öppnas på en ny flik.

  3. Kontrollera att du cd (Ändra katalog) till samma mapp där anteckningsboken finns. Om notebook-filen till exempel finns i en mapp med namnet get-started-notebooks:

    cd get-started-notebooks    #  modify this to the path where your notebook is located
    
  4. Ange dessa kommandon i terminalfönstret för att kopiera data till din beräkningsinstans:

    mkdir data
    cd data                     # the sub-folder where you'll store the data
    wget https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv
    
  5. Nu kan du stänga terminalfönstret.

Mer information om data i UC Irvine Machine Learning-lagringsplatsen finns i den här resursen.

Skapa ett handtag till arbetsytan

Innan vi utforskar koden behöver du ett sätt att referera till din arbetsyta. Du skapar ml_client för en referens till arbetsytan. Du använder ml_client sedan för att hantera resurser och jobb.

I nästa cell anger du ditt prenumerations-ID, resursgruppsnamn och arbetsytenamn. Så här hittar du följande värden:

  1. I det övre högra Azure Machine Learning-studio verktygsfältet väljer du namnet på arbetsytan.
  2. Kopiera värdet för arbetsyta, resursgrupp och prenumerations-ID till koden.
  3. Du måste kopiera värdena individuellt en i taget, stänga området och klistra in och sedan fortsätta till nästa.
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes

# authenticate
credential = DefaultAzureCredential()

# Get a handle to the workspace
ml_client = MLClient(
    credential=credential,
    subscription_id="<SUBSCRIPTION_ID>",
    resource_group_name="<RESOURCE_GROUP>",
    workspace_name="<AML_WORKSPACE_NAME>",
)

Kommentar

Skapande av MLClient ansluter inte till arbetsytan. Klientinitiering är lat. Den väntar för första gången den behöver göra ett anrop. Detta inträffar I nästa kodcell.

Ladda upp data till molnlagring

Azure Machine Learning använder URI:er (Uniform Resource Identifiers), som pekar på lagringsplatser i molnet. En URI gör det enkelt att komma åt data i notebook-filer och jobb. Data-URI-format har ett format som liknar de webb-URL:er som du använder i webbläsaren för att få åtkomst till webbsidor. Till exempel:

  • Få åtkomst till data från en offentlig https-server: https://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
  • Få åtkomst till data från Azure Data Lake Gen 2: abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>

En Azure Machine Learning-datatillgång liknar webbläsarbokmärken (favoriter). I stället för att komma ihåg långa lagringssökvägar (URI:er) som pekar på dina mest använda data kan du skapa en datatillgång och sedan komma åt tillgången med ett eget namn.

Skapande av datatillgång skapar också en referens till datakällans plats, tillsammans med en kopia av dess metadata. Eftersom data finns kvar på den befintliga platsen medför du ingen extra lagringskostnad och du riskerar inte datakällans integritet. Du kan skapa datatillgångar från Azure Machine Learning-datalager, Azure Storage, offentliga URL:er och lokala filer.

Dricks

För datauppladdningar med mindre storlek fungerar skapande av Azure Machine Learning-datatillgångar bra för datauppladdningar från lokala datorresurser till molnlagring. Den här metoden undviker behovet av extra verktyg eller verktyg. En större datauppladdning kan dock kräva ett dedikerat verktyg eller verktyg, till exempel azcopy. Kommandoradsverktyget azcopy flyttar data till och från Azure Storage. Mer information om azcopy finns i den här resursen.

Nästa notebook-cell skapar datatillgången. Kodexemplet laddar upp rådatafilen till den avsedda molnlagringsresursen.

Varje gång du skapar en datatillgång behöver du en unik version för den. Om versionen redan finns får du ett fel. I den här koden använder vi "initial" för den första läsningen av data. Om den versionen redan finns återskapar vi den inte.

Du kan också utelämna versionsparametern. I det här fallet genereras ett versionsnummer åt dig, från och med 1 och sedan ökar därifrån.

I den här självstudien används namnet "initial" som den första versionen. Självstudien Skapa maskininlärningspipelines för produktion använder också den här versionen av data, så här använder vi ett värde som du ser igen i den självstudien.

from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes

# update the 'my_path' variable to match the location of where you downloaded the data on your
# local filesystem

my_path = "./data/default_of_credit_card_clients.csv"
# set the version number of the data asset
v1 = "initial"

my_data = Data(
    name="credit-card",
    version=v1,
    description="Credit card data",
    path=my_path,
    type=AssetTypes.URI_FILE,
)

## create data asset if it doesn't already exist:
try:
    data_asset = ml_client.data.get(name="credit-card", version=v1)
    print(
        f"Data asset already exists. Name: {my_data.name}, version: {my_data.version}"
    )
except:
    ml_client.data.create_or_update(my_data)
    print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")

Om du vill undersöka de uppladdade data väljer du Data till vänster. Data laddas upp och en datatillgång skapas:

Skärmbild som visar data i studio.

Dessa data heter kreditkort och på fliken Datatillgångar kan vi se dem i kolumnen Namn.

Ett Azure Machine Learning-datalager är en referens till ett befintligt lagringskonto i Azure. Ett datalager erbjuder följande fördelar:

  1. Ett vanligt och lätthanterad API för att interagera med olika lagringstyper

    • Azure Data Lake Storage
    • Blob
    • Filer

    och autentiseringsmetoder.

  2. Ett enklare sätt att identifiera användbara datalager när du arbetar som ett team.

  3. I skripten kan du dölja anslutningsinformation för autentiseringsbaserad dataåtkomst (tjänstens huvudnamn/SAS/nyckel).

Få åtkomst till dina data i en notebook-fil

Pandas har direkt stöd för URI:er – det här exemplet visar hur du läser en CSV-fil från ett Azure Machine Learning-datalager:

import pandas as pd

df = pd.read_csv("azureml://subscriptions/<subid>/resourcegroups/<rgname>/workspaces/<workspace_name>/datastores/<datastore_name>/paths/<folder>/<filename>.csv")

Men som tidigare nämnts kan det bli svårt att komma ihåg dessa URI:er. Dessutom måste du manuellt ersätta alla <delsträngsvärden> i kommandot pd.read_csv med de verkliga värdena för dina resurser.

Du vill skapa datatillgångar för data som används ofta. Här är ett enklare sätt att komma åt CSV-filen i Pandas:

Viktigt!

I en notebook-cell kör du den här koden för att installera azureml-fsspec Python-biblioteket i Jupyter-kerneln:

%pip install -U azureml-fsspec
import pandas as pd

# get a handle of the data asset and print the URI
data_asset = ml_client.data.get(name="credit-card", version=v1)
print(f"Data asset URI: {data_asset.path}")

# read into pandas - note that you will see 2 headers in your data frame - that is ok, for now

df = pd.read_csv(data_asset.path)
df.head()

Mer information om dataåtkomst i en notebook-fil finns i Åtkomst till data från Azure Cloud Storage under interaktiv utveckling.

Skapa en ny version av datatillgången

Data behöver viss ljusrengöring så att de passar för att träna en maskininlärningsmodell. Den har:

  • två rubriker
  • en klient-ID-kolumn. vi skulle inte använda den här funktionen i Machine Learning
  • blanksteg i svarsvariabelns namn

Jämfört med CSV-formatet blir Parquet-filformatet också ett bättre sätt att lagra dessa data. Parquet erbjuder komprimering och underhåller schemat. Om du vill rensa data och lagra dem i Parquet använder du:

# read in data again, this time using the 2nd row as the header
df = pd.read_csv(data_asset.path, header=1)
# rename column
df.rename(columns={"default payment next month": "default"}, inplace=True)
# remove ID column
df.drop("ID", axis=1, inplace=True)

# write file to filesystem
df.to_parquet("./data/cleaned-credit-card.parquet")

Den här tabellen visar strukturen för data i den ursprungliga default_of_credit_card_clients.csv filen . CSV-fil som laddades ned i ett tidigare steg. De uppladdade data innehåller 23 förklarande variabler och en svarsvariabel, enligt följande:

Kolumnnamn Variabeltyp beskrivning
X1 Förklarande Beloppet för den givna krediten (NT-dollar): den omfattar både den individuella konsumentkrediten och deras familjekredit (tilläggskredit).
X2 Förklarande Kön (1 = man, 2 = kvinna).
X3 Förklarande Utbildning (1 = forskarskola; 2 = universitet; 3 = gymnasiet; 4 = andra).
X4 Förklarande Civilstånd (1 = gift; 2 = singel; 3 = andra).
X5 Förklarande Ålder (år).
X6-X11 Förklarande Historik över tidigare betalning. Vi spårade de senaste månatliga betalningsposterna (från april till september 2005). -1 = betala vederbörligen; 1 = betalningsfördröjning för en månad; 2 = betalningsfördröjning i två månader; . . .; 8 = betalningsfördröjning i åtta månader. 9 = betalningsfördröjning i nio månader och senare.
X12-17 Förklarande Belopp för fakturautdrag (NT-dollar) från april till september 2005.
X18-23 Förklarande Belopp för tidigare betalning (NT-dollar) från april till september 2005.
Y Response Standardbetalning (Ja = 1, Nej = 0)

Skapa sedan en ny version av datatillgången (data överförs automatiskt till molnlagring). För den här versionen lägger du till ett tidsvärde så att varje gång koden körs skapas ett annat versionsnummer.

from azure.ai.ml.entities import Data
from azure.ai.ml.constants import AssetTypes
import time

# Next, create a new *version* of the data asset (the data is automatically uploaded to cloud storage):
v2 = "cleaned" + time.strftime("%Y.%m.%d.%H%M%S", time.gmtime())
my_path = "./data/cleaned-credit-card.parquet"

# Define the data asset, and use tags to make it clear the asset can be used in training

my_data = Data(
    name="credit-card",
    version=v2,
    description="Default of credit card clients data.",
    tags={"training_data": "true", "format": "parquet"},
    path=my_path,
    type=AssetTypes.URI_FILE,
)

## create the data asset

my_data = ml_client.data.create_or_update(my_data)

print(f"Data asset created. Name: {my_data.name}, version: {my_data.version}")

Den rensade parquet-filen är den senaste versionens datakälla. Den här koden visar resultatuppsättningen för CSV-versionen först och sedan Parquet-versionen:

import pandas as pd

# get a handle of the data asset and print the URI
data_asset_v1 = ml_client.data.get(name="credit-card", version=v1)
data_asset_v2 = ml_client.data.get(name="credit-card", version=v2)

# print the v1 data
print(f"V1 Data asset URI: {data_asset_v1.path}")
v1df = pd.read_csv(data_asset_v1.path)
print(v1df.head(5))

# print the v2 data
print(
    "_____________________________________________________________________________________________________________\n"
)
print(f"V2 Data asset URI: {data_asset_v2.path}")
v2df = pd.read_parquet(data_asset_v2.path)
print(v2df.head(5))

Rensa resurser

Om du planerar att fortsätta nu till andra självstudier går du vidare till Nästa steg.

Stoppa beräkningsinstans

Om du inte planerar att använda den nu stoppar du beräkningsinstansen:

  1. Välj Beräkning i det vänstra navigeringsområdet i studion.
  2. På de översta flikarna väljer du Beräkningsinstanser
  3. Välj beräkningsinstansen i listan.
  4. I det övre verktygsfältet väljer du Stoppa.

Ta bort alla resurser

Viktigt!

De resurser som du har skapat kan användas som förutsättningar för andra Azure Machine Learning-självstudier och instruktionsartiklar.

Om du inte planerar att använda någon av de resurser som du har skapat tar du bort dem så att du inte debiteras några avgifter:

  1. I Azure Portal i sökrutan anger du Resursgrupper och väljer dem i resultatet.

  2. I listan väljer du den resursgrupp som du skapade.

  3. På sidan Översikt väljer du Ta bort resursgrupp.

    Skärmbild av valen för att ta bort en resursgrupp i Azure Portal.

  4. Ange resursgruppsnamnet. Välj sedan ta bort.

Nästa steg

Mer information om datatillgångar finns i Skapa datatillgångar.

Mer information om datalager finns i Skapa datalager.

Fortsätt med nästa självstudie för att lära dig hur du utvecklar ett träningsskript: