Aracılığıyla paylaş


ML.NET CLI komut başvurusu

classification, regressionve recommendation komutları, ML.NET CLI aracı tarafından sağlanan ana komutlardır. Bu komutlar, otomatik makine öğrenmesi (AutoML) kullanarak sınıflandırma, regresyon ve öneri modelleri için kaliteli ML.NET modelleri ve bu modeli çalıştırmak/puanlamak için örnek C# kodu oluşturmanıza olanak tanır. Ayrıca modeli eğitmek için C# kodu, modelin algoritmasını ve ayarlarını araştırmanız için oluşturulur.

Not

Bu makale, şu anda Önizleme aşamasında olan ML.NET CLI ve ML.NET AutoML'ye başvurur ve malzeme değiştirilebilir.

Genel bakış

Örnek kullanım:

mlnet regression --dataset "cars.csv" --label-col price

mlnet ML görev komutları (classification, regression, recommendationve forecasting) aşağıdaki varlıkları oluşturur:

  • Kullanıma hazır bir serileştirilmiş model .zip ("en iyi model").
  • Oluşturulan modeli çalıştırmak/puan almak için C# kodu.
  • Bu modeli oluşturmak için kullanılan eğitim kodunu içeren C# kodu.

İlk iki varlık, modelle tahminde bulunmak için doğrudan son kullanıcı uygulamalarınızda (ASP.NET Core web uygulaması, hizmetler, masaüstü uygulaması ve daha fazlası) kullanılabilir.

Üçüncü varlık olan eğitim kodu, cli tarafından oluşturulan modeli eğitmek için hangi ML.NET API kodunun kullanıldığını gösterir, böylece modelin belirli algoritmasını ve ayarlarını araştırabilirsiniz.

Örnekler

Sınıflandırma sorunu için en basit CLI komutu (AutoML yapılandırmanın çoğunu sağlanan verilerden çıkartır):

mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment

Regresyon sorunu için başka bir basit CLI komutu:

mlnet regression --dataset "cars.csv" --label-col Price

Eğitim veri kümesi, test veri kümesi ve daha fazla özelleştirme açık bağımsız değişkeniyle sınıflandırma modeli oluşturun ve eğitin:

mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600

Komut seçenekleri

mlnet ML görev komutları (classification, regression, recommendation, forecastingve train) sağlanan veri kümesine ve ML.NET CLI seçeneklerine göre birden çok modeli eğitin. Bu komutlar ayrıca en iyi modeli seçer, modeli serileştirilmiş .zip dosyası olarak kaydeder ve puanlama ve eğitim için ilgili C# kodunu oluşturur.

Sınıflandırma seçenekleri

Çalıştırmak mlnet classification bir sınıflandırma modelini eğitecektir. ML Modelinin verileri 2 veya daha fazla sınıfa (yaklaşım analizi gibi) kategorilere ayırmasını istiyorsanız bu komutu seçin.

mlnet classification

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Regresyon seçenekleri

Çalıştırmak mlnet regression bir regresyon modelini eğitecektir. ML Modelinin sayısal bir değer (örneğin fiyat tahmini) tahmin etmelerini istiyorsanız bu komutu seçin.

mlnet regression

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Öneri seçenekleri

Çalıştırmak mlnet recommendation bir öneri modelini eğitecektir. Ml Modelinin kullanıcılara derecelendirmelere göre öğe önermesini istiyorsanız (ürün önerisi gibi) bu komutu seçin.

mlnet recommendation

--dataset <path> (REQUIRED)

--item-col <col> (REQUIRED)

--rating-col <col> (REQUIRED)

--user-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Geçersiz giriş seçenekleri, CLI aracının geçerli girişlerin listesini ve hata iletisini yaymasına neden olur.

Tahmin seçenekleri

Çalıştırma mlnet forecasting , bir zaman serisi tahmin modelini eğitecektir. ML Modelinin geçmiş verilere (örneğin, satış tahmini) göre bir değer tahmin etmesini istiyorsanız bu komutu seçin.

mlnet forecasting

--dataset <dataset> (REQUIRED)

--horizon <horizon> (REQUIRED)

--label-col <label-col> (REQUIRED)

--time-col <time-col> (REQUIRED)

--cache <Auto|Off|On>

--has-header

--log-file-path <log-file-path>

--name <name>

-o, --output <output>

--test-dataset <test-dataset>

--train-time <train-time>

-v, --verbosity <verbosity>

Eğit seçenekleri

Çalıştırma, mlnet train Model Oluşturucusu'ndan oluşturulan "mbconfig" dosyasını temel alan bir modeli eğitir. Bu komutun çalışması için eğitim verilerinin "mbconfig" dosyasıyla aynı dizinde olması gerekir.

-training-config <training-config> (REQUIRED)

--log-file-path <log-file-path>

-v, --verbosity <verbosity>

Veri kümesi

--dataset | -d (dize)

Bu bağımsız değişken, aşağıdaki seçeneklerden birine dosya yolu sağlar:

  • Y: Veri kümesi dosyasının tamamı: Bu seçenek kullanılıyorsa ve kullanıcı ve --validation-datasetsağlamıyorsa--test-dataset, modeli doğrulamak için şirket içinde çapraz doğrulama (k katlama, vb.) veya otomatik veri bölme yaklaşımları kullanılır. Bu durumda, kullanıcının veri kümesi dosya yolu sağlaması yeterlidir.

  • B: Eğitim veri kümesi dosyası: Kullanıcı model doğrulaması için de veri kümeleri sağlıyorsa ( --test-dataset ve isteğe bağlı olarak --validation-dataset), --dataset bağımsız değişken yalnızca "eğitim veri kümesine" sahip olmak anlamına gelir. Örneğin, modelin kalitesini doğrulamak ve doğruluk ölçümlerini elde etmek için %80 - %20 yaklaşımı kullanıldığında "eğitim veri kümesi" verilerin %80'ine, "test veri kümesi" ise verilerin %20'sine sahip olur.

Test veri kümesi

--test-dataset | -t (dize)

Test veri kümesi dosyasına işaret eden dosya yolu, örneğin doğruluk ölçümlerini elde etmek için normal doğrulamalar yaparken %80 - %20 yaklaşımı kullanılırken.

kullanıyorsanız --test-dataset, o zaman --dataset da gereklidir.

--test-dataset--validation-dataset kullanılmadığı sürece bağımsız değişken isteğe bağlıdır. Bu durumda, kullanıcının üç bağımsız değişkeni kullanması gerekir.

Doğrulama veri kümesi

--validation-dataset | -v (dize)

Doğrulama veri kümesi dosyasını gösteren dosya yolu. Doğrulama veri kümesi her durumda isteğe bağlıdır.

kullanıyorsanız validation dataset, davranış şu şekilde olmalıdır:

  • test-dataset ve --dataset bağımsız değişkenleri de gereklidir.

  • Veri validation-dataset kümesi, model seçimi için tahmin hatasını tahmin etmek için kullanılır.

  • test-dataset, seçilen son modelin genelleştirme hatasının değerlendirmesi için kullanılır. İdeal olarak, test kümesi bir "kasada" tutulmalı ve yalnızca veri analizinin sonunda çıkarılmalıdır.

Temel olarak, artı validation datasettest datasetkullanılırken doğrulama aşaması iki bölüme ayrılır:

  1. İlk bölümde, modellerinize bakıp doğrulama verilerini kullanarak en iyi performansa yönelik yaklaşımı seçmeniz (=doğrulama)
  2. Ardından seçili yaklaşımın doğruluğunu tahmin edersiniz (=test).

Bu nedenle, veri ayrımı 10.80.10 veya 75.15.10 olabilir. Örneğin:

  • training-dataset dosyasının verilerin %75'ine sahip olması gerekir.
  • validation-dataset dosyasının verilerin %15'ine sahip olması gerekir.
  • test-dataset dosyasının verilerin %10'una sahip olması gerekir.

Her durumda, söz konusu yüzdeler, zaten bölünmüş dosyaları sağlayacak CLI kullanan kullanıcı tarafından belirlenir.

Etiket sütunu

--label-col (int veya dize)

