Öğretici: model Oluşturucu ile gerileme kullanarak fiyatları tahmin etme

fiyatları tahmin etmek için bir gerileme modeli oluşturmak üzere ML.NET Model Builder nasıl kullanacağınızı öğrenin. Bu öğreticide geliştirdiğiniz .NET konsol uygulaması, geçmiş New York taksi tarifeli havayolu verilerine dayalı olarak taksi Fares 'yi tahmin eder.

Model Oluşturucu fiyat tahmin şablonu, sayısal tahmin değeri gerektiren herhangi bir senaryo için kullanılabilir. Örnek senaryolar şunlardır: ev fiyat tahmini, talep tahmini ve satış tahmini.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Verileri hazırlama ve anlama
  • Model Oluşturucu yapılandırma dosyası oluşturma
  • Senaryo seçin
  • Verileri yükleme
  • Modeli eğitme
  • Modeli değerlendirme
  • Tahmin için modeli kullanma

Not

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

Ön koşullar

Önkoşul ve Yükleme yönergelerinin bir listesi için model Oluşturucu Yükleme Kılavuzu' nu ziyaret edin.

Konsol uygulaması oluşturma

  1. "Taxifaretahmine" adlı bir C# .NET Core konsol uygulaması oluşturun. Çözümün ve projenin aynı dizine yerleştirdiğinizden emin olun (vs 2019).

Verileri hazırlama ve anlama

  1. Veri kümesi dosyalarını depolamak için projenizde veri adlı bir dizin oluşturun.

  2. Machine Learning modelini eğmekte ve değerlendirmek için kullanılan veri kümesi, ilk olarak NYC TLC TAXI seyahat veri kümesinden.

    1. Veri kümesini indirmek için taxi-fare-train.csv indirme bağlantısınagidin.

    2. Sayfa yüklendiğinde, sayfada herhangi bir yere sağ tıklayın ve farklı kaydet' i seçin.

    3. Dosyayı önceki adımda oluşturduğunuz veri klasörüne kaydetmek Için Farklı Kaydet iletişim kutusunu kullanın.

  3. Çözüm Gezgini, taxi-fare-train.csv dosyasına sağ tıklayın ve Özellikler' i seçin. Gelişmiş' in altında, Çıkış Dizinine Kopyala değerini daha yeniyse kopyala olarak değiştirin.

Veri kümesindeki her satır taxi-fare-train.csv bir TAXI tarafından yapılan gelişlerin ayrıntılarını içerir.

  1. taxi-fare-train.csv veri kümesini aç

    Belirtilen veri kümesi şu sütunları içerir:

    • vendor_id: Taxı satıcısının KIMLIĞI bir özelliktir.
    • rate_code: Taxı seyahati 'ın hız türü bir özelliktir.
    • passenger_count: Seyahat üzerindeki pascuların sayısı bir özelliktir.
    • trip_time_in_secs: Seyahati için geçen süre. Seyahat tamamlanmadan önce seyahat tarifeli havayolu tahmin etmek istiyorsunuz. Bu anda seyahati ne kadar süreyle yapılacağını bilemezsiniz. Bu nedenle, seyahat süresi bir özellik değildir ve bu sütunu modelden dışlayabilirsiniz.
    • trip_distance: Seyahat uzaklığı bir özelliktir.
    • payment_type: Ödeme yöntemi (nakit veya kredi kartı) bir özelliktir.
    • fare_amount: Ödenen toplam TAXI tarifeli havayolu etikettir.

labelTahmin etmek istediğiniz sütundur. Regresyon görevi gerçekleştirirken, amaç sayısal bir değeri tahmin etmek için kullanılır. Bu fiyat tahmin senaryosunda, bir TAXI arttırıldığında 'nın maliyeti tahmin ediliyor. Bu nedenle, fare_amount etikettir. features, Modeli tahmin etmek için size izin verdiğiniz girişlerdir label . Bu durumda, trip_time_in_secs özel durumuna sahip sütunların geri kalanı, tarifeli havayolu tutarını tahmin etmek için özellik veya giriş olarak kullanılır.

Model Oluşturucu yapılandırma dosyası oluştur

Çözüme ilk kez model Oluşturucu eklendiğinde, bir dosya oluşturmanızı ister mbconfig . mbconfigDosya, oturum açmanızı sağlamak Için model Oluşturucu 'da yaptığınız her şeyi izler.

  1. Çözüm Gezgini, taxifaretahmine projesine sağ tıklayın ve > Machine Learning Model ekle... seçeneğini belirleyin.
  2. mbconfigProjeyi Taxifaretahmin olarak adlandırın ve Ekle düğmesine tıklayın.

Senaryo seçin

Visual Studio 'de model Oluşturucu Sihirbazı

Modelinize eğitebilmeniz için, model Oluşturucu tarafından sağlanan kullanılabilir makine öğrenimi senaryoları listesinden seçim yapmanız gerekir. Bu durumda senaryo Value prediction .

  1. Model Oluşturucu aracının senaryo adımında değer tahmini senaryosu ' nı seçin.

Ortamı seçin

Model Oluşturucu, seçilen senaryoya bağlı olarak farklı ortamlarda eğitim çalıştırabilir.

  1. Local (CPU)Öğenin seçili olduğunu onaylayın ve sonraki adım düğmesine tıklayın.

Verileri yükleme

Model oluşturucu, bir SQL Server veritabanı veya csv ya da tsv biçimindeki yerel bir dosya olan iki kaynaktan verileri kabul eder.

  1. Model Oluşturucu aracının veri adımında, veri kaynağı türü seçiminden Dosya ' yı seçin.
  2. Metin kutusunun yanındaki Git düğmesini seçin ve veri dizinindeki taxi-fare-test.csv taramak ve seçmek için dosya Gezgini 'ni kullanın
  3. Tahmin edilecek (etiket) açılan sütundaki fare_amount seçin.
  4. Gelişmiş veri seçenekleri bağlantısına tıklayın.
  5. Sütun ayarları sekmesinde, Trip_time_in_secs sütunu için Amaç açılan listesini seçin ve eğitim sırasında bir özellik olarak dışlamak için Yoksay ' ı seçin. İletişim kutusunu kapatmak için Kaydet düğmesine tıklayın.
  6. Sonraki adım düğmesine tıklayın.

Modeli eğitme

Bu öğreticide fiyat tahmin modelini eğitmek için kullanılan makine öğrenimi görevi gerileme. Model oluşturma işlemi sırasında model Oluşturucu, veri kümeniz için en iyi işlem modelini bulmak üzere farklı gerileme algoritmaları ve ayarları kullanarak modelleri ayrı ayrı işler.

Modelin eğitilmesi için gereken süre, veri miktarına müşterinizin istekleriyle orantılı. Model Oluşturucu, veri kaynağınızın boyutuna bağlı olarak, tren süresi (saniye) için varsayılan bir değer seçer.

  1. Daha uzun bir süre eğmemeyi tercih etmediğiniz sürece varsayılan değeri eğitme süresi (saniye) olarak bırakın.
  2. Eğitimi Başlat' ı seçin.

Eğitim süreci boyunca, ilerleme verileri Training results eğitme adımının bölümünde görüntülenir.

  • Durum, eğitim sürecinin tamamlanma durumunu görüntüler.
  • En iyi doğruluk, şu ana kadar model Oluşturucu tarafından bulunan en iyi şekilde oluşan modelin doğruluğunu gösterir. Daha yüksek doğruluk, modelin test verilerinde daha doğru tahmin edilen anlamına gelir.
  • En iyi algoritma, şu ana kadar model Oluşturucu tarafından bulunan en iyi şekilde gerçekleştirilen algoritmanın adını görüntüler.
  • Son algoritma modeli eğitmek için model Oluşturucu tarafından en son kullanılan algoritmanın adını görüntüler.

Eğitim tamamlandıktan sonra dosya, mbconfig TaxiFarePrediction.zip eğitim ve Ile Iki C# dosyasından sonra adlı oluşturulan modeli kullanacaktır:

  • Taxifis. tüketim. cs: Bu dosya, modeli yükleyecek ve ile bir tahmin motoru oluşturacak ve tahmin döndüren bir ortak metoda sahiptir.
  • Taxifis. eğitim. cs: Bu dosya, model oluşturucunun, kullandığı hiper parametreler dahil olmak üzere en iyi modeli oluşturmak için ile birlikte geldiği eğitim ardışık düzeninde oluşur.

Değerlendir 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 model olacaktır. Model Oluşturucu aracının değerlendir adımında, en iyi model bölümünde, model girişinde en iyi uygulanan model tarafından kullanılan algoritma Ile birlikte, RKARE içinde bu model için ölçümler bulunur.

ayrıca, Visual Studio çıkış penceresinde, en üst modeller ve bunların ölçümlerini içeren bir özet tablo olacaktır.

Bu bölüm, tek bir tahmin gerçekleştirerek modelinizi test etmeniz için de izin verir. Değerleri dolduracak metin kutuları sunar ve en iyi modelden tahmin almak için tahmin düğmesine tıklayabilirsiniz. Bu, varsayılan olarak, veri kümenizdeki rastgele bir satır ile doldurulur.

Doğruluk ölçümlerinizi tatmin ediyorsanız, model doğruluğunu denemeye yönelik bazı kolay yollar, modelin eğilmesi veya daha fazla veri kullanmak için zaman miktarını artırmaktır. Aksi halde, İleri adım ' a tıklayarak Kullanım adımına gidin.

Seçim Modeli tüketme

Bu adımda, modeli tüketmek için kullanabileceğiniz proje şablonları vardır. Bu adım isteğe bağlıdır ve modele en uygun olan yöntemi modeli nasıl sunacak hakkında seçebilirsiniz.

  • Konsol uygulaması
  • Web API

Konsol Uygulaması

Çözümünüze bir konsol uygulaması eklerken projeyi bir ad olarak girmeniz istenir.

  1. Konsol projesini olarak TaxiFare_Console.

  2. Projeyi geçerli çözümünüze eklemek için Çözüme ekle'ye tıklayın.

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

    Predicted Fare: 15.020833
    

Web API

Çözümünüze bir web API'si eklerken projeye bir ad girmeniz istenir.

  1. Web API projesini olarak TaxiFare_API.

  2. Projeyi geçerli çözümünüze eklemek için Çözüme ekle * 'ye tıklayın.

  3. Uygulamayı çalıştırın.

  4. PowerShell'i açın ve aşağıdaki kodu girin; burada PORT, uygulamanın dinlediğini bağlantı noktasıdır.

    $body = @{
        Vendor_id="CMT"
        Rate_code=1.0
        Passenger_count=1.0
        Trip_distance=3.8
        Payment_type="CRD"
    }
    
    Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  5. Başarılı olursa çıkış aşağıdaki metne benzer şekilde olacaktır:

    score
    -----
    15.020833
    

Sonraki Adımlar

Bu öğreticide, şunların nasıl yapıldığını öğrendiniz:

  • Verileri hazırlama ve anlama
  • Senaryo seçme
  • Verileri yükleme
  • Modeli eğitme
  • Modeli değerlendirme
  • Tahminler için modeli kullanma

Ek Kaynaklar

Bu öğreticide bahsedilen konular hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları ziyaret edin: