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

ML.NET Model Builder, özel makine öğrenimi modellerini derlemek, eğitme ve dağıtmak için sezgisel bir grafik Visual Studio uzantısıdır.

Model Oluşturucu, senaryonuza en uygun olanı bulmanıza yardımcı olmak üzere farklı makine öğrenimi algoritmalarını ve ayarlarını araştırmak için otomatik makine öğrenimi (Otomatikml) kullanır.

Model Oluşturucuyu kullanmak için Machine Learning uzmanlığına ihtiyacınız yoktur. Bazı veriler ve çözübir sorun var. Model Oluşturucu, modeli .NET uygulamanıza eklemek için kodu oluşturur.

Model Oluşturucu senaryoları

Not

Model Oluşturucu Şu anda önizleme aşamasındadır.

Model Oluşturucu oluşturma Project

Model oluşturucuyu ilk kez başlattığınızda, projeyi girmenizi ister. Bu işlem mbconfig , projenin içinde bir yapılandırma dosyası oluşturur.

mbconfigDosya, oturum açmanızı sağlamak Için model Oluşturucu 'da yaptığınız her şeyi izler.

Eğitim sonrasında, *. mbconfig dosyası altında üç dosya oluşturulur:

  • Model. tüketim. CS: Bu dosya, ModelInput ve ModelOutput şemaların yanı sıra Predict modeli tüketmek için oluşturulan işlevi içerir.
  • Model. eğitim. CS: Bu dosya modeli eğitmek için model Oluşturucu tarafından seçilen eğitim işlem hattını (veri dönüştürmeleri, algoritma, algoritma hiper parametreleri) içerir. Bu işlem hattını, modelinize yeniden eğitim için kullanabilirsiniz.
  • Model.zip: bu, eğitilen ML .net modelinizi temsil eden seri hale getirilmiş bir zip dosyasıdır.

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

Senaryo

Uygulamanız için bir makine öğrenimi modeli oluşturmak için model Oluşturucu 'ya birçok farklı senaryo getirebilirsiniz.

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

  • geçmiş satış verilerine göre gelecek ürün satış hacmini tahmin edin
  • müşterilerin gözden geçirmeleri temelinde olumlu veya olumsuz şekilde sınıflandırın
  • Bankacılık işleminin sahte olup olmadığını Algıla
  • Müşteri geri bildirim sorunlarını şirketinizdeki doğru ekibe yönlendirin

her senaryo, şunları içeren farklı bir Machine Learning göreviyle eşlenir:

  • İkili sınıflandırma
  • Birden çok Lass sınıflandırması
  • Regresyon
  • Kümeleme
  • Anormallik algılama
  • Sıralamasına
  • Öneri
  • Tahmin etme

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

ML .net tarafından desteklenen farklı ML görevleri hakkında daha fazla bilgi için bkz. ML .net içindeki makine öğrenimi görevleri.

Hangi makine öğrenimi senaryosu bana uygun?

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

Veri sınıflandırma

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

Sahtekarlık algılama, risk azaltma ve uygulama filtreleme dahil olmak üzere ikili sınıflandırma örneklerini gösteren diyagram

Belge ve ürün sınıflandırması, destek bileti yönlendirmesi ve müşteri sorunu önceliklendirmesi dahil birden çok Lass sınıflandırması örnekleri

Değer tahmini

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

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

Resimleri sınıflandırma

Görüntü sınıflandırması, farklı kategorilerin görüntülerini belirlemek için kullanılır. Örneğin, farklı türlerde terur veya hayvanlar veya üretim kusurları vardır.

Bir görüntü kümesine sahipseniz ve görüntüleri farklı kategorilerde sınıflandırmak istiyorsanız resim sınıflandırması senaryosunu kullanabilirsiniz.

Nesne algılama

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

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

Öneri

Öneri senaryosu, belirli bir kullanıcı için önerilen öğelerin bir listesini, beğenilmesi ve benzemelerine bağlı olarak diğer kullanıcılara da tahmin eder.

Kullanıcı kümesi ve satın alma, Filmler, kitaplar veya TV programları gibi bir dizi kullanıcıya ve bu ürünlerin bir Kullanıcı ' "derecelendirmesine" sahip olduğunuzda öneri senaryosunu kullanabilirsiniz.

