Aracılığıyla paylaş


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

ŞUNLAR IÇIN GEÇERLIDIR: Ş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, doğrulama ve 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'ın birincil arabirimi (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ış bir giriş noktası işlevi aracılığıyla parametre kutusuna girilir.

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

Modül parametre kutusunda örnek python kodu

Giriş parametreleri

Python modülüne yapılan girişler Pandas DataFrames olarak gösterilir. İşlev, azureml_main parametre olarak en fazla iki isteğe bağlı Pandas DataFrame 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 parametresine eşlenir.
  • İkinci giriş (bağlıysa) işlevin ikinci parametresine 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 azureml_main nasıl eşlendiğine ilişkin daha ayrıntılı semantik 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 çıkış bağlantı noktasına değer döndürme

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

Studio veri kümeleri Panda DataFrame'lerle 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 Desteklenme -yen*
Dize olmayan sütun adları Sütun adlarında arama str
Yinelenen sütun adları Sayısal sonek ekleyin: (1), (2), (3) vb.

*Python işlevindeki tüm giriş veri çerçeveleri her zaman 0'dan satır sayısı 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 fark ederseniz, 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 bu modülleri doğrudan içeri aktarabilir.

Örneğin, basit bir "Hello, World" işlevi içeren dosya Hello.py göz önünde bulundurun.

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ında 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ı devre dışı bırakma

Azure portalında 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. Python ifadesini giriş olarak 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. Arka ucu varsayılan Qt tabanlı işleyiciden "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

Bunları farklı görüntülere kaydederek birden fazla rakam 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.

İleri düzey ö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ümesi için özellik önem puanlarını hesaplamak için Scikits-Learn'de grup öğrencilerinin kullanımını göstermektedir. Puanlar, başka bir modele beslenmeden ö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 "Pima Indian Diabetes" veri kümesindeki (klasik) özelliklerin önem puanlarını hesaplar ve döndürür:

Python kullanarak Pima Indian Diabetes veri kümesindeki özellikleri sıralamak için denemeler yapın

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şim izni 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 yalnızca tek bir veri çerçevesini çıkış olarak döndürmesine izin verilir. Şu anda eğitilen 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 sonra 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 zahmetlidir.

Sonraki adımlar

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