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.

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,
ModelInputveModelOutputşemaların yanı sıraPredictmodeli 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.


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

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

Ö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