Machine Learning Studio'da Python makine öğrenmesi betiklerini yürütme (klasik)
UYGULANDI: Machine Learning Studio (klasik) 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.
- Makine öğrenmesi projelerini ML Studio'dan (klasik) Azure Machine Learning'e taşıma hakkındaki bilgilere bakın.
- Azure Machine Learning hakkında daha fazla bilgi edinin
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.
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.
Çı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ş 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.
Ardından, Hello.py içeren bir dosya Hello.zip oluşturacağız:
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.
Modül çıkışı zip dosyasının paketten çıkarıldığını ve işlevin print_hello
çalıştırıldığını gösterir.
Azure Depolama Bloblarına Erişme
Aşağıdaki adımları kullanarak bir Azure Blob Depolama hesabında depolanan verilere erişebilirsiniz:
- Python için Azure Blob Depolama paketini yerel olarak indirin.
- Zip dosyasını Studio (klasik) çalışma alanınıza veri kümesi olarak yükleyin.
- 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')
- Depolama Yapılandırması ayarı sekmenizde Güvenli aktarım gerekli seçeneğini devre dışı bırakın
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.
Bu denemeden oluşturulan bir web hizmeti aşağıdaki eylemleri gerçekleştirir:
- Giriş olarak python ifadesi alma (dize olarak)
- Python ifadesini Python yorumlayıcısına gönderme
- 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:
- Varsayılan Qt tabanlı işleyiciden arka ucu "AGG" olarak değiştirin.
- Yeni bir şekil nesnesi oluşturun.
- Ekseni alın ve içine tüm çizimleri oluşturun.
- Ş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.
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:
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:
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.