Python gépi tanulási szkriptek végrehajtása a Machine Learning Studióban (klasszikus)

HATÓKÖR:Érvényes. A Machine Learning Studio (klasszikus) nem érvényes.Azure Machine Learning

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

A Python értékes eszköz számos adatelemző eszközkészletében. A tipikus gépi tanulási munkafolyamatok minden szakaszában használják, beleértve az adatfeltárást, a jellemzők kinyerását, a modellek betanítását és ellenőrzését, valamint az üzembe helyezést.

Ez a cikk azt ismerteti, hogyan használhatja a Python-szkript végrehajtása modult Python-kód használatára a Machine Learning Studio (klasszikus) kísérleteiben és webszolgáltatásaiban.

A Python-szkript végrehajtása modul használata

A Python in Studio (klasszikus) elsődleges felülete a Python-szkript végrehajtása modulon keresztül érhető el. Legfeljebb három bemenetet fogad el, és legfeljebb két kimenetet állít elő, az R-szkript végrehajtása modulhoz hasonlóan. A Python-kód egy speciálisan elnevezett belépésipont-függvényen azureml_mainkeresztül kerül be a paramétermezőbe.

Python-szkript végrehajtása modul

Python-mintakód a modul paramétermezőjében

Bemeneti paraméterek

A Python-modul bemenetei Pandas DataFrame-ként érhetők el. A azureml_main függvény legfeljebb két opcionális Pandas DataFrame-et fogad el paraméterként.

A bemeneti portok és a függvényparaméterek közötti leképezés pozíció:

  • Az első csatlakoztatott bemeneti port a függvény első paraméterére van leképezve.
  • A második bemenet (ha csatlakoztatva van) a függvény második paraméterére van leképezve.
  • A harmadik bemenet további Python-modulok importálására szolgál.

Az alábbiakban részletesebb szemantika látható arról, hogy a bemeneti portok hogyan vannak leképezve a azureml_main függvény paramétereire.

A bemenetiport-konfigurációk és az eredményként kapott Python-aláírás táblázata

Kimeneti visszatérési értékek

A azureml_main függvénynek egyetlen, Python-sorozatba csomagolt Pandas DataFrame-et kell visszaadnia, például rekordot, listát vagy NumPy-tömböt. A sorozat első eleme visszakerül a modul első kimeneti portjára. A modul második kimeneti portja vizualizációkhoz használatos, és nem igényel visszatérési értéket. Ez a séma alább látható.

Bemeneti portok leképezése paraméterekre és érték visszaadása a kimeneti portra

Bemeneti és kimeneti adattípusok fordítása

A Studio-adathalmazok nem ugyanazok, mint a Panda DataFrame-ek. Ennek eredményeképpen a (klasszikus) Studio bemeneti adathalmazai Pandas DataFrame-ké lesznek konvertálva, a kimeneti DataFrame-ek pedig vissza lesznek konvertálva Studio (klasszikus) adatkészletekké. A konvertálási folyamat során a következő fordítások is el lesznek végezve:

Python-adattípus A Studio fordítási eljárása
Sztringek és numerikus értékek Lefordítva a következőképpen
Pandas "NA" Lefordítva a "Hiányzó érték" kifejezésre
Indexvektorok Nem támogatott*
Nem sztring típusú oszlopnevek Oszlopnevek meghívása str
Ismétlődő oszlopnevek Adjon hozzá numerikus utótagot: (1), (2), (3) és így tovább.

*A Python-függvény összes bemeneti adatkerete mindig 64 bites numerikus indexet ad 0-tól a sorok számának mínusz 1-hez

Meglévő Python-szkriptmodulok importálása

A Python végrehajtásához használt háttérrendszer az Anacondán, egy széles körben használt tudományos Python-disztribúción alapul. Az adatközpontú számítási feladatokban használt leggyakoribb Python-csomagok közel 200-ból állnak. A Studio (klasszikus) jelenleg nem támogatja olyan csomagkezelő rendszerek használatát, mint a Pip vagy a Conda külső kódtárak telepítéséhez és kezeléséhez. Ha további kódtárak beépítésére van szükség, használja az alábbi forgatókönyvet útmutatóként.

