Aracılığıyla paylaş


Öğretici: Azure Machine Learning'de verilerinizi karşıya yükleme, erişme ve keşfetme

ŞUNLAR IÇIN GEÇERLIDIR: Python SDK'sı azure-ai-ml v2 (geçerli)

Bu eğitimde, siz:

  • Verilerinizi bulut depolama alanına yükleme
  • Azure Machine Learning veri varlığı oluşturma
  • Etkileşimli geliştirme için not defterindeki verilerinize erişme
  • Veri varlıklarının yeni sürümlerini oluşturma

Makine öğrenmesi projesi genellikle keşif veri analizi (EDA), veri ön işleme (temizleme, özellik mühendisliği) ve hipotezleri doğrulamak için makine öğrenmesi modeli prototipleri oluşturma ile başlar. Bu prototip oluşturma projesi aşaması yüksek oranda etkileşimlidir ve Python etkileşimli konsolu olan bir IDE veya Jupyter not defterinde geliştirmeye yardımcı olur. Bu öğreticide bu kavramlar açıklanmaktadır.

Önkoşullar

  1. Azure Machine Learning'i kullanmak için bir çalışma alanı gerekir. Bir çalışma alanınız yoksa, çalışma alanı oluşturmaya başlamak ve bu çalışma alanını kullanma hakkında daha fazla bilgi edinmek için ihtiyacınız olan kaynakları oluşturma'yı tamamlayın.

    Önemli

    Azure Machine Learning çalışma alanınız yönetilen bir sanal ağ ile yapılandırılmışsa, genel Python paket depolarına erişime izin vermek için giden kuralları eklemeniz gerekebilir. Daha fazla bilgi için bkz . Senaryo: Genel makine öğrenmesi paketlerine erişme.

  2. Stüdyoda oturum açın ve henüz açık değilse çalışma alanınızı seçin.

  3. Çalışma alanınızda bir not defteri açın veya oluşturun:

    • Kod kopyalayıp hücrelere yapıştırmak istiyorsanız yeni bir not defteri oluşturun.
    • Veya studio'nun Örnekler bölümünden tutorials/get-started-notebooks/explore-data.ipynb dosyasını açın. Ardından Kopyala'yı seçerek not defterini Dosyalarınıza ekleyin. Örnek not defterlerini bulmak için bkz . Örnek not defterlerinden öğrenme.

Çekirdeğinizi ayarlayın ve Visual Studio Code'da (VS Code) açın

  1. Açık not defterinizin üst çubuğunda, henüz yoksa bir işlem örneği oluşturun.

    İşlem örneğinin nasıl oluşturulacağını gösteren ekran görüntüsü.

  2. İşlem örneği durdurulduysa İşlemi başlat'ı seçin ve çalışana kadar bekleyin.

    Durdurulmuş bir işlem örneğinin nasıl başlatılanı gösteren ekran görüntüsü.

  3. İşlem örneği çalışana kadar bekleyin. Ardından sağ üst kısımda bulunan çekirdeğin olduğundan Python 3.10 - SDK v2emin olun. Aksi takdirde, bu çekirdeği seçmek için açılan listeyi kullanın.

    Çekirdeğin nasıl ayarlandığını gösteren ekran görüntüsü.

    Bu çekirdeği görmüyorsanız işlem örneğinizin çalıştığını doğrulayın. Bu durumda, not defterinin sağ üst kısmındaki Yenile düğmesini seçin.

  4. Kimliğinizin doğrulanması gerektiğini belirten bir başlık görürseniz Kimliği Doğrula'yı seçin.

  5. Not defterini burada çalıştırabilir veya Azure Machine Learning kaynaklarının gücüyle tam tümleşik bir geliştirme ortamı (IDE) için VS Code'da açabilirsiniz. VS Code'da Aç'ı ve ardından web veya masaüstü seçeneğini belirleyin. Bu şekilde başlatıldığında VS Code işlem örneğinize, çekirdeğinize ve çalışma alanı dosya sisteminize eklenir.

    Vs Code'da not defterini açma işlemini gösteren ekran görüntüsü.

Önemli

Bu öğreticinin geri kalanı, öğretici not defterinin hücrelerini içerir. Bunları kopyalayıp yeni not defterinize yapıştırın veya kopyaladıysanız şimdi not defterine geçin.

Bu öğreticide kullanılan verileri indirin

Veri alımı için Azure Veri Gezgini ham verileri bu biçimlerde işler. Bu öğreticide CSV biçiminde kredi kartı istemci veri örneği kullanılmaktadır. Adımlar bir Azure Machine Learning kaynağında gerçekleşir. Bu kaynakta, doğrudan bu not defterinin bulunduğu klasörün altında, önerilen veri adıyla bir yerel klasör oluşturursunuz.

Not

Bu öğretici, Azure Machine Learning kaynak klasörü konumuna yerleştirilen verilere bağlıdır. Bu öğreticide 'yerel', bu Azure Machine Learning kaynağındaki bir klasör konumu anlamına gelir.

  1. Bu görüntüde gösterildiği gibi üç noktanın altındaki Terminali aç'ı seçin:

    Not defteri araç çubuğunda açık terminal aracını gösteren ekran görüntüsü.

  2. Terminal penceresi yeni bir sekmede açılır.

  3. Dizini (cd) bu not defterinin bulunduğu klasörle değiştirdiğinizden emin olun. Örneğin, not defteri get-started-notebooks adlı bir klasördeyse:

    cd get-started-notebooks    # modify this to the path where your notebook is located
    
  4. Verileri işlem örneğine kopyalamak için terminal penceresine şu komutları girin:

    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. Artık terminal penceresini kapatabilirsiniz.

UC Irvine Machine Learning Deposundaki veriler hakkında daha fazla bilgi için bu kaynağı ziyaret edin.

Çalışma alanında tanıtıcı oluşturma

Kodu keşfetmeden önce çalışma alanınıza başvurmak için bir yönteme ihtiyacınız vardır. Çalışma alanında tanıtıcı olarak oluşturursunuz ml_client . Daha sonra kaynakları ve işleri yönetmek için kullanırsınız ml_client .

Sonraki hücreye Abonelik Kimliğinizi, Kaynak Grubu adınızı ve Çalışma Alanı adınızı girin. Bu değerleri bulmak için:

  1. Sağ üst Azure Machine Learning stüdyosu araç çubuğunda çalışma alanı adınızı seçin.
  2. Çalışma alanı, kaynak grubu ve abonelik kimliğinin değerini koda kopyalayın.
  3. Her değeri birer birer kopyalamanız gerekir. Alanı kapatın, değeri yapıştırın ve sonrakine geçin.
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>",
)

Not

MLClient oluşturma çalışma alanına bağlanmaz. İstemci başlatması yavaştır ve ilk kez çağrı yapmasını bekler. Bu, sonraki kod hücresinde gerçekleşir.

Verileri bulut depolama alanına yükleme

Azure Machine Learning, buluttaki depolama konumlarına işaret eden Tekdüzen Kaynak Tanımlayıcıları 'nı (URI) kullanır. URI, not defterlerindeki ve işlerdeki verilere erişmeyi kolaylaştırır. Veri URI biçimleri, web sayfalarına erişmek için web tarayıcınızda kullandığınız web URL'lerine benzer. Örneğin:

  • Genel https sunucusundan verilere erişin: https://<account_name>.blob.core.windows.net/<container_name>/<folder>/<file>
  • Azure Data Lake 2. Nesil'den verilere erişme: abfss://<file_system>@<account_name>.dfs.core.windows.net/<folder>/<file>

Azure Machine Learning veri varlığı, web tarayıcısı yer işaretlerine (sık kullanılanlar) benzer. En sık kullandığınız verilere işaret eden uzun depolama yollarını (URI' ler) hatırlamak yerine, bir veri varlığı oluşturabilir ve bu varlığa kolay bir adla erişebilirsiniz.

Veri varlığı oluşturma, veri kaynağı konumuna bir başvuru ve meta verilerinin bir kopyasını da oluşturur. Veriler mevcut konumunda kaldığından ek depolama maliyetine neden olmaz ve veri kaynağı bütünlüğünü riske atmazsınız. Azure Machine Learning veri depolarından, Azure Depolama'dan, genel URL'lerden ve yerel dosyalardan veri varlıkları oluşturabilirsiniz.

İpucu

Daha küçük veri yüklemeleri için Azure Machine Learning veri varlığı oluşturma işlemi, yerel makine kaynaklarından bulut depolama alanına veri yüklemek için iyi bir şekilde çalışır. Bu yaklaşım, ek araçlara veya yardımcı programlara ihtiyaç duymayı önler. Ancak, daha büyük veri yüklemeleri için ayrılmış bir araç veya yardımcı program (örneğin, azcopy) gerekebilir. azcopy komut satırı aracı verileri Azure Depolama'ya ve Azure Depolama'dan taşır. azcopy hakkında daha fazla bilgi için bkz. AzCopy'yi kullanmaya başlama.

Sonraki not defteri hücresi veri varlığını oluşturur. Kod örneği, ham veri dosyasını belirlenen bulut depolama kaynağına yükler.

Her veri varlığı oluşturduğunuzda, bunun için benzersiz bir sürüm gerekir. Sürüm zaten varsa bir hata alırsınız. Bu kodda, verilerin ilk okuması için "initial" kullanırsınız. Bu sürüm zaten varsa kod yeniden oluşturmaz.

Sürüm parametresini de atlayabilirsiniz. Bu durumda, 1 ile başlayıp oradan artırılarak sizin için bir sürüm numarası oluşturulur.

Bu öğreticide ilk sürüm olarak "initial" adı kullanılır. Üretim makinesi öğrenmesi işlem hatları oluşturma öğreticisi, verilerin bu sürümünü de kullandığından, bu öğreticide yeniden gördüğünüz bir değeri kullanırsınız.

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

Karşıya yüklenen verileri incelemek için sol gezinti menüsünün Varlıklar bölümünde Veriler'i seçin. Veriler karşıya yüklenir ve bir veri varlığı oluşturulur:

Studio'daki verileri gösteren ekran görüntüsü.

Bu veriler kredi kartı olarak adlandırılır. Veri varlıkları sekmesinde, Ad sütununda görebilirsiniz.

Azure Machine Learning veri deposu, Azure'daki mevcut bir depolama hesabına başvurudur. Veri deposu şu avantajları sunar:

  1. Farklı depolama türleriyle etkileşime geçmek için yaygın ve kullanımı kolay bir API:

    • Azure Data Lake Storage
    • Damlacık
    • Dosyalar

    ve kimlik doğrulama yöntemleri.

  2. Ekip olarak çalışırken yararlı veri depolarını bulmanın daha kolay bir yolu.

  3. Betiklerinizde, kimlik bilgisi tabanlı veri erişimi (hizmet sorumlusu/SAS/anahtar) için bağlantı bilgilerini gizlemenin bir yolu.

Not defterindeki verilerinize erişme

Sık erişilen veriler için veri varlıkları oluşturmak istiyorsunuz. Veri deposu URI'sinden veriye erişme bölümünde açıklandığı gibi, dosya sistemi gibi URI'yi kullanarak verilere erişebilirsiniz. Ancak, daha önce belirtildiği gibi, bu URI'leri hatırlamak zor olabilir.

Alternatif olarak, Azure Machine Learning veri depoları için bir dosya sistemi arabirimi sağlayan kitaplığı kullanabilirsiniz azureml-fsspec . Bu, Pandas'taki CSV dosyasına erişmenin daha kolay bir yoludur:

Önemli

Not defteri hücresinde şu kodu yürüterek Python kitaplığını azureml-fsspec Jupyter çekirdeğinize yükleyin:

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

Not defterindeki veri erişimi hakkında daha fazla bilgi için bkz. Etkileşimli geliştirme sırasında Azure bulut depolama alanından verilere erişme.

Veri varlığının yeni bir sürümünü oluşturma

Verilerin bir makine öğrenmesi modelini eğitmeye uygun hale getirmek için biraz hafif temizlemeye ihtiyacı vardır. Şu şekildedir:

  • İki üst bilgi
  • Makine öğrenmesinde özellik olarak kullanılamayabilecek bir istemci kimliği sütunu
  • Yanıt değişkeni adındaki boşluklar

Ayrıca, CSV biçimiyle karşılaştırıldığında, Parquet dosya biçimi bu verileri depolamak için daha iyi bir yoldur. Parquet sıkıştırma sunar ve şemayı korur. Verileri temizlemek ve Parquet biçiminde depolamak için:

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

Bu tablo, önceki bir adımda indirilen özgün default_of_credit_card_clients.csv dosyasındaki verilerin yapısını gösterir. Karşıya yüklenen veriler, burada gösterildiği gibi 23 açıklayıcı değişken ve 1 yanıt değişkeni içerir:

Sütun Adları Değişken Türü Açıklama
X1 Açıklayıcı Verilen kredinin miktarı (NT dolar): Hem bireysel tüketici kredisini hem de aile (ek) kredisini içerir.
X2 Açıklayıcı Cinsiyet (1 = erkek; 2 = kadın).
X3 Açıklayıcı Eğitim (1 = lisansüstü okul; 2 = üniversite; 3 = lise; 4 = diğerleri).
X4 Açıklayıcı Medeni durum (1 = evli; 2 = bekar; 3 = diğerleri).
X5 Açıklayıcı Yaş (yıl).
X6-X11 Açıklayıcı Geçmiş ödemenin geçmişi. Nisan ile Eylül 2005 arasında izlenen geçmiş aylık ödeme kayıtları. -1 = düzgün ödeme; 1 = bir ay boyunca ödeme gecikmesi; 2 = iki ay boyunca ödeme gecikmesi; . . .; 8 = sekiz ay boyunca ödeme gecikmesi; 9 = dokuz ay ve üzeri için ödeme gecikmesi.
X12-17 Açıklayıcı Nisan ile Eylül 2005 arasında fatura ekstresi (NT dolar) tutarı.
X18-23 Açıklayıcı Nisan ile Eylül 2005 arasında önceki ödeme tutarı (NT dolar).
Y Yanıt Varsayılan ödeme (Evet = 1, Hayır = 0)

Ardından veri varlığının yeni bir sürümünü oluşturun. Veriler otomatik olarak bulut depolama alanına yüklenir. Bu sürüm için, bu kod her çalıştığında farklı bir sürüm numarası oluşturulacak bir saat değeri ekleyin.

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

Temizlenen Parquet dosyası en son sürüm veri kaynağıdır. Bu kod önce CSV sürüm sonuç kümesini, ardından Parquet sürümünü gösterir:

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

Kaynakları temizleme

Şimdi diğer öğreticilere devam etmek istiyorsanız Sonraki adımlar'a atlayın.

İşlem örneğini durdurma

Şimdi kullanmayı planlamıyorsanız işlem örneğini durdurun:

  1. Stüdyoda, sol bölmede İşlem'i seçin.
  2. Üst sekmelerde İşlem örnekleri'ni seçin.
  3. Listeden işlem örneğini seçin.
  4. Üst araç çubuğunda Durdur'u seçin.

Tüm kaynakları silme

Önemli

Oluşturduğunuz kaynaklar, diğer Azure Machine Learning öğreticileri ve nasıl yapılır makaleleri için önkoşul olarak kullanılabilir.

Oluşturduğunuz kaynaklardan hiçbirini kullanmayı planlamıyorsanız, ücret ödememek için bunları silin:

  1. Azure portalındaki arama kutusuna Kaynak grupları yazın ve sonuçlardan seçin.

  2. Listeden, oluşturduğunuz kaynak grubunu seçin.

  3. Genel Bakış sayfasında Kaynak grubunu sil'i seçin.

    Azure portalında kaynak grubunu silme seçimlerinin ekran görüntüsü.

  4. Kaynak grubu adını girin. Ardından Sil'i seçin.

Sonraki adımlar

Veri varlıkları hakkında daha fazla bilgi için bkz. Veri varlıkları oluşturma.

Veri depoları hakkında daha fazla bilgi için bkz. Veri depoları oluşturma.

Eğitim betiği geliştirmeyi öğrenmek için sonraki öğreticiyle devam edin: