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 öğreticide şunların nasıl yapıldığını öğrenirsiniz:

  • 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 Machine Learning modeli prototipleri oluşturma ile başlar. Bu prototip proje aşaması son derece etkileşimlidir. Python etkileşimli konsolu ile bir IDE veya Jupyter not defterinde geliştirme aşamasında size yardımcı olur. Bu öğreticide bu fikirler açıklanmaktadır.

Bu videoda, öğreticideki adımları izleyebilmek için Azure Machine Learning stüdyosu kullanmaya nasıl başlayabileceğiniz gösterilmektedir. Videoda not defteri oluşturma, not defterini kopyalama, işlem örneği oluşturma ve öğretici için gereken verileri indirme gösterilmektedir. Adımlar aşağıdaki bölümlerde de açıklanmıştı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.

  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 bu CSV biçiminde kredi kartı istemci veri örneği kullanılmaktadır. Adımlar bir Azure Machine Learning kaynağında devam eder. Bu kaynakta, doğrudan bu not defterinin bulunduğu klasörün altında, önerilen veri adıyla bir yerel klasör oluşturacağız.

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. Bu not defterinin bulunduğu klasöre (Dizini Değiştir) bağlı olduğunuzdan cd 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 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. 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 incelemeden önce çalışma alanınıza başvurmak için bir yönteme ihtiyacınız vardır. Çalışma alanının tanıtıcısı için oluşturacaksınız 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. Değerleri birer birer kopyalamanız, alanı kapatıp yapıştırmanız ve ardından bir sonrakine devam etmeniz gerekir.
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 işlemi çalışma alanına bağlanmaz. İstemci başlatması gecikmeli. İlk kez arama 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 bir biçime sahiptir. Ö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 olmazsınız 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 boyutlu veri yüklemeleri için Azure Machine Learning veri varlığı oluşturma, yerel makine kaynaklarından bulut depolamaya veri yüklemeleri için iyi çalışır. Bu yaklaşım, ek araçlara veya yardımcı programlara ihtiyaç duymayı önler. Ancak, daha büyük boyutlu bir veri yükleme işlemi 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 bu kaynağı ziyaret edin.

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 "baş harfini" kullanırız. Bu sürüm zaten varsa, yeniden oluşturmayız.

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

Bu öğreticide ilk sürüm olarak "initial" adı kullanılır. Üretim makine öğrenmesi işlem hatları oluşturma öğreticisi verilerin bu sürümünü de kullandığından, burada bu öğreticide yeniden göreceğiniz bir değer kullanırı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 soldaki Veri'yi 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 ve Veri varlıkları sekmesinde Ad sütununda görebiliriz.

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
    • Blob
    • 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

Pandas doğrudan URI'leri destekler- Bu örnekte, Azure Machine Learning Veri Deposundan CSV dosyasının nasıl okunduğu gösterilmektedir:

import pandas as pd

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

Ancak, daha önce belirtildiği gibi, bu URI'leri hatırlamak zor olabilir. Ayrıca, pd.read_csv komutundaki tüm< alt dize> değerlerini kaynaklarınız için gerçek değerlerle el ile değiştirmelisiniz.

Sık erişilen veriler için veri varlıkları oluşturmak istersiniz. Pandas'ta CSV dosyasına erişmenin daha kolay bir yolu aşağıdadır:

Ö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 etkileşimli geliştirme sırasında Azure bulut depolamadan verilere erişme bağlantısını ziyaret edin.

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:

  • iki üst bilgi
  • bir istemci kimliği sütunu; Bu özelliği Machine Learning'de kullanmayacağız
  • yanıt değişkeni adında 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 yol haline gelir. Parquet sıkıştırma sunar ve şemayı korur. Verileri temizlemek ve Parquet'de depolamak için şunu kullanın:

# 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, özgün default_of_credit_card_clients.csv dosyasındaki verilerin yapısını gösterir. Önceki bir adımda indirilen CSV dosyası. 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. Geçmiş aylık ödeme kayıtlarını takip ettik (Nisan ile Eylül 2005 arasında). -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 Response 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 bir saat değeri ekleyin; böylece bu kod her çalıştığında farklı bir sürüm numarası oluşturulur.

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 gezinti alanında İş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 Veri varlıkları oluşturma'yı ziyaret edin.

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: