Megosztás a következőn keresztül:


Oktatóanyag: Adatok feltöltése, elérése és felfedezése az Azure Machine Learningben

A KÖVETKEZŐKRE VONATKOZIK: Python SDK azure-ai-ml v2 (aktuális)

Ebben az útmutatóban Ön:

  • Adatok feltöltése felhőbeli tárolóba
  • Azure Machine Learning-adategység létrehozása
  • Adatok elérése jegyzetfüzetben interaktív fejlesztés céljából
  • Adategységek új verzióinak létrehozása

A gépi tanulási projektek általában feltáró adatelemzéssel (EDA), adatelőfeldolgozással (tisztítással, funkciófejlesztéssel) és gépi tanulási modell prototípusainak létrehozásával kezdődnek a hipotézisek ellenőrzéséhez. Ez a prototípus-fejlesztési projektszakasz rendkívül interaktív, és egy IDE-ben vagy Jupyter-notebookban való fejlesztéshez nyújt segítséget pythonos interaktív konzollal. Ez az oktatóanyag ezeket a fogalmakat ismerteti.

Előfeltételek

  1. Az Azure Machine Learning használatához munkaterületre van szüksége. Ha nem rendelkezik ilyen erőforrással, végezze el a munkaterület létrehozásához szükséges erőforrások létrehozását, és tudjon meg többet a használatáról.

    Fontos

    Ha az Azure Machine Learning-munkaterület felügyelt virtuális hálózattal van konfigurálva, előfordulhat, hogy kimenő szabályokat kell hozzáadnia a nyilvános Python-csomagtárakhoz való hozzáférés engedélyezéséhez. További információ: Forgatókönyv: Nyilvános gépi tanulási csomagok elérése.

  2. Jelentkezzen be a stúdióba , és válassza ki a munkaterületet, ha még nincs megnyitva.

  3. Jegyzetfüzet megnyitása vagy létrehozása a munkaterületen:

    • Ha kódot szeretne másolni és beilleszteni a cellákba, hozzon létre egy új jegyzetfüzetet.
    • Vagy nyisson meg oktatóanyagokat/get-started-notebooks/explore-data.ipynb-t a Studio Minták szakaszából. Ezután válassza a Klónozás lehetőséget a jegyzetfüzet fájlokhoz való hozzáadásához. A mintajegyzetfüzetek megkereséséhez lásd : Learn from sample notebooks.

A kernel beállítása és megnyitása a Visual Studio Code-ban (VS Code)

  1. A megnyitott jegyzetfüzet fölötti felső sávon hozzon létre egy számítási példányt, ha még nem rendelkezik ilyenrel.

    Képernyőkép a számítási példányok létrehozásáról.

  2. Ha a számítási példány le van állítva, válassza a Számítás indítása lehetőséget, és várja meg, amíg fut.

    Képernyőkép egy leállított számítási példány indításáról.

  3. Várjon, amíg a számítási példány fut. Ezután győződjön meg arról, hogy a jobb felső sarokban található kernel az Python 3.10 - SDK v2. Ha nem, válassza ki a kernelt a legördülő listából.

    Képernyőkép a kernel beállításáról.

    Ha nem látja ezt a kernelt, ellenőrizze, hogy fut-e a számítási példány. Ha igen, válassza a jegyzetfüzet jobb felső sarkában található Frissítés gombot.

  4. Ha megjelenik egy szalagcím, amely azt jelzi, hogy hitelesíteni kell, válassza a Hitelesítés lehetőséget.

  5. A jegyzetfüzetet itt futtathatja, vagy megnyithatja a VS Code-ban egy teljes integrált fejlesztési környezethez (IDE) az Azure Machine Learning-erőforrások segítségével. Válassza a Megnyitás a VS Code-ban lehetőséget, majd válassza a webes vagy asztali lehetőséget. Ha így indul el, a VS Code a számítási példányhoz, a kernelhez és a munkaterület fájlrendszeréhez lesz csatolva.

    Képernyőkép a jegyzetfüzet VS Code-ban való megnyitásáról.

Fontos

Az oktatóanyag többi része az oktatóanyag-jegyzetfüzet celláit tartalmazza. Másolja és illessze be őket az új jegyzetfüzetbe, vagy váltson most a jegyzetfüzetre, ha klónozta.

Az oktatóanyagban használt adatok letöltése

Az adatbetöltéshez az Azure Data Explorer ezekben a formátumokban kezeli a nyers adatokat. Ez az oktatóanyag EGY CSV formátumú hitelkártya-ügyféladat-mintát használ. A lépések egy Azure Machine Learning-erőforrásban történnek. Ebben az erőforrásban egy helyi mappát hoz létre az adatok javasolt nevével, közvetlenül a jegyzetfüzetet tartalmazó mappa alatt.

Feljegyzés

Ez az oktatóanyag az Azure Machine Learning-erőforrásmappában elhelyezett adatoktól függ. Ebben az oktatóanyagban a "helyi" egy mappahelyet jelent az Azure Machine Learning-erőforrásban.

  1. A három pont alatt válassza a Terminál megnyitása lehetőséget, ahogyan az a képen látható:

    Képernyőkép a termináleszköz megnyitásáról a jegyzetfüzet eszköztárában.

  2. A terminálablak egy új lapon nyílik meg.

  3. Győződjön meg arról, hogy a könyvtárat (cd) ugyanarra a mappára módosítja, ahol a jegyzetfüzet található. Ha például a jegyzetfüzet egy get-started-notebooks nevű mappában van:

    cd get-started-notebooks    # modify this to the path where your notebook is located
    
  4. Adja meg ezeket a parancsokat a terminálablakban az adatok számítási példányba másolásához:

    mkdir data
    cd data                     # the subfolder where you'll store the data
    wget https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv
    
  5. Most már bezárhatja a terminálablakot.

Az UC Irvine Machine Learning-adattár adataival kapcsolatos további információkért látogasson el erre az erőforrásra.

Fogópont létrehozása a munkaterületen

A kód megismerése előtt szüksége van egy módszerre a munkaterületre való hivatkozáshoz. Fogópontként kell létrehoznia ml_client a munkaterületet. Ezután ml_client erőforrásokat és feladatokat kezelhet.

A következő cellába írja be az előfizetés azonosítóját, az erőforráscsoport nevét és a munkaterület nevét. Az alábbi értékek megkeresése:

  1. A jobb felső Azure Machine Learning Studio eszköztáron válassza ki a munkaterület nevét.
  2. Másolja a munkaterület, az erőforráscsoport és az előfizetés azonosítójának értékét a kódba.
  3. Az egyes értékeket egyenként, egyenként kell másolnia. Zárja be a területet, illessze be az értéket, majd folytassa a következővel.
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>",
)

Feljegyzés

Az MLClient létrehozása nem fog csatlakozni a munkaterülethez. Az ügyfél inicializálása lusta, és az első alkalommal várakozik, amikor hívást kell kezdeményeznie. Ez a következő kódcellában történik.

Adatok feltöltése felhőbeli tárolóba

Az Azure Machine Learning egységes erőforrás-azonosítókat (URI-kat) használ, amelyek a felhőbeli tárolóhelyekre mutatnak. Az URI megkönnyíti a jegyzetfüzetek és feladatok adatainak elérését. Az adat-URI formátumok hasonlóak a webböngészőben a weblapok eléréséhez használt webes URL-címekhez. Példa:

  • Adatok elérése nyilvános https-kiszolgálóról: https://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
  • Adatok elérése az Azure Data Lake Gen 2-ből: abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>

Az Azure Machine Learning-adategység hasonló a webböngésző könyvjelzőihez (kedvencekhez). A leggyakrabban használt adatokra mutató hosszú tárolási útvonalak (URI-k) megjegyzése helyett létrehozhat egy adategységet, majd egy rövid névvel elérheti az objektumot.

Az adategység létrehozása az adatforrás helyére mutató hivatkozást is létrehoz a metaadatok másolatával együtt. Mivel az adatok a meglévő helyen maradnak, nem jár többlet tárolási költséggel, és nem kockáztatja az adatforrás integritását. Adategységeket azure Machine Learning-adattárakból, Azure Storage-ból, nyilvános URL-címekből és helyi fájlokból hozhat létre.

Tipp.

Kisebb adatfeltöltések esetén az Azure Machine Learning-adategységek létrehozása jól működik a helyi gépi erőforrásokból a felhőbeli tárolóba való adatok feltöltéséhez. Ez a megközelítés elkerüli a további eszközök vagy segédprogramok szükségességét. A nagyobb adatfeltöltésekhez azonban szükség lehet egy dedikált eszközre vagy segédprogramra – például az azcopyra. Az azcopy parancssori eszköz áthelyezi az adatokat az Azure Storage-ba és onnan. Az azcopyról további információt az AzCopy használatának első lépései című témakörben talál.

A következő jegyzetfüzetcella létrehozza az adategységet. A kódminta feltölti a nyers adatfájlt a kijelölt felhőtárhely-erőforrásba.

Minden alkalommal, amikor létrehoz egy adategységet, egyedi verzióra van szüksége. Ha a verzió már létezik, hibaüzenet jelenik meg. Ebben a kódban az adatok első olvasásához a "initial" (kezdeti) értéket használja. Ha ez a verzió már létezik, a kód nem hozza létre újra.

Kihagyhatja a verzióparamétert is. Ebben az esetben a rendszer létrehoz egy verziószámot, amely 1-től kezdve onnan növekszik.

Ez az oktatóanyag a "initial" nevet használja első verzióként. Az éles gépi tanulási folyamatok létrehozása oktatóanyag az adatok ezen verzióját is használja, így az oktatóanyagban újra látható értéket kell használnia.

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}")

A feltöltött adatok vizsgálatához válassza az Adatok lehetőséget a bal oldali navigációs menü Eszközök szakaszában. A rendszer feltölti az adatokat, és létrehoz egy adategységet:

Képernyőkép a stúdióban lévő adatokról.

Ezeket az adatokat hitelkártyának nevezik. Az Adategységek lapon a Név oszlopban láthatja.

Az Azure Machine Learning-adattár egy meglévő Azure-tárfiókra mutató hivatkozás. Az adattárak az alábbi előnyöket kínálják:

  1. Gyakori és könnyen használható API a különböző tárolási típusokkal való interakcióhoz:

    • Azure Data Lake Storage
    • Nagy bináris objektum
    • Files

    és hitelesítési módszereket.

  2. A hasznos adattárak könnyebb felderítése csapatként való munkavégzéskor.

  3. A szkriptekben elrejtheti a hitelesítő adatokhoz való hozzáférés kapcsolati adatait (szolgáltatásnév/SAS/kulcs).

Adatok elérése jegyzetfüzetben

Adategységeket szeretne létrehozni a gyakran használt adatokhoz. Az adatokat az Access-adatokban leírt URI használatával érheti el egy adattár URI-jából, például egy fájlrendszerből. Azonban, ahogy korábban említettük, nehéz lehet megjegyezni ezeket az URI-kat.

Másik lehetőségként használhatja a azureml-fsspec könyvtárat, amely fájlrendszer-felületet biztosít az Azure Machine Learning-adattárakhoz. Ez egy egyszerűbb módja annak, hogy hozzáférjen a CSV-fájlhoz a Pandasban:

Fontos

Egy jegyzetfüzetcellában hajtsa végre ezt a kódot a azureml-fsspec Python-kódtár Jupyter-kernelben való telepítéséhez:

%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()

A jegyzetfüzetek adathozzáféréséről további információt az Azure Cloud Storage-ból származó Adatok elérése interaktív fejlesztés során című témakörben talál.

Az adategység új verziójának létrehozása

Az adatok némi könnyű tisztítást igényelnek, hogy alkalmassá tegyék egy gépi tanulási modell betanítására. A következőt teszi:

  • Két fejléc
  • Ügyfélazonosító oszlop, amely nem használható funkcióként a gépi tanulásban
  • Szóközök a válaszváltozó nevében

