Menjalankan skrip pembelajaran mesin Python di Machine Learning Studio (klasik)
BERLAKU UNTUK:Machine Learning Studio (klasik)
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.
- Lihat informasi tentang memindahkan proyek pembelajaran mesin dari ML Studio (klasik) ke Azure Machine Learning.
- Pelajari Azure Machine Learning
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
.
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.
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.
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.
Selanjutnya, kami membuat file Hello.zip yang berisi Hello.py:
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.
Output modul menunjukkan bahwa file zip telah dibongkar dan bahwa fungsi print_hello
telah dijalankan.
Mengakses Azure Storage Blob
Anda dapat mengakses data yang disimpan di akun Azure Blob Storage menggunakan langkah-langkah berikut:
- Unduh Paket Azure Blob Storage untuk Python secara lokal.
- Unggah file zip ke ruang kerja Studio (klasik) sebagai himpunan data.
- 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')
- Nonaktifkan Transfer aman yang diperlukan di tab pengaturan Konfigurasi Penyimpanan Anda
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.
Layanan web yang dibuat dari eksperimen ini akan mengambil tindakan berikut:
- Mengambil ekspresi Python sebagai input (sebagai untai (karakter))
- Mengirim ekspresi Python ke penerjemah Python
- 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:
- Alihkan backend ke "AGG" dari perender berbasis Qt default.
- Membuat objek gambar baru.
- Dapatkan sumbu dan hasilkan semua plot ke dalamnya.
- Simpan gambar ke file PNG.
Proses ini diilustrasikan dalam gambar berikut yang membuat matriks plot sebar menggunakan fungsi scatter_matrix di Pandas.
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:
Eksperimen berikut kemudian menghitung dan mengembalikan skor penting fitur dalam himpunan data "Pima Indian Diabetes" di Machine Learning Studio (klasik):
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.