Machine Learning Studio'da Python makine öğrenmesi betiklerini yürütme (klasik)

UYGULANDI:Şunun için geçerlidir. Machine Learning Studio (klasik) için geçerli değildir.Azure Machine Learning

Önemli

Machine Learning Stüdyosu (klasik) desteği 31 Ağustos 2024'te sona erecektir. Bu tarihe kadar Azure Machine Learning'e geçmenizi öneririz.

1 Aralık 2021'den başlayarak artık yeni Machine Learning Stüdyosu (klasik) kaynakları oluşturamayacaksınız. 31 Ağustos 2024'e kadar mevcut Machine Learning Stüdyosu (klasik) kaynaklarını kullanmaya devam edebilirsiniz.

ML Stüdyosu (klasik) belgeleri kullanımdan kaldırılacak ve gelecekte güncelleştirilmeyecektir.

Python, birçok veri bilimcisinin araç sandığında değerli bir araçtır. Veri keşfi, özellik ayıklama, model eğitimi ve doğrulaması ile dağıtım gibi tipik makine öğrenmesi iş akışlarının her aşamasında kullanılır.

Bu makalede, Machine Learning Studio (klasik) denemelerinizde ve web hizmetlerinizde Python kodunu kullanmak için Python Betiği Yürütme modülünü nasıl kullanabileceğiniz açıklanmaktadır.

Python Betiği Yürütme modülünü kullanma

Studio'da Python için birincil arabirim (klasik), Python Betiği Yürütme modülünden geçer. En fazla üç giriş kabul eder ve R Betiği Yürütme modülüne benzer şekilde en fazla iki çıkış üretir. Python kodu, adlı azureml_mainözel adlandırılmış giriş noktası işlevi aracılığıyla parametre kutusuna girilir.

Python Betiği yürütme modülü

Modül parametre kutusunda örnek python kodu

Giriş parametreleri

Python modülüne yapılan girişler Pandas DataFrames olarak kullanıma sunulur. işlevi en azureml_main fazla iki isteğe bağlı Pandas DataFrame'i parametre olarak kabul eder.

Giriş bağlantı noktaları ile işlev parametreleri arasındaki eşleme konumsaldır:

  • İlk bağlı giriş bağlantı noktası, işlevin ilk parametresiyle eşlenir.
  • İkinci giriş (bağlıysa) işlevin ikinci parametresiyle eşlenir.
  • Üçüncü giriş, ek Python modüllerini içeri aktarmak için kullanılır.

Giriş bağlantı noktalarının işlevin parametrelerine nasıl eşlendiğine ilişkin azureml_main daha ayrıntılı semantik bilgiler aşağıda gösterilmiştir.

Giriş bağlantı noktası yapılandırmaları ve sonuçta elde edilen Python imzası tablosu

Çıkış dönüş değerleri

İşlevin azureml_main tanımlama grubu, liste veya NumPy dizisi gibi bir Python dizisinde paketlenmiş tek bir Pandas DataFrame döndürmesi gerekir. Bu dizinin ilk öğesi modülün ilk çıkış bağlantı noktasına döndürülür. Modülün ikinci çıkış bağlantı noktası görselleştirmeler için kullanılır ve dönüş değeri gerektirmez. Bu düzen aşağıda gösterilmiştir.

Giriş bağlantı noktalarını parametrelere eşleme ve değeri çıkış bağlantı noktasına döndürme

Giriş ve çıkış veri türlerinin çevirisi

Studio veri kümeleri Panda DataFrames ile aynı değildir. Sonuç olarak, Studio'daki (klasik) giriş veri kümeleri Pandas DataFrame'e, çıktı DataFrame'leri ise Studio (klasik) veri kümelerine geri dönüştürülür. Bu dönüştürme işlemi sırasında aşağıdaki çeviriler de gerçekleştirilir:

Python veri türü Studio çeviri yordamı
Dizeler ve sayısallar Olduğu gibi çevrildi
Pandas 'NA' 'Eksik değer' olarak çevrildi
Dizin vektörleri Desteklenmeyen*
Dize olmayan sütun adları Sütun adlarında arama str
Yinelenen sütun adları Sayısal sonek ekleyin: (1), (2), (3) ve benzeri.