A CSV formátumhoz képest a Parquet fájlformátum is jobb módszer az adatok tárolására. A Parquet tömörítést kínál, és fenntartja a sémát. Az adatok megtisztítása és parquet formátumban történő tárolása:

# 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")

Ez a táblázat a korábbi lépésben letöltött eredeti default_of_credit_card_clients.csv fájlban lévő adatok szerkezetét mutatja. A feltöltött adatok 23 magyarázó változót és 1 válaszváltozót tartalmaznak, az itt látható módon:

Oszlopnév(ek) Változó típusa Leírás
X1 Magyarázó Az adott hitel összege (NT dollár): magában foglalja mind az egyéni fogyasztói hitelt, mind a családi (kiegészítő) jóváírást.
X2 Magyarázó Nem (1 = férfi; 2 = nő).
X3 Magyarázó Oktatás (1 = végzős iskola; 2 = egyetem; 3 = gimnázium; 4 = egyéb).
X4 Magyarázó Családi állapot (1 = házas; 2 = egyedülálló; 3 = mások).
X5 Magyarázó Életkor (évek).
X6-X11 Magyarázó Korábbi fizetések előzményei. 2005 áprilisa és szeptembere között nyomon követett korábbi havi fizetési rekordok. -1 = megfelelő fizetés; 1 = fizetési késedelem egy hónapra; 2 = két hónapos fizetési késedelem; . . .; 8 = nyolc hónapos fizetési késedelem; 9 = 9 hónapos vagy újabb fizetési késedelem.
X12-17 Magyarázó A számlakivonat (NT-dollár) összege 2005 áprilisától szeptemberig.
X18-23 Magyarázó Az előző kifizetés (NT-dollár) összege 2005 áprilisától szeptemberig.
I Válasz Alapértelmezett fizetés (Igen = 1, Nem = 0)

Ezután hozza létre az adategység új verzióját . Az adatok automatikusan feltöltődnek a felhőbeli tárolóba. Ebben a verzióban adjon hozzá egy időértéket, hogy a kód minden futtatásakor létrejön egy másik verziószám.

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}")

A megtisztított Parquet-fájl a legújabb verziójú adatforrás. Ez a kód először a CSV-verzió eredménykészletét, majd a Parquet-verziót jeleníti meg:

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))

Az erőforrások eltávolítása

Ha most más oktatóanyagokra szeretne továbblépni, ugorjon a Következő lépésekre.

Számítási példány leállítása

Ha most nem tervezi használni, állítsa le a számítási példányt:

  1. A stúdió bal oldali paneljén válassza a Számítás lehetőséget.
  2. A felső lapokon válassza a Számítási példányok lehetőséget.
  3. Válassza ki a számítási példányt a listában.
  4. A felső eszköztáron válassza a Leállítás lehetőséget.

Az összes erőforrás törlése

Fontos

A létrehozott erőforrások előfeltételként használhatók más Azure Machine Learning-oktatóanyagokhoz és útmutatókhoz.

Ha nem tervezi használni a létrehozott erőforrások egyikét sem, törölje őket, hogy ne járjon költséggel:

  1. Az Azure Portal keresőmezőjében adja meg az erőforráscsoportokat , és válassza ki az eredmények közül.

  2. A listából válassza ki a létrehozott erőforráscsoportot.

  3. Az Áttekintés lapon válassza az Erőforráscsoport törlése lehetőséget.

    Képernyőkép egy erőforráscsoport azure portalon való törlésére vonatkozó kijelölésekről.

  4. Adja meg az erőforráscsoport nevét. Ezután válassza a Törlés elemet.

Következő lépések

További információ az adategységekről: Adategységek létrehozása.

Az adattárakról további információt az Adattárak létrehozása című témakörben talál.

Folytassa a következő oktatóanyaggal, amelyből megtudhatja, hogyan fejleszthet betanítási szkriptet: