Zephyrnet Logosu

Azure AutoML Kullanarak Titanik'i Kurtarmak!

Tarih:

Bu makale, Veri Bilimi Blogathon.

Azure Otomatik ML
Kaynak: pixabay.com

Giriş

Son teknoloji makine öğrenimi modelleri ve yapay zekaya sahip makineler, hiperparametrelerin ayarlanması ve daha iyi doğruluk sağlayan modellerin seçilmesi ve bu davranışı yöneten metrikler gibi karmaşık süreçlerden oluşur.

Bu sonuca manuel olarak ulaşmak için birçok

Bir modeli eğitmek için kullanabileceğiniz birçok türde makine öğrenimi algoritması vardır ve çoğu zaman verileriniz ve tahmin gereksinimleriniz için en etkili algoritmayı seçmek giderek daha zor ve karmaşık hale gelir. Ek olarak, verileri temizlememize ve eksik özellik atama, Nan değerlerinden kurtulma ve diğerleri gibi makine öğrenimi modellerine hazırlamamıza yardımcı olan birçok ön işleme adımı gerçekleştiriyoruz.

Gereksinimlerimiz için en iyi modeli bulma arayışında, çok fazla zaman alan algoritma kombinasyonları ve ön işleme dönüşümleri ile oynuyoruz.

Çözüm Mimarisi

Bunu uygulamaya çalışalım.

AutoML Mimarisi
Endişeye gerek yok, ben bile şemadaki bu terimlerin yarısının ne anlama geldiği hakkında hiçbir fikrim yok 😛
Kaynak: Microsoft Learn

AutoML Çözümü

Biz ne bekliyoruz? Başlayalım. 

Şimdi, projem için mükemmel modeli bulmak için çok zaman harcadım, daha iyi doğruluk elde etmek için hiperparametreleri ayarladım ve bana güvenin, yorucu oluyor. Azure Machine Learning yardımıyla, farklı algoritmalar ve ön işleme seçenekleri kullanılarak eğitilen modellerin karşılaştırmasını otomatik hale getiriyoruz.

İşte şok edici sürpriz! Kişiselleştirilmiş özelleştirmeler oluşturmak için stüdyoyla veya mevcut SDK'larla çevrimiçi etkileşim kurmak için görsel arayüzü kullanabiliriz ve bu, en sevdiğiniz dil olan Python'da gelir. Bu iki yöntem arasındaki tek fark, SDK'nın size otomatik makine öğrenimi deneyi için ayarlar üzerinde daha fazla kontrol sağlamasıdır. Yine de görsel arayüzün kullanımı daha kolaydır.

masmavi

Kaynak: securecloudaas

Devasa veri kümesini keşfedeceğiz ve tüm makine öğrenimi sürecinin nasıl otomatik hale geldiğini anlayacağız. Devam etmeden önce, AutoML'nin ne olduğuna bakalım. Bu AutoML alıştırması, birden çok ön işleme tekniğini ve model eğitimi algoritmasını paralel olarak otomatik olarak denemek için Azure Aboneliğinizi ve Azure Machine Learning Studio'yu nasıl kullanacağınız konusunda size rehberlik edecektir.

Burada, verilerimiz için en iyi performans gösteren makine öğrenimi modelini bulmak için bulut bilişimin gücünü keşfediyoruz. Otomatik makine öğrenimi, derinlemesine veri bilimi veya programlama bilgisi olmadan modelleri eğitmenize yardımcı olur. Veri bilimi ve programlama konusunda biraz deneyimi olan kişiler için, algoritma seçimi ve hiperparametre ayarlama sürecini verimli bir şekilde otomatikleştirerek zamandan ve kaynaklardan tasarruf etmenin bir yolunu sunar.

Azure bulutumuzda bir Makine Öğrenimi kaynağı oluşturarak başlayalım. Kaynak blog alanımı, bu blog için olduğu için adlandırdım, ancak istediğiniz gibi adlandırmaktan çekinmeyin. Varsayılan değerleri korudum ve herhangi bir değişiklik yapmadım.

AutoML

Kaynak grubunu oluşturduktan sonra, yukarıda gösterilene benzer bir sayfa almalısınız, sizi Machine Learning Studio'ya götürecek olan Studio Web URL'sine tıklayın veya ziyaret edebilirsiniz. okuyun ve kimlik bilgilerinizle oturum açın.

AutoML

Stüdyo böyle görünüyor ve görebildiğimiz gibi, birçok harika özellik dünya çapındaki geliştiriciler tarafından kullanılıyor ve kullanılıyor. Sol sütunda aşağı kaydırın ve hesaplamaya tıklayın. Burada hesaplama örneğimizi ve hesaplama kümemizi oluşturacağız. Varsayılan değerleri koruyoruz, ancak aboneliğinize göre VM'yi seçebilirsiniz. Standard_DS11_v2'yi (2 çekirdek, 14 GB RAM, 28 GB disk) seçtim, ancak listeden seçim yapmakta özgürsünüz.

