Machine Learning Studio'da Python makine öğrenmesi betiklerini yürütme (klasik)
ŞUNLAR IÇIN GEÇERLIDIR: 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, 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.
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.
Çı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 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.
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ında 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ı 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.
Bu denemeden oluşturulan bir web hizmeti aşağıdaki eylemleri gerçekleştirir:
- Python ifadesini giriş olarak 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:
- Arka ucu varsayılan Qt tabanlı işleyiciden "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.
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:
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:
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.