Bu bağımsız değişkenle, veri kümesinin üst bilgisinde ayarlanan sütunun adı veya veri kümesinin dosyasındaki sütunun sayısal dizini kullanılarak belirli bir hedef/hedef sütun (tahmin etmek istediğiniz değişken) belirtilebilir (sütun dizini değerleri 0'da başlar).

Bu bağımsız değişken sınıflandırma ve regresyon sorunları için kullanılır.

Öğe sütunu

--item-col (int veya dize)

Öğe sütununda kullanıcıların derecelendirdiği öğelerin listesi bulunur (öğeler kullanıcılara önerilir). Bu sütun, veri kümesinin üst bilgisinde ayarlanan sütunun adı veya veri kümesinin dosyasındaki sütunun sayısal dizini kullanılarak belirtilebilir (sütun dizini değerleri 0'da başlar).

Bu bağımsız değişken yalnızca öneri görevi için kullanılır.

Derecelendirme sütunu

--rating-col (int veya dize)

Derecelendirme sütunu, kullanıcılar tarafından öğelere verilen derecelendirmelerin listesini içerir. Bu sütun, veri kümesinin üst bilgisinde ayarlanan sütunun adı veya veri kümesinin dosyasındaki sütunun sayısal dizini kullanılarak belirtilebilir (sütun dizini değerleri 0'da başlar).

Bu bağımsız değişken yalnızca öneri görevi için kullanılır.

Kullanıcı sütunu

--user-col (int veya dize)

Kullanıcı sütununda öğelere derecelendirmeler veren kullanıcıların listesi bulunur. Bu sütun, veri kümesinin üst bilgisinde ayarlanan sütunun adı veya veri kümesinin dosyasındaki sütunun sayısal dizini kullanılarak belirtilebilir (sütun dizini değerleri 0'da başlar).

Bu bağımsız değişken yalnızca öneri görevi için kullanılır.

Sütunları yoksay

--ignore-columns (dize)

Bu bağımsız değişkenle, veri kümesi dosyasındaki mevcut sütunları yoksayarak eğitim işlemleri tarafından yüklenmemesi ve kullanılmaması sağlanır.

Yoksaymak istediğiniz sütun adlarını belirtin. Birden çok sütun adını ayırmak için ', ' (boşlukla virgül) veya ' ' (boşluk) kullanın. Boşluk içeren sütun adları için tırnak işaretleri kullanabilirsiniz (örn. "oturum açıldı").

Örnek:

--ignore-columns email, address, id, logged_in

Üst bilgi var

--has-header (bool)

Veri kümesi dosyalarının üst bilgi satırı olup olmadığını belirtin. Olası değerler şunlardır:

  • true
  • false

ML.NET CLI, bu bağımsız değişken kullanıcı tarafından belirtilmezse bu özelliği algılamaya çalışır.

Eğitim süresi

--train-time (dize)

Varsayılan olarak, maksimum keşif /tren süresi 30 dakikadır.

Bu bağımsız değişken, işlemin birden çok eğitmeni ve yapılandırmayı keşfetmesi için en uzun süreyi (saniye cinsinden) ayarlar. Sağlanan süre tek bir yineleme için çok kısaysa (örneğin 2 saniye) yapılandırılan süre aşılabilir. Bu durumda gerçek saat, tek bir yinelemede bir model yapılandırması oluşturmak için gereken süredir.

Yinelemeler için gereken süre, veri kümesinin boyutuna bağlı olarak değişebilir.

Önbellek

--cache (dize)

Önbelleğe alma kullanırsanız eğitim veri kümesinin tamamı belleğe yüklenir.

Küçük ve orta ölçekli veri kümelerinde, önbelleğin kullanılması eğitim performansını önemli ölçüde iyileştirebilir, yani eğitim süresi önbelleği kullanmadığınızdan daha kısa olabilir.

Ancak büyük veri kümeleri için bellekteki tüm verilerin yüklenmesi, bellekten çıkabileceğiniz için olumsuz etkilenebilir. Büyük veri kümesi dosyalarıyla eğitim yaparken ve önbelleği kullanmadığında ML.NET, eğitim sırasında daha fazla veri yüklemesi gerektiğinde sürücüden veri öbeklerinin akışını yapacaktır.

Aşağıdaki değerleri belirtebilirsiniz:

on: Eğitim sırasında önbelleğin kullanılmasını zorlar. off: Eğitim sırasında önbelleğin kullanılmaması için zorlar. auto: AutoML buluşsal yöntemlerine bağlı olarak önbellek kullanılır veya kullanılmaz. Genellikle küçük/orta ölçekli veri kümeleri önbellek kullanır ve seçimi kullanırsanız büyük veri kümeleri önbelleği kullanmaz auto .

Parametresini --cache belirtmezseniz önbellek auto yapılandırması varsayılan olarak kullanılır.

Veri Akışı Adı

--name (dize)

Oluşturulan çıkış projesinin veya çözümün adı. Ad belirtilmezse, ad sample-{mltask} kullanılır.

ML.NET model dosyası (.ZIP dosyası) da aynı adı alır.

Çıkış yolu

--output | -o (dize)

Oluşturulan çıkışı yerleştirmek için kök konum/klasör. Geçerli dizin varsayılandır.

Ayrıntı

--verbosity | -v (dize)

Standart çıkışın ayrıntı düzeyini ayarlar.

İzin verilen değerler şunlardır:

  • q[uiet]
  • m[inimal] (varsayılan olarak)
  • diag[nostic] (günlük bilgileri düzeyi)

Varsayılan olarak, CLI aracı çalışırken, bunun çalıştığını ve mümkünse ne kadar süre kaldığını veya ne kadar sürenin tamamlandığını belirtme gibi bazı minimum geri bildirimleri (minimal) göstermelidir.

Help

-h |--help

Her komutun parametresi için bir açıklama ile komutun yardımını yazdırır.

Ayrıca bkz.