AutoML

Kod Parçaları

Kodlama başlasın! 

Compute Instance'ta, Jupyter Notebook'u açan Jupyter seçeneğine tıklayın (Jupyter Lab yerine Jupyter'a tıkladığınızdan emin olun). Ardından, yeni bir not defteri oluşturacağız ve not defterime Automated ML adını verdim. Her seferinde bir kod hücresini not defterinden geçirelim. Azureml-sdk ve azureml-widgets paketlerinin en son sürümüne ek olarak, bu not defterinde kodu çalıştırmak için azureml-train-automl paketine ihtiyacımız var.

!pip show azureml-train-automl

Gerekli SDK yüklendikten sonra çalışma alanımıza bağlanabiliriz.

azureml.core'dan azureml.core'u içe aktarın Workspace'i içe aktarın ws = Workspace.from_config() print("Azure ML'yi kullanmaya hazır {} {} ile çalışmak için)".format(azureml.core.VERSION, ws.name))

Eğitim verilerini defterimize yüklememiz gerekiyor. Aşağıdaki kod karmaşık görünüyor, ancak veri deposunda bir Titanic veri kümesi arıyor. Mevcut değilse, verileri yükleyin ve veri deposunda saklayın.

AutoML Verilerini Toplama

azureml.core'dan import Dataset default_ds = ws.get_default_datastore() if 'Titanic dataset' ws.datasets içinde değilse: default_ds.upload_files(files=['./Titanic.csv'], # Titanic csv dosyasını yükleyin target_path='Titanic -data/', # Veri deposundaki bir klasör yoluna koy overwrite=True, # Aynı adlı mevcut dosyaları değiştir show_progress=True) #Veri deposundaki yoldan bir tablo veri kümesi oluştur tab_data_set = Dataset.Tabular.from_delimited_files( path=(default_ds, 'Titanic-data/*.csv')) # Tablolu veri kümesini kaydedin deneyin: tab_data_set = tab_data_set.register(workspace=ws, name='Titanic dataset', description='Titanic data', tags = { 'format':'CSV'}, create_new_version=True) print('Veri kümesi kayıtlı.') hariç İstisna as ex: print(ex) else: print('Veri kümesi zaten kayıtlı.') # Veri kümesini eğitim ve doğrulama alt kümelerine böl diabetes_ds = ws.datasets.get("Titanik veri kümesi") train_ds, test_ds = diabetes_ds.random_split(percentage=0.7, seed=123) print("Veriler hazır!")

Daha önce oluşturduğumuz kümeyi hatırlıyor musunuz? Peki, buraya bağlanalım.

azureml.core.compute'tan import ComputeTarget training_cluster = ComputeTarget(workspace=ws, name="blog-cluster")

En önemli yapılandırma ayarlarından biri, model performansının değerlendirilmesi gereken ölçüdür. Belirli bir model görevi türü (sınıflandırma veya regresyon) için otomatik makine öğrenimi tarafından hesaplanan metriklerin bir listesini aşağıdaki gibi alabilirsiniz:

azureml.train.automl.utilities'i automl_utils.get_primary_metrics('classification') içinde metrik için automl_utils olarak içe aktarın: print(metric)

AutoML Kurulumu

Optimize etmek istediğiniz metriğe (bu örnekte, AUC_weighted) karar verdikten sonra, otomatikleştirilmiş makine öğrenimi çalıştırmasını yapılandırabilirsiniz. Bu basit bir veri seti olduğu için iterasyon sayısını 4 olarak tuttum. Bu basit bir veri seti olduğu için iterasyon sayısını 4 olarak tuttum.

azureml.train.automl'den import AutoMLConfig automl_config = AutoMLConfig(name='Automated ML Experiment', task='classification', compute_target=training_cluster, training_data = train_ds, validation_data = test_ds, label_column_name='Survived', yinelemeler=4, birincil_metrik = 'AUC_weighted', max_concurrent_iterations=2, featurization='auto' ) print("Otomatik ML çalışması için hazır.")

Tüm yapılandırmalar ayarlandığında, artık denememizi çalıştırmaya hazırız. show_output = False olarak ayarladım, ancak modelin gerçek zamanlı olarak çalıştığını görmek için bunu True olarak ayarlayabilirsiniz.

azureml.core.experiment'tan deneyi içe aktar azureml.widgets'tan deneyi içe aktar RunDetails print('Otomatik ML denemesi gönderiliyor...') automl_experiment = Deney(ws, 'Titanic-automl-sdk') automl_run = automl_experiment.submit(automl_config) RunDetails( automl_run).show() automl_run.wait_for_completion(show_output=False)

Çıktı

Aşağıda yapıldığı gibi en iyi performansı alabiliriz ve ayrıca en iyi çalıştırılan dönüşümü ve en iyi çalıştırılan metrikleri de görüntüleyebiliriz. Kod not defterinde mevcut değil, ancak deneyebilirsiniz. Kodu burada paylaşacağım.

print('nEn İyi Çalıştırma Dönüşümleri:'); , metrik)

Son olarak, en iyi performans gösteren modeli bulduktan sonra onu kaydedebilirsiniz.

Karşılaşılan Zorluklar

Hiç çocuk oyuncağı değildi

masmavi otomatik
Kaynak: https://www.sage.com/en-us/blog/business-growth-challenges/

Başlangıçta, yerel sistemimde AutoML'yi denerken, Azure aboneliğimi Visual Studio Code'a bağlarken birkaç sorun yaşadım. Bir çözüm bulamadım, bu yüzden Python not defterimi oluşturmak için Azure Cloud'a geçtim. Uç noktalara ve abonelik anahtarına ihtiyaç duyan bir JSON dosyası oluşturma ihtiyacını ortadan kaldırdığı için mükemmel olduğu ortaya çıktı.

Bazı kod hücrelerinin çıktılarını anlamak biraz zordu. Çıktı, bu alan hakkında çok az bilgisi olan veya hiç bilgisi olmayan biri için anlamsız görünebilir. Örneğin, AutoML denemesini gönderdiğimizde ve deneme çalıştığında, kullanılan modeller, bağımlılıklar ve sürümleri dahil olmak üzere kapsamlı bir değerler listesi alırız. Çıktıyı anlamak ve anlamak için biraz zaman harcamak zorunda kaldım.

Sonuç

Bu size nasıl fayda sağlar?

Azure AutoML'nin tek yaptığı, veri bilimcilerin ve geliştiricilerin yüksek kaliteli modelleri daha hızlı ve %100 güvenle oluşturmasına, dağıtmasına ve yönetmesine yardımcı olmaktır. Bu kadar büyük ve karmaşık operasyonlar yürürlükteyken, sektörler mümkün olan en kısa sürede ve güvenilir bir şekilde eş zamanlı olarak üretime alınabilecek bir çözüme ihtiyaç duyuyor.

  1. Açık kaynak birlikte çalışabilirlik
  2. hızlı model eğitimi ve devreye alma
  3. entegre araçlar
Kaynak: https://www.creative.onl/payrollindex/employee-benefits-management-platforms/

Tüm bu özellikler endüstri standartlarını karşılamayı mümkün kılar. Bu araç, model oluşturmadan eğitime ve dağıtmaya kadar tüm makine öğrenimi sürecini destekleyen bir geliştirme deneyimi olan stüdyo yeteneğiyle üretkenliği artırmaya yardımcı olur.

Farklı modeller, farklı girdi veri biçimleri gerektirir; özellik mühendisliğini kullanarak ve hiperparametreleri ayarlayarak görüntü, metin veya tablo modelleri için otomatik makine öğrenimi ile doğru modeller geliştirerek bu sorunu ortadan kaldırıyoruz. Jupyter notebookları tercih etmiyor musunuz? Üzülmeyin. Yerel eğitimden bulut eğitimine sorunsuz bir şekilde geçmek ve güçlü bulut tabanlı CPU ve GPU kümeleriyle ölçeği büyütmek veya küçültmek için Visual Studio Code'u kullanabiliriz.

Özetlemek gerekirse, neden geleneksel iş akışı yerine AutoML'yi tercih edebileceğinize dair birkaç önemli çıkarım:

doğrulamak için yeniden üretilebilir ve otomatikleştirilmiş iş akışlarıyla makine öğrenimi modellerini değerlendirebiliriz.

  1. modelin adaleti,
  2. açıklanabilirlik,
  3. hata analizi,
  4. nedensel analiz,
  5. model performansı,
  6. keşifsel veri analizi,
  7. Paydaşları dahil etmek ve uyumluluk incelemesini kolaylaştırmak için teknik ve teknik olmayan kitleler için sorumlu yapay zeka metriklerini bağlamsallaştırın.

İnan bana, bazı satırları anlamak biraz çaba gerektirdi. Moralinizi bozmayın; içinden geçmek zorundasın.

Benim açımdan bu kadar. Mutlu Kodlama!
-Manav Mandal (Microsoft Learn Öğrenci Elçisi)
LinkedIn
Instagram

Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

spot_img

En Son İstihbarat

spot_img