Ortam

Senaryonuza bağlı olarak, makinenizde veya Azure 'daki bulutta makine öğrenimi modelinizi yerel olarak eğitebilirsiniz.

Yerel olarak eğitedığınızda, bilgisayar kaynaklarınızın (CPU, bellek ve disk) kısıtlamaları dahilinde çalışırsınız. Bulutta eğiyorsanız, özellikle büyük veri kümelerinde, senaryolarınızın taleplerini karşılamak için kaynaklarınızı ölçeklendirebilirsiniz.

Yerel CPU eğitimi, nesne algılama haricinde tüm senaryolarda desteklenir.

Yerel GPU eğitimi, görüntü sınıflandırması için desteklenir.

Azure eğitimi, görüntü sınıflandırması ve nesne algılama için desteklenir.

Veriler

Senaryonuzu seçtikten sonra model Oluşturucu sizden bir veri kümesi sağlamanızı ister. Veriler, senaryonuza yönelik en iyi modeli eğlendirmek, değerlendirmek ve seçmek için kullanılır.

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

Model oluşturucu,. tsv, .csv, .txt biçimlerinin yanı sıra SQL veritabanı biçiminde veri kümelerini destekler. Bir .txt dosyanız varsa, sütunlar veya ile ayrılmalıdır , ; \t .

Veri kümesi görüntülerden birini yapılırsa, desteklenen dosya türleri .jpg ve olur .png .

Daha fazla bilgi için bkz. model Oluşturucu 'da eğitim verilerini yükleme.

Tahmin edilecek çıktıyı seçin (etiket)

Veri kümesi, eğitim örneklerinden ve özniteliklerin sütunlarından oluşan bir tablodur. Her satır şunları içerir:

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

Ev fiyat tahmini senaryosu için özellikler şu şekilde olabilir:

  • Evin kare çekimi
  • yatak odaları ve külikler sayısı
  • posta kodu

Etiket, bu kare çekimi, yatak odası ve banyo değerleri ve posta kodu satırı için geçmiş bir evin fiyatıdır.

Boyut Odalar ZIP kodu ve fiyat etiketinden oluşan özelliklerle birlikte, ev fiyatı verilerinin satırlarını ve sütunlarını gösteren tablo

Örnek veri kümeleri

Henüz kendi verileriniz yoksa, bu veri kümelerinden birini deneyin:

Senaryo Örnek Veriler Etiketle Özellikler
Sınıflandırma Satış anormalilerini tahmin edin ürün satış verileri Ürün satışları Ay
Web sitesi açıklamalarının yaklaşımlarını tahmin edin web sitesi açıklama verileri Etiket (negatif yaklaşımda 0, pozitif olduğunda 1) Açıklama, Yıl
Sahte kredi kartı işlemlerini tahmin etmek kredi kartı verileri Sınıf (sahte olduğunda 1, değilse 0) Amount, V1-V28 (anonimleştirilmiş özellikler)
Bir depoda sorunun türünü GitHub tahmin etmek GitHub veri sorunu Alan Başlık, Açıklama
Değer tahmini Taksi ücreti fiyatını tahmin etmek taksi ücreti verileri Ücret Seyahat süresi, mesafe
Resimleri sınıflandırma Çiçeğin kategorisini tahmin etmek çiçek görüntüleri Çiçek türü: çiçek, dandelion, çiçek, çiçek, çiçek Görüntü verileri
Öneri Birisinin nasıl bir film izlemesi olacağını tahmin etmek film derecelendirmeleri Kullanıcılar, Filmler Derecelendirmeler

Eğitim

Senaryo, ortam, veri ve etiketinizi seçmenizin ardından Model Builder eğitebilirsiniz.

Eğitim nedir?

Eğitim, modelinize senaryoyla Model Builder nasıl yanıt vereceklerini öğreten otomatik bir süreçtir. Eğitilil ardından modeliniz daha önce hiç görülmemiş giriş verileriyle tahminde bulunuyor olabilir. Örneğin, ev fiyatlarını tahmin ediyorsanız ve pazara yeni bir ev geliyorsa, bunun satış fiyatını tahmin edilebilirsiniz.

Otomatik Model Builder (AutoML) kullandığından, eğitim sırasında herhangi bir giriş veya ayar gerektirmez.

Ne kadar süreyle eğitim?

Model Builder en iyi performansa sahip modeli bulmak için AutoML kullanarak birden çok modeli keşfeder.

Daha uzun eğitim dönemleri, AutoML'nin daha fazla ayara sahip daha fazla modeli keşfetmesine olanak sağlar.

Aşağıdaki tabloda, yerel makinede örnek veri kümeleri paketi için iyi performans elde etmek için alınan 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 bir kılavuzdur. Eğitimin tam uzunluğu aşağıdakilere bağlıdır:

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

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

Değerlendir

Değerlendirme, modelinizin ne kadar iyi olduğunu ölçme işlemidir. Model Builder, eğitilen modeli yeni test verileriyle tahminde bulunuyor ve ardından tahminlerin ne kadar iyi olduğunu ölçür.

Model Builder, 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 geri kullanılır.

Nasıl yaparım? performansımı anlıyoruz?

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

Değer tahmini

Değer tahmini sorunları için varsayılan ölçüm RSquared'dır ve RSquared değeri 0 ile 1 arasında bir aralıktır. 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 nasıl performans sergileyebli olduğunu anlamak ve diğer değer tahmini modellerine göre karşılaştırmak için kullanılmaktadır.

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 üzerinden ladığı doğru tahminlerin oranını tanımlar. %100 veya 1,0'a ne kadar yakınsa o kadar iyidir.

Gerçek pozitif oranı ve hatalı pozitif oranın ölçülebilir olduğu AUC (Eğrinin altındaki Alan) gibi bildirilen diğer ölçümler, modellerin kabul edilebilir olması için 0,50'den büyük olmalıdır.

Duyarlık ve Geri Çağırma arasındaki dengeyi kontrol etmek 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 oranı %100'e 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ğu'dır. Mikro doğruluk, 1.0'a ne kadar yakınsa o kadar iyidir. Bu iki doğruluk türü hakkında düşünmek için iyi bir yol:

  • Mikro doğruluk: Gelen biletler 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ğrudur?

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

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

Geliştirmek

Model performans puanınız istediğiniz kadar iyi bir puana sahip değilse şunları sabilirsiniz:

  • Daha uzun bir süre eğitin. Daha fazla zaman ile, otomatik makine öğrenmesi altyapısı daha fazla algoritma ve ayar ile denemeler.

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

  • Verilerinizi dengeleme. Sınıflandırma görevleri için, eğitim kümesi kategoriler arasında dengelenmeli olduğundan emin olun. Örneğin, 100 eğitim örneği için dört sınıfınız varsa ve 90 kayıt için iki birinci sınıf (tag1 ve tag2) kullanılıyorsa, ancak diğer ikisi (etiket3 ve etiket4) yalnızca kalan 10 kayıtta kullanılıyorsa, dengeli verilerin olmaması modelinizin etiket3 veya etiket4'ü doğru şekilde tahmin etmekte zor çalışmasına neden olabilir.

Tüketme

Değerlendirme aşamasından sonra Model Builder bir model dosyası ve modeli uygulamanıza eklemek için kullanabileceğiniz kodu çıkış olarak gösterir. ML.NET modelleri zip dosyası olarak kaydedilir. Modelinizi yüklemek ve kullanmak için kullanabileceğiniz kod, çözümünüze yeni bir proje olarak eklenir. Model Builder, modelinizi çalışır şekilde görmek için çalıştırabilirsiniz örnek bir konsol uygulaması da ekler.

Ayrıca, Model Builder modelinizi tüketen projeler oluşturma seçeneği de sağlar. Şu Model Builder aşağıdaki projeleri oluşturacağız:

  • Konsol uygulaması: Modelinizi tahmin etmek için bir .NET Core konsol uygulamaları oluşturur.
  • Web API'si: Modelinizi ASP.NET Core internet üzerinden tüketmenizi sağlayan bir Web API'si oluşturur.

Sırada ne var?

Model Builder Visual Studio yükleme

Fiyat tahminini veya herhangi bir regresyon senaryosunu deneyin