*Python işlevindeki tüm giriş veri çerçeveleri her zaman 0'dan 1 satır eksi 1'e kadar 64 bit sayısal dizine sahiptir

Mevcut Python betik modüllerini içeri aktarma

Python'ı yürütmek için kullanılan arka uç, yaygın olarak kullanılan bir bilimsel Python dağıtımı olan Anaconda'yı temel alır. Veri odaklı iş yüklerinde kullanılan en yaygın 200'e yakın Python paketiyle birlikte gelir. Studio (klasik) şu anda dış kitaplıkları yüklemek ve yönetmek için Pip veya Conda gibi paket yönetim sistemlerinin kullanımını desteklememektedir. Ek kitaplıklar eklemeniz gerektiğini düşünüyorsanız, kılavuz olarak aşağıdaki senaryoyu kullanın.

Yaygın bir kullanım örneği, mevcut Python betiklerini Studio (klasik) denemelerine eklemektir. Python Betiği Yürütme modülü, üçüncü giriş bağlantı noktasında Python modülleri içeren bir zip dosyasını kabul eder. Dosyanın sıkıştırması çalışma zamanında yürütme çerçevesi tarafından çıkarılır ve içindekiler Python yorumlayıcısının kitaplık yoluna eklenir. Giriş azureml_main noktası işlevi daha sonra bu modülleri doğrudan içeri aktarabilir.

Örneğin, basit bir "Hello, World" işlevi içeren dosya Hello.py düşünün.

Hello.py dosyasında kullanıcı tanımlı işlev

Ardından, Hello.py içeren bir dosya Hello.zip oluşturacağız:

Kullanıcı tanımlı Python kodu içeren zip dosyası

Zip dosyasını veri kümesi olarak Studio'ya (klasik) yükleyin. Ardından, aşağıdaki görüntüde gösterildiği gibi Python Betiği Yürütme modülünün üçüncü giriş bağlantı noktasına ekleyerek Hello.zip dosyasındaki Python kodunu kullanan bir deneme oluşturun ve çalıştırın.

Python Betiği Yürütme modülüne giriş olarak Hello.zip ile örnek deneme

Zip dosyası olarak yüklenen kullanıcı tanımlı Python kodu

Modül çıkışı zip dosyasının paketten çıkarıldığını ve işlevin print_hello çalıştırıldığını gösterir.

Kullanıcı tanımlı işlevi gösteren modül çıkışı

Azure Depolama Bloblarına Erişme

Aşağıdaki adımları kullanarak bir Azure Blob Depolama hesabında depolanan verilere erişebilirsiniz:

  1. Python için Azure Blob Depolama paketini yerel olarak indirin.
  2. Zip dosyasını Studio (klasik) çalışma alanınıza veri kümesi olarak yükleyin.
  3. Ile BlobService nesnenizi oluşturma 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. Depolama Yapılandırması ayarı sekmenizde Güvenli aktarım gerekli seçeneğini devre dışı bırakın

Azure portal Güvenli aktarımı devre dışı bırakma

Python betiklerini kullanıma hazır hale getirme

Puanlama denemesinde kullanılan python betiği yürütme modülleri, web hizmeti olarak yayımlandığında çağrılır. Örneğin, aşağıdaki görüntüde tek bir Python ifadesini değerlendirme kodunu içeren bir puanlama denemesi gösterilmektedir.

Web hizmeti için Studio çalışma alanı

Python Pandas ifadesi

Bu denemeden oluşturulan bir web hizmeti aşağıdaki eylemleri gerçekleştirir:

  1. Giriş olarak python ifadesi alma (dize olarak)
  2. Python ifadesini Python yorumlayıcısına gönderme
  3. Hem ifadeyi hem de değerlendirilen sonucu içeren bir tablo döndürür.

Görselleştirmelerle çalışma

MatplotLib kullanılarak oluşturulan çizimler Python Betiğini Yürüt tarafından döndürülebilir. Ancak çizimler R kullanılırken olduğu gibi resimlere otomatik olarak yeniden yönlendirilmiyor. Bu nedenle kullanıcının çizimleri PNG dosyalarına açıkça kaydetmesi gerekir.

MatplotLib'ten görüntü oluşturmak için aşağıdaki adımları gerçekleştirmeniz gerekir:

  1. Varsayılan Qt tabanlı işleyiciden arka ucu "AGG" olarak değiştirin.
  2. Yeni bir şekil nesnesi oluşturun.
  3. Ekseni alın ve içine tüm çizimleri oluşturun.
  4. Şekli bir PNG dosyasına kaydedin.

Bu işlem, Pandas'taki scatter_matrix işlevini kullanarak dağılım çizim matrisi oluşturan aşağıdaki görüntülerde gösterilmiştir.

MatplotLib rakamlarını resimlere kaydetme kodu

Şekilleri görüntülemek için Python Betiği Yürütme modülünde görselleştir'e tıklayın

Python kodunu kullanarak örnek deneme için çizimleri görselleştirme

Birden fazla rakamı farklı görüntülere kaydederek geri döndürmek mümkündür. Studio (klasik) çalışma zamanı tüm görüntüleri alır ve görselleştirme için birleştirir.

Gelişmiş örnekler

Studio'da (klasik) yüklenen Anaconda ortamı NumPy, SciPy ve Scikits-Learn gibi yaygın paketleri içerir. Bu paketler bir makine öğrenmesi işlem hattında veri işleme için etkili bir şekilde kullanılabilir.

Örneğin, aşağıdaki deneme ve betik, bir veri kümesinin özellik önem puanlarını hesaplamak için Scikits-Learn grup öğrencilerinin kullanımını göstermektedir. Puanlar, başka bir modele aktarılmadan önce denetimli özellik seçimi gerçekleştirmek için kullanılabilir.

Önem puanlarını hesaplamak ve puanları temel alarak özellikleri sıralamak için kullanılan Python işlevi aşağıdadır:

Özellikleri puanlara göre sıralama işlevi

Aşağıdaki deneme daha sonra Machine Learning Studio'daki (klasik) "Pima Indian Diabetes" veri kümesindeki özelliklerin önem puanlarını hesaplar ve döndürür:

Python kullanarak Pima Indian Diabetes veri kümesindeki özellikleri sıralama denemesi

Python Betiği Yürütme modülünün çıktısının görselleştirmesi

Sınırlamalar

Python Betiği Yürütme modülü şu anda aşağıdaki sınırlamalara sahiptir:

Korumalı yürütme

Python çalışma zamanı şu anda korumalıdır ve ağa veya yerel dosya sistemine kalıcı bir şekilde erişime izin vermez. Yerel olarak kaydedilen tüm dosyalar yalıtılır ve modül tamamlandıktan sonra silinir. Python kodu, üzerinde çalıştığı makinedeki dizinlerin çoğuna erişemez; özel durum geçerli dizin ve alt dizinleridir.

Gelişmiş geliştirme ve hata ayıklama desteği eksikliği

Python modülü şu anda intellisense ve hata ayıklama gibi IDE özelliklerini desteklememektedir. Ayrıca modül çalışma zamanında başarısız olursa tam Python yığın izlemesi kullanılabilir. Ancak modülün çıkış günlüğünde görüntülenmelidir. Şu anda IPython gibi bir ortamda Python betikleri geliştirmenizi ve hatalarını ayıklamanızı ve ardından kodu modüle içeri aktarmanızı öneririz.

Tek veri çerçevesi çıkışı

Python giriş noktasının çıkış olarak yalnızca tek bir veri çerçevesi döndürmesine izin verilir. Şu anda eğitilmiş modeller gibi rastgele Python nesnelerini doğrudan Studio (klasik) çalışma zamanına döndürmek mümkün değildir. Aynı sınırlamaya sahip olan R Betiğini Yürüt gibi, birçok durumda nesneleri bayt dizisine almak ve bunu bir veri çerçevesi içinde döndürmek mümkündür.

Python yüklemesini özelleştirememe

Şu anda özel Python modülleri eklemenin tek yolu daha önce açıklanan zip dosyası mekanizmasını kullanmaktır. Bu küçük modüller için uygun olsa da, büyük modüller (özellikle yerel DLL'leri olan modüller) veya çok sayıda modül için hantaldır.

Sonraki adımlar

Daha fazla bilgi için bkz. Python Geliştirici Merkezi.