Gyakori használati eset a meglévő Python-szkriptek studioi (klasszikus) kísérletekbe való beépítése. A Python-szkript végrehajtása modul egy Python-modulokat tartalmazó zip-fájlt fogad el a harmadik bemeneti porton. A fájlt futásidőben a végrehajtási keretrendszer bontja ki, és a tartalom bekerül a Python-értelmező könyvtárelérési útvonalára. A azureml_main belépési pont függvény ezután közvetlenül importálhatja ezeket a modulokat.

Vegyük példaként azt a fájlt, Hello.py tartalmaz egy egyszerű "Hello, World" függvényt.

Felhasználó által definiált függvény Hello.py fájlban

Ezután létrehozunk egy Hello.py tartalmazó fájlt Hello.zip:

Felhasználó által definiált Python-kódot tartalmazó zip-fájl

Töltse fel a zip-fájlt adatkészletként a Studióba (klasszikus). Ezután hozzon létre és futtasson egy kísérletet, amely a Python-kódot használja a Hello.zip fájlban. Ehhez csatolja azt a Python-szkript végrehajtása modul harmadik bemeneti portjához az alábbi képen látható módon.

Mintakísérlet Hello.zip egy Python-szkript végrehajtása modul bemeneteként

Felhasználó által definiált Python-kód zip-fájlként feltöltve

A modul kimenete azt mutatja, hogy a zip-fájl ki van csomagolva, és a függvény print_hello le lett futtatva.

A felhasználó által definiált függvényt megjelenítő modulkimenet

Azure Storage-blobok elérése

Az Azure Blob Storage-fiókban tárolt adatokat az alábbi lépésekkel érheti el:

  1. Töltse le helyileg a Pythonhoz készült Azure Blob Storage csomagot.
  2. Töltse fel a zip-fájlt a Studio (klasszikus) munkaterületére adathalmazként.
  3. BlobService-objektum létrehozása a következővel: protocol='http'
from azure.storage.blob import BlockBlobService

# Create the BlockBlockService that is used to call the Blob service for the storage account
block_blob_service = BlockBlobService(account_name='account_name', account_key='account_key', protocol='http')
  1. Tiltsa le a biztonságos átvitelre van szükség a Storage Configuration beállítási lapján

Tiltsa le a biztonságos átvitel szükséges a Azure Portal

Python-szkriptek üzembe helyezése

A pontozási kísérletben használt Összes Python-szkript végrehajtása modult meghívja a rendszer, ha webszolgáltatásként teszi közzé. Az alábbi képen például egy pontozási kísérlet látható, amely egyetlen Python-kifejezés kiértékelésére szolgáló kódot tartalmaz.

Studio-munkaterület webszolgáltatáshoz

Python Pandas-kifejezés

A kísérletből létrehozott webszolgáltatás a következő műveleteket hajtaná végre:

  1. Python-kifejezés használata bemenetként (sztringként)
  2. A Python-kifejezés elküldése a Python-értelmezőnek
  3. Egy olyan táblát ad vissza, amely a kifejezést és a kiértékelt eredményt is tartalmazza.

Vizualizációk használata

A MatplotLib használatával létrehozott rajzokat a Python-szkript végrehajtása adja vissza. A diagramok azonban nem lesznek automatikusan átirányítva a képekre az R használatakor. Ezért a felhasználónak explicit módon mentenie kell a rajzokat PNG-fájlokba.

A MatplotLib rendszerképeinek létrehozásához a következő lépéseket kell végrehajtania:

  1. Állítsa a háttérrendszert "AGG" értékre az alapértelmezett Qt-alapú renderelőről.
  2. Hozzon létre egy új ábraobjektumot.
  3. Kérje le a tengelyt, és hozza létre az összes diagramot.
  4. Mentse az ábrát egy PNG-fájlba.

Ezt a folyamatot az alábbi képek szemléltetik, amelyek pontdiagram-mátrixot hoznak létre a Pandas scatter_matrix függvényével.

MatplotLib-ábrák képekre mentéséhez használható kód

Kattintson a Vizualizáció elemre egy Python-szkript végrehajtása modulon az ábrák megtekintéséhez

Mintakísérlet diagramjainak vizualizációja Python-kóddal

Több adatot is visszaadhat, ha különböző képekre menti őket. A Studio (klasszikus) futtatókörnyezete felveszi az összes képet, és összefűzi őket a vizualizációhoz.

Speciális példák

A (klasszikus) Studióban telepített Anaconda-környezet olyan gyakori csomagokat tartalmaz, mint a NumPy, a SciPy és a Scikits-Learn. Ezek a csomagok hatékonyan használhatók adatfeldolgozásra egy gépi tanulási folyamatban.

Az alábbi kísérlet és szkript például azt mutatja be, hogyan használhatók az együttes tanulók az Scikits-Learn-ban az adathalmaz jellemző-fontossági pontszámainak kiszámításához. A pontszámokkal felügyelt funkciók kiválasztását végezheti el, mielőtt egy másik modellbe lenne betáplálva.

Íme a Python-függvény, amellyel kiszámíthatja a fontossági pontszámokat, és a pontszámok alapján rendezheti a funkciókat:

Funkciók rangsorolása pontszámok szerint

A következő kísérlet ezután kiszámítja és visszaadja a Machine Learning Studio "Pima Indian Diabetes" adatkészletének (klasszikus) funkcióinak fontossági pontszámait:

Kísérlet a Pima Indian Diabetes-adathalmaz funkcióinak rangsorolására a Python használatával

A Python-szkript végrehajtása modul kimenetének vizualizációja

Korlátozások

A Python-szkript végrehajtása modul jelenleg az alábbi korlátozásokkal rendelkezik:

Védőfalas végrehajtás

A Python-futtatókörnyezet jelenleg védőfalas, és nem engedélyezi a hálózathoz vagy a helyi fájlrendszerhez való állandó hozzáférést. A modul befejezése után a helyileg mentett összes fájl el lesz különítve és törölve. A Python-kód nem fér hozzá a legtöbb könyvtárhoz azon a gépen, amelyen fut, a kivétel az aktuális könyvtár és annak alkönyvtárai.

Kifinomult fejlesztési és hibakeresési támogatás hiánya

A Python-modul jelenleg nem támogatja az OLYAN IDE-funkciókat, mint az intellisense és a hibakeresés. Ha a modul futásidőben meghiúsul, a teljes Python-híváslánc elérhető. Ezt azonban meg kell tekinteni a modul kimeneti naplójában. Jelenleg azt javasoljuk, hogy Python-szkripteket fejlesszen és hibakeresést hajtson létre egy olyan környezetben, mint az IPython, majd importálja a kódot a modulba.

Egyetlen adatkeret kimenete

A Python belépési pontja csak egyetlen adatkeretet ad vissza kimenetként. Jelenleg nem lehet tetszőleges Python-objektumokat, például betanított modelleket közvetlenül visszaküldeni a Studio (klasszikus) futtatókörnyezetbe. Az azonos korlátozásokkal rendelkező R-szkript végrehajtásához hasonlóan sok esetben lehetőség van objektumok bájttömbbe való beolvasására, majd az adatkereten belüli visszaadására.

Nem lehet testre szabni a Python telepítését

Jelenleg az egyéni Python-modulok hozzáadásának egyetlen módja a korábban ismertetett zip-fájl mechanizmus. Bár ez kis modulok esetében kivitelezhető, nagy modulok (különösen natív DLL-ekkel rendelkező modulok) vagy nagy számú modul esetén nehézkes.

Következő lépések

További információ: Python fejlesztői központ.