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

  1. 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.

  1. Di Penjelajah Solusi, klik kanan proyek RestaurantViolations, dan pilih Tambahkan>Model Pembelajaran Mesin....
  2. Beri nama mbconfig proyek RestaurantViolationsPrediction, dan klik tombol Tambahkan .

Memilih skenario

Layar Skenario Pembuat Model

Untuk melatih model Anda, pilih dari daftar skenario pembelajaran mesin yang tersedia yang disediakan oleh Model Builder. Dalam hal ini, skenarionya adalah Klasifikasi data.

  1. 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 csvformat , tsv, atau txt .

  1. Dalam langkah data alat Pembuat Model, pilih SQL Server dari pilihan jenis sumber data.
  2. Pilih tombol Pilih sumber data .
    1. Dalam dialog Pilih Sumber Data, pilih File Database Microsoft SQL Server.
    2. Hapus centang pada kotak centang Selalu gunakan pilihan ini dan klik Lanjutkan.
    3. Dalam dialog Properti Koneksi , pilih Telusuri dan pilih file RestaurantScores.mdf yang diunduh.
    4. PilihOK.
  3. Pilih Pelanggaran dari menu dropdown Tabel .
  4. Pilih RiskCategory di kolom untuk memprediksi (Label) dropdown.
  5. Biarkan pilihan default di Opsi data tingkat lanjut.
  6. 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.

  1. 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.
  2. 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.

  1. Beri nama proyek konsol RestaurantViolationsPrediction_Console.

  2. Klik Tambahkan ke solusi untuk menambahkan proyek ke solusi Anda saat ini.

  3. 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.

  1. Beri nama RestaurantViolationsPrediction_API proyek API Web.

  2. Klik Tambahkan ke solusi* untuk menambahkan proyek ke solusi Anda saat ini.

  3. Jalankan aplikasi.

  4. 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"
    
  5. 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: