Bagikan melalui


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

BERLAKU UNTUK:Berlaku untuk.Machine Learning Studio (klasik) Tidak berlaku untuk.Azure Machine Learning

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.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak 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 bernama khusus yang disebut azureml_main.

Jalankan modul Skrip Python

Contoh kode python dalam kotak parameter modul

Parameter input

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 yang dikembalikan. 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 tidak ada'
Vektor indeks Tidak didukung*
Nama kolom nonuntai (karakter) Memanggil str 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 dibuka dari zip oleh kerangka kerja eksekusi pada runtime dan konten ditambahkan ke jalur pustaka 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 Blob

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. Mengambil ekspresi Python sebagai input (sebagai untai (karakter))
  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 hasilkan semua plot ke dalamnya.
  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.

Berikut adalah fungsi Python yang digunakan untuk menghitung skor penting dan memesan 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 berkotak pasir dan tidak mengizinkan akses ke jaringan atau sistem file lokal secara terus-menerus. 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 pengembangan canggih dan dukungan penelusuran kesalahan

Modul Python saat ini tidak mendukung fitur IDE seperti intellisense dan penelusuran kesalahan. Selain itu, jika modul gagal saat runtime, pelacakan tumpukan Python lengkap tersedia. Tetapi harus dilihat 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.

Output bingkai data 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 mengawetkan objek ke dalam array byte dan kemudian mengembalikannya ke dalam 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.