Referensi perintah CLI ML.NET

classificationPerintah , regression, dan recommendation adalah perintah utama yang disediakan oleh alat CLI ML.NET. Perintah ini memungkinkan Anda menghasilkan model ML.NET kualitas yang baik untuk model klasifikasi, regresi, dan rekomendasi menggunakan pembelajaran mesin otomatis (AutoML) serta contoh kode C# untuk menjalankan/menilai model tersebut. Selain itu, kode C# untuk melatih model dihasilkan bagi Anda untuk meneliti algoritma dan pengaturan model.

Catatan

Artikel ini mengacu pada ML.NET CLI dan ML.NET AutoML, yang saat ini dalam Pratinjau, dan materi dapat berubah.

Gambaran Umum

Contoh penggunaan:

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

mlnet Perintah tugas ML (classification, regression, , recommendationdan forecasting) menghasilkan aset berikut:

  • Model serial .zip ("model terbaik") siap digunakan.
  • Kode C# untuk menjalankan/menilai model yang dihasilkan.
  • Kode C# dengan kode pelatihan yang digunakan untuk menghasilkan model tersebut.

Dua aset pertama dapat langsung digunakan di aplikasi pengguna akhir Anda (aplikasi web ASP.NET Core, layanan, aplikasi desktop, dan lainnya) untuk membuat prediksi dengan model.

Aset ketiga, kode pelatihan, menunjukkan kepada Anda kode API ML.NET apa yang digunakan oleh CLI untuk melatih model yang dihasilkan, sehingga Anda dapat menyelidiki algoritma dan pengaturan model tertentu.

Contoh

Perintah CLI paling sederhana untuk masalah klasifikasi (AutoML menyimpulkan sebagian besar konfigurasi dari data yang disediakan):

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

Perintah CLI sederhana lainnya untuk masalah regresi:

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

Buat dan latih model klasifikasi dengan himpunan data pelatihan, himpunan data pengujian, dan argumen eksplisit penyesuaian lebih lanjut:

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

Opsi perintah

mlnet Perintah tugas ML (classification, , regression, recommendationforecasting, dan train) melatih beberapa model berdasarkan himpunan data yang disediakan dan opsi CLI ML.NET. Perintah ini juga memilih model terbaik, menyimpan model sebagai file .zip berseri, dan menghasilkan kode C# terkait untuk penilaian dan pelatihan.

Opsi klasifikasi

Menjalankan mlnet classification akan melatih model klasifikasi. Pilih perintah ini jika Anda ingin Model ML mengategorikan data ke dalam 2 kelas atau lebih (misalnya analisis sentimen).

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

Opsi regresi

Menjalankan mlnet regression akan melatih model regresi. Pilih perintah ini jika Anda ingin Model ML memprediksi nilai numerik (misalnya prediksi harga).

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

Opsi rekomendasi

Menjalankan mlnet recommendation akan melatih model rekomendasi. Pilih perintah ini jika Anda ingin Model ML merekomendasikan item kepada pengguna berdasarkan peringkat (misalnya rekomendasi produk).

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

Opsi input yang tidak valid menyebabkan alat CLI memancarkan daftar input yang valid dan pesan kesalahan.

Opsi prakiraan

Menjalankan mlnet forecasting akan melatih model prakiraan rangkaian waktu. Pilih perintah ini jika Anda ingin Model ML memperkirakan nilai berdasarkan data historis (misalnya, prakiraan penjualan).

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>

Opsi latih

Menjalankan mlnet train akan melatih model berdasarkan file "mbconfig" yang dihasilkan dari Model Builder. Agar perintah ini berfungsi, data pelatihan harus berada di direktori yang sama dengan file "mbconfig".

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

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

-v, --verbosity <verbosity>

Dataset

--dataset | -d (String)

Argumen ini menyediakan jalur file ke salah satu opsi berikut:

  • J: Seluruh file himpunan data: Jika menggunakan opsi ini dan pengguna tidak menyediakan --test-dataset dan --validation-dataset, maka validasi silang (k-fold, dll.) atau pendekatan pemisahan data otomatis akan digunakan secara internal untuk memvalidasi model. Dalam hal ini, pengguna hanya perlu menyediakan jalur file himpunan data.

  • B: File himpunan data pelatihan: Jika pengguna juga menyediakan himpunan data untuk validasi model (menggunakan --test-dataset dan secara --validation-datasetopsional ), maka --dataset argumen berarti hanya memiliki "himpunan data pelatihan". Misalnya, saat menggunakan pendekatan 80% - 20% untuk memvalidasi kualitas model dan untuk mendapatkan metrik akurasi, "himpunan data pelatihan" akan memiliki 80% data dan "himpunan data pengujian" akan memiliki 20% data.

Himpunan data pengujian

--test-dataset | -t (String)

Jalur file yang menunjuk ke file himpunan data pengujian, misalnya saat menggunakan pendekatan 80% - 20% saat membuat validasi reguler untuk mendapatkan metrik akurasi.

Jika menggunakan --test-dataset, maka --dataset juga diperlukan.

Argumen --test-dataset bersifat opsional kecuali --validation-dataset digunakan. Dalam hal ini, pengguna harus menggunakan tiga argumen.

Himpunan data validasi

--validation-dataset | -v (String)

Jalur file menunjuk ke file himpunan data validasi. Himpunan data validasi bersifat opsional, dalam hal apa pun.

Jika menggunakan validation dataset, perilakunya harus:

  • Argumen test-dataset dan --dataset juga diperlukan.

  • Himpunan validation-dataset data digunakan untuk memperkirakan kesalahan prediksi untuk pemilihan model.

  • test-dataset digunakan untuk penilaian kesalahan generalisasi model yang dipilih akhir. Idealnya, set pengujian harus disimpan dalam "vault," dan hanya dibawa keluar di akhir analisis data.

Pada dasarnya, saat menggunakan validation dataset plus test dataset, fase validasi dibagi menjadi dua bagian:

  1. Di bagian pertama, Anda hanya melihat model Anda dan memilih pendekatan berkinerja terbaik menggunakan data validasi (=validasi)
  2. Kemudian Anda memperkirakan akurasi pendekatan yang dipilih (=test).

Oleh karena itu, pemisahan data bisa 80/10/10 atau 75/15/10. Contohnya:

  • training-dataset file harus memiliki 75% data.
  • validation-dataset file harus memiliki 15% data.
  • test-dataset file harus memiliki 10% data.

Bagaimanapun, persentase tersebut akan diputuskan oleh pengguna menggunakan CLI yang akan menyediakan file yang sudah dibagi.

Kolom label

--label-col (int atau string)

Dengan argumen ini, kolom tujuan/target tertentu (variabel yang ingin Anda prediksi) dapat ditentukan dengan menggunakan nama kolom yang ditetapkan di header himpunan data atau indeks numerik kolom dalam file himpunan data (nilai indeks kolom dimulai dari 0).

Argumen ini digunakan untuk masalah klasifikasi dan regresi .

Kolom item

--item-col (int atau string)

Kolom item memiliki daftar item yang dilaporkan pengguna (item disarankan untuk pengguna). Kolom ini dapat ditentukan dengan menggunakan nama kolom yang diatur di header himpunan data atau indeks numerik kolom dalam file himpunan data (nilai indeks kolom dimulai dari 0).

Argumen ini hanya digunakan untuk tugas rekomendasi .

Kolom peringkat

--rating-col (int atau string)

Kolom peringkat memiliki daftar peringkat yang diberikan kepada item oleh pengguna. Kolom ini dapat ditentukan dengan menggunakan nama kolom yang diatur di header himpunan data atau indeks numerik kolom dalam file himpunan data (nilai indeks kolom dimulai dari 0).

Argumen ini hanya digunakan untuk tugas rekomendasi .

Kolom pengguna

--user-col (int atau string)

