Tutorial: Mengklasifikasikan tingkat keparahan pelanggaran kesehatan restoran dengan Model Builder
Pelajari cara membangun model klasifikasi multikelas menggunakan Model Builder untuk mengategorikan tingkat risiko pelanggaran restoran yang ditemukan selama pemeriksaan kesehatan.
Dalam tutorial ini, Anda akan mempelajari cara:
- Menyiapkan dan memahami data
- Membuat file konfigurasi Model Builder
- Memilih skenario
- Memuat data dari database
- Latih model
- Mengevaluasi model
- Menggunakan model untuk prediksi
Prasyarat
Untuk daftar prasyarat dan instruksi penginstalan, kunjungi panduan penginstalan Model Builder.
Gambaran umum klasifikasi multikelas Model Builder
Sampel ini membuat aplikasi konsol C# .NET Core yang mengategorikan risiko pelanggaran kesehatan menggunakan model pembelajaran mesin yang dibangun dengan Model Builder. Anda dapat menemukan kode sumber untuk tutorial ini di repositori GitHub dotnet/machinelearning-samples .
Membuat aplikasi konsol
- Buat aplikasi konsol C# .NET Core yang disebut "RestaurantViolations".
Menyiapkan dan memahami data
Himpunan data yang digunakan untuk melatih dan mengevaluasi model pembelajaran mesin awalnya berasal dari Skor Keamanan Restoran Departemen Kesehatan Publik San Francisco. Untuk kenyamanan, himpunan data telah dikondensasi untuk hanya menyertakan kolom yang relevan untuk melatih model dan membuat prediksi. Kunjungi situs web berikut untuk mempelajari selengkapnya tentang himpunan data.
Unduh himpunan data Skor Keamanan Restoran dan buka zipnya.
Setiap baris dalam himpunan data berisi informasi mengenai pelanggaran yang diamati selama pemeriksaan dari Departemen Kesehatan dan penilaian risiko terhadap ancaman yang ditimbulkan oleh pelanggaran tersebut terhadap kesehatan dan keselamatan masyarakat.
InspectionType | ViolationDescription | RiskCategory |
---|---|---|
Rutinitas - Tidak Terjadwal | Permukaan kontak makanan yang dibersihkan atau dibersihkan secara tidak memadai | Risiko Sedang |
Kepemilikan Baru | Infestasi vermin risiko tinggi | Risiko Tinggi |
Rutinitas - Tidak Terjadwal | Menyeka kain tidak bersih atau disimpan dengan benar atau sanitizer yang tidak memadai | Risiko Rendah |
- InspectionType: jenis inspeksi. Ini bisa menjadi inspeksi pertama kali untuk pendirian baru, inspeksi rutin, inspeksi keluhan, dan banyak jenis lainnya.
- ViolationDescription: deskripsi pelanggaran yang ditemukan selama pemeriksaan.
- RiskCategory: tingkat keparahan risiko yang ditimbulkan oleh pelanggaran terhadap kesehatan dan keselamatan masyarakat.
adalah label
kolom yang ingin Anda prediksi. Saat melakukan tugas klasifikasi, tujuannya adalah untuk menetapkan kategori (teks atau numerik). Dalam skenario klasifikasi ini, tingkat keparahan pelanggaran diberi nilai risiko rendah, sedang, atau tinggi. Oleh karena itu, RiskCategory adalah label . features
adalah input yang Anda berikan model untuk memprediksi label
. Dalam hal ini, InspectionType dan ViolationDescription digunakan sebagai fitur atau input untuk memprediksi RiskCategory.
Membuat File Konfigurasi Pembangun Model
Saat pertama kali menambahkan Model Builder ke solusi, ia akan meminta Anda untuk membuat mbconfig
file. File mbconfig
melacak semua yang Anda lakukan di Model Builder untuk memungkinkan Anda membuka kembali sesi.
- Di Penjelajah Solusi, klik kanan proyek RestaurantViolations, dan pilih Tambahkan>Model Pembelajaran Mesin....
- Beri nama
mbconfig
proyek RestaurantViolationsPrediction, dan klik tombol Tambahkan .
Memilih skenario
Untuk melatih model Anda, pilih dari daftar skenario pembelajaran mesin yang tersedia yang disediakan oleh Model Builder. Dalam hal ini, skenarionya adalah Klasifikasi data.
- Untuk sampel ini, tugasnya adalah klasifikasi multikelas. Dalam langkah Skenario Pembuat Model, pilih skenario Klasifikasi data .
Muat data
Model Builder menerima data dari database SQL Server atau file lokal dalam csv
format , tsv
, atau txt
.
- Dalam langkah data alat Pembuat Model, pilih SQL Server dari pilihan jenis sumber data.
- Pilih tombol Pilih sumber data .
- Dalam dialog Pilih Sumber Data, pilih File Database Microsoft SQL Server.
- Hapus centang pada kotak centang Selalu gunakan pilihan ini dan klik Lanjutkan.
- Dalam dialog Properti Koneksi , pilih Telusuri dan pilih file RestaurantScores.mdf yang diunduh.
- PilihOK.
- Pilih Pelanggaran dari menu dropdown Tabel .
- Pilih RiskCategory di kolom untuk memprediksi (Label) dropdown.
- Biarkan pilihan default di Opsi data tingkat lanjut.
- Klik tombol Langkah berikutnya untuk berpindah ke langkah latihan di Model Builder.
Latih model
Tugas pembelajaran mesin yang digunakan untuk melatih model klasifikasi masalah dalam tutorial ini adalah klasifikasi multikelas. Selama proses pelatihan model, Model Builder melatih model terpisah menggunakan algoritma dan pengaturan klasifikasi multikelas yang berbeda untuk menemukan model berkinerja terbaik untuk himpunan data Anda.
Waktu yang diperlukan model untuk melatih sebanding dengan jumlah data. Model Builder secara otomatis memilih nilai default untuk Time to train (detik) berdasarkan ukuran sumber data Anda.
- Model Builder menetapkan nilai Waktu untuk melatih (detik) menjadi 60 detik. Pelatihan untuk jangka waktu yang lebih lama memungkinkan Model Builder untuk mengeksplorasi sejumlah besar algoritma dan kombinasi parameter untuk mencari model terbaik.
- Klik Mulai Pelatihan.
Sepanjang proses pelatihan, data kemajuan ditampilkan di bagian Training results
langkah pelatihan.
- Status menampilkan status penyelesaian proses pelatihan.
- Akurasi terbaik menampilkan akurasi model berkinerja terbaik yang ditemukan oleh Model Builder sejauh ini. Akurasi yang lebih tinggi berarti model diprediksi lebih benar pada data pengujian.
- Algoritma terbaik menampilkan nama algoritma berkinerja terbaik yang dilakukan yang ditemukan oleh Model Builder sejauh ini.
- Algoritma terakhir menampilkan nama algoritma yang terakhir digunakan oleh Model Builder untuk melatih model.
Setelah pelatihan selesai mbconfig
, file akan memiliki model yang dihasilkan yang dipanggil RestaurantViolationsPrediction.zip
setelah pelatihan dan dua file C# dengannya:
- RestaurantViolationsPrediction.consumption.cs: File ini memiliki metode publik yang akan memuat model dan membuat mesin prediksi dengannya dan mengembalikan prediksi.
- RestaurantViolationsPrediction.training.cs: File ini terdiri dari alur pelatihan yang dibuat Oleh Model Builder untuk membangun model terbaik termasuk hiperparameter apa pun yang digunakannya.
Klik tombol Langkah berikutnya untuk menavigasi ke langkah evaluasi.
Mengevaluasi model
Hasil dari langkah pelatihan akan menjadi salah satu model yang memiliki performa terbaik. Dalam langkah evaluasi alat Pembuat Model, di bagian Model terbaik , akan berisi algoritma yang digunakan oleh model berkinerja terbaik dalam entri Model bersama dengan metrik untuk model tersebut dalam Akurasi.
Selain itu, di jendela Output Visual Studio, akan ada tabel ringkasan yang berisi model teratas dan metriknya.
Bagian ini juga akan memungkinkan Anda untuk menguji model Anda dengan melakukan satu prediksi. Ini akan menawarkan kotak teks untuk mengisi nilai dan Anda dapat mengklik tombol Prediksi untuk mendapatkan prediksi dari model terbaik. Secara default ini akan diisi oleh baris acak dalam himpunan data Anda.
(Opsional) Mengonsumsi model
Langkah ini akan memiliki templat proyek yang dapat Anda gunakan untuk menggunakan model. Langkah ini bersifat opsional dan Anda dapat memilih metode yang paling sesuai dengan kebutuhan Anda tentang cara melayani model.
- Aplikasi Konsol
- API Web
Aplikasi Konsol
Saat menambahkan aplikasi konsol ke solusi, Anda akan diminta untuk memberi nama proyek.
Beri nama proyek konsol RestaurantViolationsPrediction_Console.
Klik Tambahkan ke solusi untuk menambahkan proyek ke solusi Anda saat ini.
Jalankan aplikasi.
Output yang dihasilkan oleh program akan terlihat mirip dengan cuplikan di bawah ini:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
API Web
Saat menambahkan API web ke solusi Anda, Anda akan diminta untuk memberi nama proyek.
Beri nama RestaurantViolationsPrediction_API proyek API Web.
Klik Tambahkan ke solusi* untuk menambahkan proyek ke solusi Anda saat ini.
Jalankan aplikasi.
Buka PowerShell dan masukkan kode berikut di mana PORT adalah port yang didengarkan aplikasi Anda.
$body = @{ InspectionType="Reinspection/Followup" ViolationDescription="Inadequately cleaned or sanitized food contact surfaces" } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
Jika berhasil, output akan terlihat mirip dengan teks di bawah ini. Output memiliki RiskCategory yang diprediksi sebagai Risiko Sedang dan memiliki skor masing-masing label input - Risiko Rendah, Risiko Tinggi, dan Risiko Sedang.
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Selamat! Anda telah berhasil membangun model pembelajaran mesin untuk mengategorikan risiko pelanggaran kesehatan menggunakan Model Builder. Anda dapat menemukan kode sumber untuk tutorial ini di repositori GitHub dotnet/machinelearning-samples .
Sumber Daya Tambahan:
Untuk mempelajari selengkapnya tentang topik yang disebutkan dalam tutorial ini, kunjungi sumber daya berikut:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk