Model Oluşturucu nedir ve nasıl çalışır?

ML.NET Model Builder, özel makine öğrenmesi modelleri oluşturmak, eğitmek ve dağıtmak için sezgisel bir grafik Visual Studio uzantısıdır. Senaryonuza en uygun olanı bulmanıza yardımcı olmak için farklı makine öğrenmesi algoritmalarını ve ayarlarını keşfetmek için otomatik makine öğrenmesi (AutoML) kullanır.

Model Oluşturucusu'nu kullanmak için makine öğrenmesi uzmanlığına ihtiyacınız yoktur. Tek ihtiyacınız olan bazı veriler ve çözmeniz gereken bir sorundur. Model Oluşturucusu modeli .NET uygulamanıza eklemek için kodu oluşturur.

Model Oluşturucusu senaryo ekranı

Model Oluşturucu projesi oluşturma

Model Oluşturucusu'nu ilk kez başlattığınızda, sizden projeyi adlandırmanızı ister ve ardından projenin içinde bir mbconfig yapılandırma dosyası oluşturur. Dosya, mbconfig oturumu yeniden açmanızı sağlamak için Model Builder'da yaptığınız her şeyi izler.

Eğitimden sonra *.mbconfig dosyası altında üç dosya oluşturulur:

  • Model.consumption.cs: Bu dosya, modelin tüketilmesi için oluşturulan işlevin Predict yanı sıra ve ModelOutput şemalarını içerirModelInput.
  • Model.training.cs: Bu dosya, Modeli eğitmek için Model Oluşturucusu tarafından seçilen eğitim işlem hattını (veri dönüşümleri, algoritma, algoritma hiper parametreleri) içerir. Bu işlem hattını kullanarak modelinizi yeniden eğitebilirsiniz.
  • Model.zip: Bu, eğitilen ML.NET modelinizi temsil eden serileştirilmiş bir zip dosyasıdır.

Dosyanızı mbconfig oluştururken bir ad girmeniz istenir. Bu ad tüketim, eğitim ve model dosyalarına uygulanır. Bu durumda, kullanılan ad Model'dir.

Senaryo

Uygulamanız için bir makine öğrenmesi modeli oluşturmak üzere Model Builder'a birçok farklı senaryo getirebilirsiniz.

Senaryo, verilerinizi kullanarak yapmak istediğiniz tahmin türünün açıklamasıdır. Örneğin:

  • Geçmiş satış verilerine göre gelecekteki ürün satış hacmini tahmin edin.
  • Müşteri incelemelerine göre yaklaşımları pozitif veya negatif olarak sınıflandırabilirsiniz.
  • Bir bankacılık işleminin sahte olup olmadığını algılayın.
  • Müşteri geri bildirim sorunlarını şirketinizdeki doğru ekibİye yönlendirin.

Her senaryo, aşağıdakileri içeren farklı bir makine öğrenmesi göreviyle eşler:

Görev Senaryo
İkili sınıflandırma Veri sınıflandırma
Çok sınıflı sınıflandırma Veri sınıflandırma
Resim sınıflandırması Resim sınıflandırması
Metin sınıflandırması Metin sınıflandırması
Regresyon Değer tahmini
Öneri Öneri
Tahmin Tahmin

Örneğin, yaklaşımları pozitif veya negatif olarak sınıflandırma senaryosu ikili sınıflandırma görevinin altına girer.

ML.NET tarafından desteklenen farklı ML Görevleri hakkında daha fazla bilgi için bkz . ML.NET'de makine öğrenmesi görevleri.

Hangi makine öğrenmesi senaryosu benim için uygun?

Model Oluşturucusu'nda bir senaryo seçmeniz gerekir. Senaryo türü, yapmaya çalıştığınız tahmin türüne bağlıdır.

Tablosal

Veri sınıflandırma

Sınıflandırma, verileri kategorilere ayırmak için kullanılır.

Örnek Giriş

Örnek Çıkış

SepalLength SepalWidth Petal Uzunluğu TaçYaprağı Genişliği Türler
5.1 3.5 1.4 0,2 setosa
Tahmin edilen türler
setosa
Değer tahmini

Regresyon görevinin altına giren değer tahmini, sayıları tahmin etmek için kullanılır.

Fiyat tahmini, satış tahmini ve tahmine dayalı bakım gibi regresyon örneklerini gösteren diyagram

Örnek Giriş

Örnek Çıkış

vendor_id rate_code passenger_count trip_time_in_secs trip_distance payment_type fare_amount
CMT 1 1 1271 3.8 CRD 17.5
Tahmin Edilen Ücret
4,5

Öneri

Öneri senaryosu, beğenilerinin ve beğenmemelerinin diğer kullanıcılara ne kadar benzer olduğunu temel alarak belirli bir kullanıcı için önerilen öğelerin listesini tahmin eder.

Bir kullanıcı kümeniz ve satın alınacak öğeler, filmler, kitaplar veya TV programları gibi bir dizi "ürün" ve bir dizi kullanıcının bu ürünlerin "derecelendirmeleri" olduğunda öneri senaryoyu kullanabilirsiniz.

Örnek Giriş

Örnek Çıkış

Kullanıcı Kimliği Ürün Kimliği Rating
1 2 4.2
Tahmin edilen derecelendirme
4,5
Tahmin

Tahmin senaryosunda, bir zaman serisi veya mevsimsel bileşen içeren geçmiş verileri kullanılır.

Bir ürünün talebini veya satışını tahmin etmek için tahmin senaryolarını kullanabilirsiniz.

Örnek Giriş

Örnek Çıkış

Tarih SaleQty
1/1/1970 1000
3 Günlük Tahmin
[1000,1001,1002]

Görüntü işleme

Resim sınıflandırması

Görüntü sınıflandırması, farklı kategorilere ait görüntüleri tanımlamak için kullanılır. Örneğin, farklı arazi veya hayvan türleri ya da üretim kusurları.

Görüntü kümeniz varsa ve görüntüleri farklı kategorilere ayırmak istiyorsanız görüntü sınıflandırma senaryoyu kullanabilirsiniz.

Örnek Giriş

Örnek Çıkış

Ayaktaki pug'un profil görünümü

Tahmin Edilen Etiket
Köpek
Nesne algılama

Nesne algılama, görüntüler içindeki varlıkları bulmak ve kategorilere ayırmak için kullanılır. Örneğin, bir görüntüdeki arabaları ve kişileri bulma ve tanımlama.

Görüntüler farklı türlerde birden çok nesne içerdiğinde nesne algılamayı kullanabilirsiniz.

Örnek Giriş

Örnek Çıkış

Ayaktaki pug'un profil görünümü

Sınırlayıcı kutu ve köpek etiketi ile ayaktaki pug'un profil görünümü

Doğal dil işleme

Metin sınıflandırması

Metin sınıflandırması ham metin girişini kategorilere ayırır.

Bir dizi belgeniz veya açıklamanız varsa ve bunları farklı kategorilere ayırmak istiyorsanız metin sınıflandırma senaryoyu kullanabilirsiniz.

Örnek Giriş

Örnek Çıkış

İnceleyin
Bu bifteği gerçekten sevdim!
Duyarlılık
Pozitif

Ortam

Senaryoya bağlı olarak makine öğrenmesi modelinizi makinenizde yerel olarak veya Azure'daki bulutta eğitebilirsiniz.

Yerel olarak eğitirken, bilgisayar kaynaklarınızın kısıtlamaları (CPU, bellek ve disk) içinde çalışırsınız. Bulutta eğitim yaparken, özellikle büyük veri kümelerinde senaryonuzun taleplerini karşılamak için kaynaklarınızın ölçeğini artırabilirsiniz.

Senaryo Yerel CPU Yerel GPU Azure
Veri sınıflandırma ✔️
Değer tahmini ✔️
Öneri ✔️
Tahmin ✔️
Resim sınıflandırması ✔️ ✔️ ✔️
Nesne algılama ✔️
Metin sınıflandırması ✔️ ✔️

Veri

Senaryonuzu seçtikten sonra Model Builder sizden bir veri kümesi sağlamanızı ister. Veriler senaryonuz için en iyi modeli eğitmek, değerlendirmek ve seçmek için kullanılır.

Model Oluşturucusu adımlarını gösteren diyagram

Model Oluşturucusu .tsv, .csv, .txt ve SQL veritabanı biçimlerindeki veri kümelerini destekler. .txt dosyanız varsa, sütunlar , ;veya \tile ,ayrılmalıdır.

Veri kümesi görüntülerden oluşuyorsa desteklenen dosya türleri ve .pngolur.jpg.

Daha fazla bilgi için bkz . Eğitim verilerini Model Oluşturucusuna yükleme.

Tahmin etmek için çıkışı seçin (etiket)

Veri kümesi, eğitim örneklerinden oluşan satırlardan ve öznitelik sütunlarından oluşan bir tablodur. Her satırda:

  • etiket (tahmin etmek istediğiniz öznitelik)
  • özellikler (etiketi tahmin etmek için giriş olarak kullanılan öznitelikler)

Ev fiyatı tahmin senaryosu için özellikler şunlar olabilir:

  • Evin kare görüntüsü.
  • Yatak odası ve banyo sayısı.
  • Posta kodu.

Etiket, bu kare görüntülerin, yatak odasının ve banyo değerlerinin ve posta kodunun tarihi ev fiyatıdır.

Boyut odaları posta kodu ve fiyat etiketinden oluşan özelliklerle ev fiyatı verilerinin satırlarını ve sütunlarını gösteren tablo

Örnek veri kümeleri

Henüz kendi verileriniz yoksa şu veri kümelerinden birini deneyin:

Senaryo Örnek Veri Etiket Özellikler
Sınıflandırma Satış anomalilerini tahmin edin ürün satış verileri Ürün Satışları Month
Web sitesi açıklamalarının yaklaşımını tahmin etme web sitesi açıklama verileri Etiket (negatif yaklaşımda 0, pozitif olduğunda 1) Açıklama, Yıl
Sahte kredi kartı işlemlerini tahmin edin kredi kartı verileri Sınıf (sahte olduğunda 1, aksi takdirde 0) Amount, V1-V28 (anonimleştirilmiş özellikler)
GitHub deposundaki sorunun türünü tahmin etmek GitHub sorun verileri Alan Başlık, Açıklama
Değer tahmini Taksi ücreti fiyatını tahmin et taksi ücreti verileri Ücret Seyahat süresi, mesafe
Resim sınıflandırması Bir çiçeğin kategorisini tahmin etmek çiçek resimleri Çiçek türü: papatya, karahindiba, güller, ayçiçeği, laleler Görüntü verilerinin kendisi
Öneri Birinin beğeneceği filmleri tahmin et film derecelendirmeleri Kullanıcılar, Filmler Değerlendirmeler

Eğitim

Senaryonuzu, ortamınızı, verilerinizi ve etiketinizi seçtiğinizde Model Oluşturucusu modeli eğiter.

Eğitim nedir?

Eğitim, Model Builder'ın modelinize senaryonuzla ilgili soruları yanıtlamayı öğretdiği otomatik bir süreçtir. Eğitildikten sonra modeliniz daha önce görmediği giriş verileriyle tahminlerde bulunabilir. Örneğin, ev fiyatlarını tahmin ediyorsanız ve yeni bir ev piyasaya çıkıyorsa, satış fiyatını tahmin edebilirsiniz.

Model Builder otomatik makine öğrenmesi (AutoML) kullandığından, eğitim sırasında sizden herhangi bir giriş veya ayarlama gerektirmez.

Ne kadar eğitim almalı?

Model Oluşturucusu, sizi en iyi performans gösteren modeli bulmak üzere birden çok modeli keşfetmek için AutoML'yi kullanır.

Daha uzun eğitim dönemleri, AutoML'nin daha geniş bir ayar yelpazesine sahip daha fazla modeli keşfetmesini sağlar.

Aşağıdaki tabloda, yerel bir makinede örnek veri kümeleri paketi için iyi performans elde etmek için geçen ortalama süre özetlenmiştir.

Veri kümesi boyutu Ortalama eğitim süresi
0 - 10 MB 10 sn
10 - 100 MB 10 dk
100 - 500 MB 30 dk
500 - 1 GB 60 dk
1 GB+ 3+ saat

Bu sayılar yalnızca kılavuz niteliğindedir. Eğitimin tam uzunluğu aşağıdakilere bağlıdır:

  • Modele giriş olarak kullanılan özelliklerin (sütunların) sayısı.
  • Sütun türü.
  • ML görevi.
  • Eğitim için kullanılan makinenin CPU, disk ve bellek performansı.

Genellikle veri kümeleri olarak 100'den fazla satır kullanmanız önerilir ve bu satırlardan daha azı herhangi bir sonuç üretmeyebilir.

Değerlendirin

Değerlendirme, modelinizin ne kadar iyi olduğunu ölçme işlemidir. Model Oluşturucusu, yeni test verileriyle tahminler yapmak için eğitilen modeli kullanır ve ardından tahminlerin ne kadar iyi olduğunu ölçer.

Model Oluşturucusu, eğitim verilerini bir eğitim kümesine ve bir test kümesine böler. Eğitim verileri (%80) modelinizi eğitmek için kullanılır ve test verileri (%20) modelinizi değerlendirmek için geriye tutulur.

Model performansımı anlamak Nasıl yaparım??

Senaryo bir makine öğrenmesi göreviyle eşler. Her ML görevinin kendi değerlendirme ölçümleri kümesi vardır.

Değer tahmini

Değer tahmini sorunları için varsayılan ölçüm RSquared'dir ve RSquared değeri 0 ile 1 arasında değişir. 1 mümkün olan en iyi değerdir veya başka bir deyişle RSquared değeri 1'e ne kadar yakınsa modeliniz o kadar iyi performans gösterir.

Mutlak kayıp, kare kaybı ve RMS kaybı gibi bildirilen diğer ölçümler, modelinizin performansını anlamak ve diğer değer tahmini modelleriyle karşılaştırmak için kullanılabilen ek ölçümlerdir.

Sınıflandırma (2 kategori)

Sınıflandırma sorunları için varsayılan ölçüm doğruluk değeridir. Doğruluk, modelinizin test veri kümesi üzerinde gerçekleştirdığı doğru tahminlerin oranını tanımlar. %100 veya 1,0'a ne kadar yakınsa o kadar iyidir.

Gerçek pozitif oranı ölçen AUC (Eğrinin altındaki alan) gibi bildirilen diğer ölçümler, modellerin kabul edilebilir olması için hatalı pozitif oranın 0,50'den büyük olması gerekir.

Duyarlık ve Yakalama arasındaki dengeyi denetlemek için F1 puanı gibi ek ölçümler kullanılabilir.

Sınıflandırma (3+ kategori)

Çok sınıflı sınıflandırma için varsayılan ölçüm Mikro Doğruluk'tır. Mikro Doğruluk %100 veya 1,0'a ne kadar yakınsa o kadar iyidir.

Çok sınıflı sınıflandırma için bir diğer önemli ölçüm de Makro doğruluğudur. Mikro doğruluğuna benzer şekilde 1,0'a ne kadar yakın olursa o kadar iyidir. Bu iki doğruluk türü hakkında düşünmenin iyi bir yolu şunlardır:

  • Mikro doğruluk: Gelen bilet ne sıklıkta doğru takıma sınıflandırılır?
  • Makro doğruluğu: Ortalama bir ekip için, gelen bilet ekibi için ne sıklıkta doğru olur?

Değerlendirme ölçümleri hakkında daha fazla bilgi

Daha fazla bilgi için bkz . model değerlendirme ölçümleri.

Geliştirin

Modelinizin performans puanı istediğiniz kadar iyi değilse şunları yapabilirsiniz:

  • Daha uzun bir süre eğitin. Daha fazla zaman sayesinde otomatik makine öğrenmesi altyapısı daha fazla algoritma ve ayar ile denemeler gerçekleştirir.

  • Daha fazla veri ekleyin. Bazen yüksek kaliteli bir makine öğrenmesi modelini eğitmek için veri miktarı yeterli olmaz. Bu, özellikle az sayıda örneği olan veri kümelerinde geçerlidir.

  • Verilerinizi dengeleyin. Sınıflandırma görevleri için eğitim kümesinin kategoriler arasında dengelendiğinden emin olun. Örneğin, 100 eğitim örneği için dört sınıfınız varsa ve iki birinci sınıf (etiket1 ve etiket2) 90 kayıt için kullanılıyorsa, ancak diğer iki sınıf (etiket3 ve etiket4) yalnızca kalan 10 kayıtta kullanılıyorsa, dengeli veri eksikliği modelinizin tag3 veya tag4'ü doğru tahmin etmede zorlanabilir.

Tüketim

Değerlendirme aşamasından sonra Model Builder, modeli uygulamanıza eklemek için kullanabileceğiniz bir model dosyası ve kod çıkışı oluşturur. ML.NET modelleri zip dosyası olarak kaydedilir. Modelinizi yükleyip kullanmak için kullanılan kod, çözümünüzde yeni bir proje olarak eklenir. Model Oluşturucusu ayrıca modelinizi çalışır durumda görmek için çalıştırabileceğiniz bir örnek konsol uygulaması ekler.

Buna ek olarak, Model Oluşturucusu size modelinizi kullanan projeler oluşturma seçeneği sunar. Şu anda Model Builder aşağıdaki projeleri oluşturacaktır:

  • Konsol uygulaması: Modelinizden tahminler yapmak için bir .NET konsol uygulaması oluşturur.
  • Web API'si: Modelinizi İnternet üzerinden kullanmanıza olanak tanıyan bir ASP.NET Core Web API'sini oluşturur.

Sırada ne var?

Model Builder Visual Studio uzantısını yükleyin .

Fiyat tahminini veya herhangi bir regresyon senaryolarını deneyin.