Kolom pengguna memiliki daftar pengguna yang memberikan peringkat ke item. Kolom ini dapat ditentukan dengan menggunakan nama kolom yang diatur di header himpunan data atau indeks numerik kolom dalam file himpunan data (nilai indeks kolom dimulai dari 0).

Argumen ini hanya digunakan untuk tugas rekomendasi .

Abaikan kolom

--ignore-columns (String)

Dengan argumen ini, Anda dapat mengabaikan kolom yang ada dalam file himpunan data sehingga tidak dimuat dan digunakan oleh proses pelatihan.

Tentukan nama kolom yang ingin Anda abaikan. Gunakan ', ' (koma dengan spasi) atau ' ' (spasi) untuk memisahkan beberapa nama kolom. Anda dapat menggunakan tanda kutip untuk nama kolom yang berisi spasi kosong (misalnya "masuk").

Contoh:

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

Memiliki header

--has-header (Bool)

Tentukan apakah file himpunan data memiliki baris header. Kemungkinan nilai adalah:

  • true
  • false

CLI ML.NET akan mencoba mendeteksi properti ini jika argumen ini tidak ditentukan oleh pengguna.

Waktu pelatihan

--train-time (String)

Secara default, eksplorasi / waktu kereta maksimum adalah 30 menit.

Argumen ini mengatur waktu maksimum (dalam detik) agar proses menjelajahi beberapa pelatih dan konfigurasi. Waktu yang dikonfigurasi dapat terlampaui jika waktu yang disediakan terlalu singkat (misalnya 2 detik) untuk satu perulangan. Dalam hal ini, waktu aktual adalah waktu yang diperlukan untuk menghasilkan satu konfigurasi model dalam satu iterasi.

Waktu yang diperlukan untuk perulangan dapat bervariasi tergantung pada ukuran himpunan data.

Cache

--cache (String)

Jika Anda menggunakan penembolokan, seluruh himpunan data pelatihan akan dimuat dalam memori.

Untuk himpunan data kecil dan menengah, menggunakan cache dapat secara drastis meningkatkan performa pelatihan, yang berarti waktu pelatihan bisa lebih pendek daripada saat Anda tidak menggunakan cache.

Namun, untuk himpunan data besar, memuat semua data dalam memori dapat berdampak negatif karena Anda mungkin kehabisan memori. Saat berlatih dengan file himpunan data besar dan tidak menggunakan cache, ML.NET akan menjadi potongan data streaming dari drive ketika perlu memuat lebih banyak data saat pelatihan.

Anda bisa menentukan nilai berikut:

on: Memaksa cache untuk digunakan saat pelatihan. off: Memaksa cache tidak digunakan saat pelatihan. auto: Tergantung pada heuristik AutoML, cache akan digunakan atau tidak. Biasanya, himpunan data kecil/menengah akan menggunakan cache dan himpunan data besar tidak akan menggunakan cache jika Anda menggunakan pilihan tersebut auto .

Jika Anda tidak menentukan --cache parameter, konfigurasi cache auto akan digunakan secara default.

Nama

--name (String)

Nama untuk proyek atau solusi output yang dibuat. Jika tidak ada nama yang ditentukan, nama sample-{mltask} akan digunakan.

File model ML.NET (file .ZIP) juga akan mendapatkan nama yang sama.

Jalur output

--output | -o (String)

Lokasi/folder akar untuk menempatkan output yang dihasilkan. Defaultnya adalah direktori saat ini.

Verbositas

--verbosity | -v (String)

Mengatur tingkat verbositas output standar.

Nilai yang diperbolehkan adalah:

  • q[uiet]
  • m[inimal] (secara default)
  • diag[nostic] (tingkat informasi pengelogan)

Secara default, alat CLI harus menunjukkan beberapa umpan balik minimum (minimal) saat bekerja, seperti menyebutkan bahwa alat tersebut berfungsi dan jika memungkinkan berapa banyak waktu yang tersisa atau berapa % dari waktu selesai.

Bantuan

-h |--help

Mencetak bantuan untuk perintah dengan deskripsi untuk parameter setiap perintah.

Lihat juga