Bagikan melalui


Menjalankan skrip pembelajaran mesin Python di Machine Learning Studio (klasik)

BERLAKU UNTUK:Berlaku untuk.Pembelajaran Mesin Studio (klasik) Tidak berlaku untuk.Azure Pembelajaran Mesin

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

Dokumentasi ML Studio (klasik) akan dihentikan dan mungkin tidak akan diperbarui di masa mendatang.

Python adalah alat berharga bagi banyak ilmuwan data. Python digunakan dalam setiap tahap alur kerja pembelajaran mesin yang khas termasuk eksplorasi data, ekstraksi fitur, pelatihan model dan validasi, dan penyebaran.

Artikel ini menjelaskan cara menggunakan modul Jalankan Skrip Python untuk menggunakan kode Python di eksperimen Machine Learning Studio (klasik) dan layanan web Anda.

Menggunakan Modul Jalankan Skrip Python

Antarmuka utama Python di Studio (klasik) adalah melalui modul Jalankan Skrip Python. Ini menerima hingga tiga input dan menghasilkan hingga dua output, mirip dengan modul Jalankan Skrip R. Kode Python dimasukkan ke dalam kotak parameter melalui fungsi titik entri khusus yang dinamai azureml_main.

Modul Jalankan Skrip Python

Contoh kode python dalam kotak parameter modul

Parameter masukan

Input ke modul Python diekspos sebagai Pandas DataFrames. Fungsi azureml_main menerima hingga dua Pandas DataFrames opsional sebagai parameter.

Pemetaan antara port input dan parameter fungsi berdasarkan posisi:

  • Port input pertama yang terhubung dipetakan ke parameter pertama fungsi.
  • Input kedua (jika terhubung) dipetakan ke parameter kedua fungsi.
  • Input ketiga digunakan untuk mengimpor modul Python tambahan.

Semantik yang lebih rinci tentang bagaimana port input dipetakan ke parameter fungsi azureml_main ditunjukkan di bawah ini.

Tabel konfigurasi port input dan tanda tangan Python yang dihasilkan

Nilai pengembalian output

Fungsi azureml_main harus mengembalikan satu Pandas DataFrame yang dikemas dalam urutan Python seperti tuple, daftar, atau array NumPy. Elemen pertama dari urutan ini dikembalikan ke port output pertama modul. Port output kedua modul digunakan untuk visualisasi dan tidak memerlukan nilai balik. Skema ini ditunjukkan di bawah ini.

Memetakan port input ke parameter dan mengembalikan nilai ke port output

Terjemahan jenis data input dan output

Himpunan data studio tidak sama dengan Panda DataFrames. Akibatnya, set data input di Studio (klasik) dikonversi ke Pandas DataFrame, dan DataFrames output dikonversi kembali ke himpunan data Studio (klasik). Selama proses konversi ini, terjemahan berikut juga dilakukan:

Jenis data Python Prosedur penerjemahan studio
Untai (karakter) dan numerik Diterjemahkan apa adanya
Pandas 'NA' Diterjemahkan sebagai 'Nilai yang hilang'
Vektor indeks Tidak didukung*
Nama kolom bukan string Memanggil str pada nama-nama kolom
Buat duplikat nama kolom Tambahkan akhiran numerik: (1), (2), (3), dan sebagainya.

* Semua bingkai data input dalam fungsi Python selalu memiliki indeks numerik 64-bit dari 0 hingga jumlah baris minus 1

Mengimpor modul skrip Python yang ada

Backend yang digunakan untuk mengeksekusi Python didasarkan pada Anaconda, distribusi Python ilmiah yang banyak digunakan. Muncul dengan hampir 200 paket Python paling umum yang digunakan dalam beban kerja yang berpusat pada data. Studio (klasik) saat ini tidak mendukung penggunaan sistem manajemen paket seperti Pip atau Conda untuk memasang dan mengelola pustaka eksternal. Jika Anda perlu menggabungkan pustaka tambahan, gunakan skenario berikut sebagai panduan.

Kasus penggunaan umum adalah menggabungkan skrip Python yang ada ke dalam eksperimen Studio (klasik). Modul Jalankan Skrip Python menerima file zip yang berisi modul Python di port input ketiga. File diekstrak dari arsip ZIP oleh kerangka kerja eksekusi pada runtime dan isi ditambahkan ke jalur perpustakaan penerjemah Python. Fungsi titik entri azureml_main kemudian dapat mengimpor modul-modul ini secara langsung.

Sebagai contoh, pertimbangkan file Hello.py yang mengandung fungsi "Hello, World" sederhana.

Fungsi yang ditentukan pengguna di file Hello.py

Selanjutnya, kami membuat file Hello.zip yang berisi Hello.py:

File zip berisi kode Python yang ditentukan pengguna

Unggah file zip sebagai himpunan data ke Studio (klasik). Kemudian buat dan jalankan eksperimen yang menggunakan kode Python dalam file Hello.zip dengan melampirkannya ke port input ketiga dari modul Jalankan Skrip Python seperti yang ditunjukkan pada gambar berikut.

Contoh eksperimen dengan Hello.zip sebagai input ke modul Jalankan Skrip Python

Kode Python yang ditentukan pengguna diunggah sebagai file zip

Output modul menunjukkan bahwa file zip telah dibongkar dan bahwa fungsi print_hello telah dijalankan.

Output modul memperlihatkan fungsi yang ditentukan pengguna

Mengakses Azure Storage Blobs

Anda dapat mengakses data yang disimpan di akun Azure Blob Storage menggunakan langkah-langkah berikut:

  1. Unduh Paket Azure Blob Storage untuk Python secara lokal.
  2. Unggah file zip ke ruang kerja Studio (klasik) sebagai himpunan data.
  3. Membuat objek BlobService Anda dengan 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. Nonaktifkan Transfer aman yang diperlukan di tab pengaturan Konfigurasi Penyimpanan Anda

Nonaktifkan Transfer aman yang diperlukan di portal Microsoft Azure

Mengoperasionalkan skrip Python

Setiap modul Jalankan Skrip Python yang digunakan dalam eksperimen penilaian disebut ketika dipublikasikan sebagai layanan web. Misalnya, gambar di bawah ini menunjukkan eksperimen penilaian yang berisi kode untuk mengevaluasi satu ekspresi Python.

Ruang kerja Studio untuk layanan web

Python Pandas expression

Layanan web yang dibuat dari eksperimen ini akan mengambil tindakan berikut:

  1. Menerima ekspresi Python sebagai input (sebagai string)
  2. Mengirim ekspresi Python ke penerjemah Python
  3. Mengembalikan tabel yang berisi ekspresi dan hasil yang dievaluasi.

Bekerja dengan visualisasi

Plot yang dibuat menggunakan MatplotLib dapat dikembalikan dengan Jalankan Skrip Python. Namun, plot tidak secara otomatis dialihkan ke gambar seperti saat menggunakan R. Jadi pengguna harus secara eksplisit menyimpan setiap plot ke file PNG.

Untuk menghasilkan gambar dari MatplotLib, Anda harus mengambil langkah-langkah berikut:

  1. Alihkan backend ke "AGG" dari perender berbasis Qt default.
  2. Membuat objek gambar baru.
  3. Dapatkan sumbu dan buat semua plot di atasnya.
  4. Simpan gambar ke file PNG.

Proses ini diilustrasikan dalam gambar berikut yang membuat matriks plot sebar menggunakan fungsi scatter_matrix di Pandas.

Kode untuk menyimpan gambar MatplotLib ke gambar

Klik visualisasikan pada modul Jalankan Skrip Python untuk melihat gambar

Memvisualisasikan plot untuk percobaan sampel menggunakan kode Python

Bisa mengembalikan beberapa gambar dengan menyimpannya ke dalam gambar yang berbeda. Runtime Studio (klasik) mengambil semua gambar dan menggabungkannya untuk visualisasi.

Contoh tingkat lanjut

Lingkungan Anaconda yang dipasang di Studio (klasik) berisi paket umum seperti NumPy, SciPy, dan Scikits-Learn. Paket-paket ini dapat digunakan secara efektif untuk pemrosesan data dalam alur pembelajaran mesin.

Misalnya, eksperimen dan skrip berikut ini menggambarkan penggunaan pelajar ensembel di Scikits-Learn untuk menghitung skor penting fitur untuk himpunan data. Skor dapat digunakan untuk melakukan pilihan fitur yang diawasi sebelum diumpankan ke model lain.

Inilah fungsi Python yang digunakan untuk menghitung skor kepentingan dan mengurutkan fitur berdasarkan skor.

Fungsi untuk memberi peringkat fitur menurut skor

Eksperimen berikut kemudian menghitung dan mengembalikan skor penting fitur dalam himpunan data "Pima Indian Diabetes" di Machine Learning Studio (klasik):

Eksperimen untuk memberi peringkat fitur dalam himpunan data Pima Indian Diabetes menggunakan Python

Visualisasi output modul Jalankan Skrip Python

Batasan

Modul Jalankan Skrip Python saat ini memiliki batasan berikut:

Eksekusi kotak pasir

Runtime Python saat ini terisolasi dan tidak mengizinkan akses ke jaringan atau sistem file lokal dalam cara yang berkelanjutan. Semua file yang disimpan secara lokal diisolasi dan dihapus setelah modul selesai. Kode Python tidak dapat mengakses sebagian besar direktori pada mesin yang dijalankannya, pengecualian adalah direktori saat ini dan subdirektorinya.

Kurangnya dukungan untuk pengembangan dan debugging yang canggih

Modul Python saat ini tidak mendukung fitur IDE seperti Intellisense dan debugging. Selain itu, jika modul gagal saat runtime, pelacakan tumpukan Python lengkap tersedia. Namun, hal tersebut harus diperiksa dalam log output untuk modul. Kami saat ini menyarankan Anda mengembangkan dan melakukan debug skrip Python di lingkungan seperti IPython dan kemudian mengimpor kode ke dalam modul.

Hasil data frame tunggal

Titik masuk Python hanya diizinkan untuk mengembalikan satu bingkai data sebagai output. Saat ini tidak mungkin untuk mengembalikan objek Python sembarang seperti model terlatih langsung kembali ke runtime Studio (klasik). Seperti Jalankan Skrip R, yang memiliki batasan yang sama, dimungkinkan dalam banyak kasus untuk menyimpan objek ke dalam array byte dan kemudian mengembalikannya sebagai bagian dari bingkai data.

Ketidakmampuan untuk menyesuaikan penginstalan Python

Saat ini, satu-satunya cara untuk menambahkan modul Python kustom adalah melalui mekanisme file zip yang dijelaskan sebelumnya. Meskipun ini layak untuk modul kecil, ini rumit untuk modul besar (terutama modul dengan DLL asli) atau sejumlah besar modul.

Langkah berikutnya

Untuk informasi selengkapnya, lihat Pusat Pengembang Python.