Öğretici: Restoran durumu ihlallerinin önem derecelerini Model Builder
Sağlık denetimleri sırasında bulunan restoran ihlallerinin risk Model Builder kategorilere ayırmak için Model Builder sınıf sınıflandırma modeli oluşturma hakkında bilgi.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Verileri hazırlama ve anlama
- Bir Model Builder yapılandırma dosyası oluşturma
- Senaryo seçme
- Veritabanından veri yükleme
- Modeli eğitme
- Modeli değerlendirme
- Tahminler için modeli kullanma
Not
Model Builder şu anda Önizlemededir.
Önkoşullar
Önkoşulların ve yükleme yönergelerinin listesi için yükleme kılavuzunu Model Builder ziyaret edin.
Model Builder sınıflandırmaya genel bakış
Bu örnek, sanal makine öğrenmesi modeliyle birlikte bir makine öğrenmesi modeli kullanarak sağlık ihlalleri riskini kategorilere ayıran bir C# .NET Core konsol Model Builder. Bu öğreticinin kaynak kodunu deponun dotnet/machinelearning-samples GitHub bulabilirsiniz.
Konsol uygulaması oluşturma
- "RestaurantViolations" adlı bir C# .NET Core konsol uygulaması oluşturun.
Verileri hazırlama ve anlama
Makine öğrenmesi modelini eğitmek ve değerlendirmek için kullanılan veri kümesi ilk olarak San Francisco Kamu Sağlığı Departmanı Restoran Güvenlik Puanları'dır. Kolaylık olması için veri kümesi, yalnızca modeli eğitip tahminde bulunurken ilgili sütunları içerecek şekilde yoğun hale geldi. Veri kümesi hakkında daha fazla bilgi edinmek için aşağıdaki web sitesini ziyaret edin.
Restoran Güvenlik Puanları veri kümelerini indirin ve sıkıştırmayı açın.
Veri kümesinde yer alan her satır, Sağlık Departmanı'nın incelemesinde gözlemlenen ihlallerle ilgili bilgiler ve bu ihlallerin kamu sağlığı ve güvenliğine yönelik tehdit değerlendirmesi içerir.
| InspectionType | ViolationDescription | RiskCategory |
|---|---|---|
| Rutin - Zamanlanmamış | Yetersiz temizlenmiş veya temizlenmiş besin temas yüzeyleri | Orta Risk |
| Yeni Sahiplik | Yüksek riskli vermin infestation | Yüksek Risk |
| Rutin - Zamanlanmamış | Temizleme, temizleme veya düzgün depolanmış ya da yetersiz temizlemeci | Düşük Risk |
- InspectionType: denetleme türü. Bu yeni bir kuruluş için ilk kez inceleme, rutin bir inceleme, şikayet denetimi ve diğer birçok tür olabilir.
- ViolationDescription: denetleme sırasında bulunan ihlalin açıklaması.
- RiskCategory: İhlalin genel sağlık ve güvenlik açısından oluşturduğu risk önem derecesi.
label, tahmin etmek istediğiniz sütun. Sınıflandırma görevi yaparken amaç bir kategori (metin veya sayısal) atamaktır. Bu sınıflandırma senaryosunda, ihlalin önem derecesine düşük, orta veya yüksek risk değeri atanır. Bu nedenle, etiket RiskCategory'dir. features, modeline tahminde etmek için vermekte olduğu label girişlerdir. Bu durumda InspectionType ve ViolationDescription, RiskCategory'yi tahmin etmek için özellik veya giriş olarak kullanılır.
Yapılandırma Model Builder Oluşturma
Çözüme Model Builder dosya oluşturmanızı mbconfig istenir. Dosya, mbconfig oturumu yeniden açmanız için Model Builder her şeyi takip ediyor.
- Bu Çözüm Gezgini, RestaurantViolations projesine sağ tıklayın ve Add > add Machine Learning Model... öğesini seçin.
- Projeyi
mbconfigRestaurantViolationsPrediction olarak adlandırıp Ekle düğmesine tıklayın.
Senaryo seçme

Modelinizi eğitmek için, kullanıcı tarafından sağlanan kullanılabilir makine öğrenmesi senaryoları listesinden Model Builder. Bu durumda, senaryo Veri sınıflandırması'dır.
- Bu örnek için görev çok sınıflı sınıflandırmadır. Veri sınıflandırma senaryosunu Model Builder senaryosunu seçin.
Verileri yükleme
Model Builder , veya biçimindeki SQL Server yerel bir dosyadan veri csv tsv kabul txt eder.
- Veri kaynağı Model Builder veri adımını veri kaynağı SQL Server seçin.
- Veri kaynağı seç düğmesini seçin.
- Veri Kaynağı Seç iletişim kutusunda Veritabanı Dosyası'Microsoft SQL Server seçin.
- Her zaman bu seçimi kullan onay kutusunun işaretini kaldırın ve Devam'a tıklayın.
- Bağlantı Özellikleri iletişim kutusunda Gözat'ı seçin ve indirilen RestaurantScores.mdf dosyasını seçin.
- Tamam’ı seçin.
- Tablo açılan listesinden İhlaller'i seçin.
- Tahmin etmek için Sütundaki RiskCategory (Etiket) açılan listesinden RiskCategory'yi seçin.
- Gelişmiş veri seçenekleri'nin varsayılan seçimlerini olduğu gibi bırakın.
- Sonraki adım düğmesine tıklayarak bir sonraki adımda eğitim adımına Model Builder.
Modeli eğitme
Bu öğreticide sorun sınıflandırma modelini eğitmek için kullanılan makine öğrenmesi görevi çok sınıflı sınıflandırmadır. Model eğitim işlemi sırasında, Model Builder veri kümeniz için en iyi performansa sahip modeli bulmak için farklı çok sınıflı sınıflandırma algoritmaları ve ayarları kullanarak ayrı modeller eğitebilirsiniz.
Modelin eğiti için gereken süre, veri miktarıyla orantılıdır. Model Builder, veri kaynağınıza göre eğitilen süre (saniye) için varsayılan bir değeri otomatik olarak seçer.
- Model Builder Eğitim süresi (saniye) değerini 60 saniye olarak ayarlar. Daha uzun bir süre eğitim, Model Builder sayıda algoritmayı ve en iyi modeli bulmak için parametrelerin birleşimini keşfetmeye olanak sağlar.
- Eğitimi Başlat'a tıklayın.
Eğitim süreci boyunca, eğitim adımının bölümünde Training results ilerleme verileri görüntülenir.
- Durum, eğitim işleminin tamamlanma durumunu görüntüler.
- En iyi doğruluk, şimdiye kadarki en iyi performansa sahip modelin Model Builder gösterir. Daha yüksek doğruluk, modelin test verileri üzerinde daha doğru tahminde olduğu anlamına gelir.
- En iyi algoritma, şimdiye kadar bu algoritma tarafından gerçekleştirilen en iyi Model Builder adını görüntüler.
- Son algoritma, Model Builder tarafından modeli eğitmek için kullanılan algoritmanın adını görüntüler.
Eğitim tamamlandıktan sonra mbconfig dosyada eğitimden sonra adlı oluşturulan model RestaurantViolationsPrediction.zip ve iki C# dosyası oluşturulur:
- RestaurantViolationsPrediction.consumption.cs: Bu dosyada modeli yükecek, bir tahmin altyapısını oluşturacak ve tahmini geri dönecek genel bir yöntemi vardır.
- RestaurantViolationsPrediction.training.cs: Bu dosya, Model Builder kullanılan hiperparametreler dahil olmak üzere en iyi modeli oluşturmak için kullanılan eğitim işlem hattına sahiptir.
Değerlendirme adımına gitmek için Sonraki adım düğmesine tıklayın.
Modeli değerlendirme
Eğitim adımının sonucu, en iyi performansa sahip bir modeldir. Model Builder aracının değerlendirme adımlarında, En iyi model bölümünde, Model girdisinde en iyi performans gösteren model tarafından kullanılan algoritmayı ve doğrulukta bu modelin ölçümlerini içerir.
Buna ek olarak, Visual Studio çıkış penceresinde en iyi modelleri ve ölçümlerini içeren bir özet tablosu vardır.
Bu bölüm ayrıca tek bir tahmin gerçekleştirerek modelinizi test edin. Değerleri doldurmak için metin kutuları sağlar ve tahmin düğmesine tıklayarak en iyi modelden tahmin elde edersiniz. Varsayılan olarak bu, veri kümenizin rastgele bir satırı tarafından doldurulur.
(İsteğe bağlı) Modeli tüketme
Bu adımda modeli kullanmak için kullanabileceğiniz proje şablonları vardır. Bu adım isteğe bağlıdır ve modelin nasıl hizmet verecekleri hakkında ihtiyaçlarınıza en uygun yöntemi seçebilirsiniz.
- Konsol Uygulaması
- Web API
Konsol Uygulaması
Çözümünüze bir konsol uygulaması eklerken projeyi bir ad olarak girmeniz istenir.
Konsol projesini olarak RestaurantViolationsPrediction_Console.
Projeyi geçerli çözümünüze eklemek için Çözüme ekle'ye tıklayın.
Uygulamayı çalıştırın.
Program tarafından oluşturulan çıktı aşağıdaki kod parçacığına benzer şekilde görünüyor olabilir:
InspectionType: Routine - Unscheduled ViolationDescription: Moderate risk food holding temperature Predicted RiskCategory: Moderate Risk
Web API
Çözümünüze bir web API'si eklerken projeye bir ad girmeniz istenir.
Web API projesini olarak RestaurantViolationsPrediction_API.
Projeyi geçerli çözümünüze eklemek için Çözüme ekle * 'ye tıklayın.
Uygulamayı çalıştırın.
PowerShell'i açın ve aşağıdaki kodu girin; burada PORT, uygulamanın dinlediğini bağlantı noktasıdır.
$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"Başarılı olursa, çıkış aşağıdaki metne benzer şekilde olacaktır. Çıkışta Orta Risk olarak tahmin edilen RiskCategory değeri vardır ve giriş etiketlerinin her biri ( Düşük Risk , Yüksek Risk ve Orta Risk) puanlarına sahip olur.
prediction score ---------- ----- Moderate Risk {0.055566575, 0.058012854, 0.88642055}
Tebrikler! Başarılı bir şekilde bir makine öğrenmesi modeli Model Builder. Bu öğreticinin kaynak kodunu deponun dotnet/machinelearning-samples GitHub bulabilirsiniz.
Ek kaynaklar
Bu öğreticide bahsedilen konular hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları ziyaret edin: