Tutorial: Memprediksi harga menggunakan regresi dengan Model Builder
Pelajari cara menggunakan ML.NET Model Builder untuk membangun model regresi untuk memprediksi harga. Aplikasi konsol .NET yang Anda kembangkan dalam tutorial ini memprediksi tarif taksi berdasarkan data tarif taksi New York historis.
Templat prediksi harga Model Builder dapat digunakan untuk skenario apa pun yang memerlukan nilai prediksi numerik. Contoh skenario meliputi: prediksi harga rumah, prediksi permintaan, dan prakiraan penjualan.
Dalam tutorial ini, Anda akan mempelajari cara:
- Menyiapkan dan memahami data
- Membuat file Konfigurasi Pembangun Model
- Memilih skenario
- Muat data
- Latih model
- Mengevaluasi model
- Menggunakan model untuk prediksi
Prasyarat
Untuk daftar prasyarat dan instruksi penginstalan, kunjungi panduan penginstalan Model Builder.
Membuat aplikasi konsol
- Buat Aplikasi Konsol C# .NET Core yang disebut "TaxiFarePrediction". Pastikan Tempatkan solusi dan proyek dalam direktori yang samatidak dicentang (VS 2019).
Menyiapkan dan memahami data
Buat direktori bernama Data di proyek Anda untuk menyimpan file himpunan data.
Himpunan data yang digunakan untuk melatih dan mengevaluasi model pembelajaran mesin awalnya berasal dari himpunan data Perjalanan Taksi TLC NYC.
Untuk mengunduh himpunan data, navigasikan ke tautan unduhantaxi-fare-train.csv.
Saat halaman dimuat, klik kanan di mana saja di halaman dan pilih Simpan sebagai.
Gunakan Dialog Simpan Sebagai untuk menyimpan file di folder Data yang Anda buat di langkah sebelumnya.
Di Penjelajah Solusi, klik kanan file taxi-fare-train.csv dan pilih Properti. Di bawah Tingkat Lanjut, ubah nilai Salin ke Direktori Output menjadi Salin jika lebih baru.
Setiap baris dalam himpunan taxi-fare-train.csv
data berisi detail perjalanan yang dibuat oleh taksi.
Buka himpunan data taxi-fare-train.csv
Himpunan data yang disediakan berisi kolom berikut:
- vendor_id: ID vendor taksi adalah fitur.
- rate_code: Jenis tarif perjalanan taksi adalah fitur.
- passenger_count: Jumlah penumpang dalam perjalanan adalah fitur.
- trip_time_in_secs: Jumlah waktu yang dibutuhkan perjalanan. Anda ingin memprediksi tarif perjalanan sebelum perjalanan selesai. Pada saat itu Anda tidak tahu berapa lama perjalanan akan berlangsung. Dengan demikian, waktu perjalanan bukanlah fitur dan Anda akan mengecualikan kolom ini dari model.
- trip_distance: Jarak perjalanan adalah fitur.
- payment_type: Metode pembayaran (tunai atau kartu kredit) adalah fitur.
- fare_amount: Total tarif taksi yang dibayarkan adalah label.
adalah label
kolom yang ingin Anda prediksi. Saat melakukan tugas regresi, tujuannya adalah untuk memprediksi nilai numerik. Dalam skenario prediksi harga ini, biaya naik taksi sedang diprediksi. Oleh karena itu, fare_amount adalah label. Yang diidentifikasi features
adalah input yang Anda berikan model untuk memprediksi label
. Dalam hal ini, kolom lainnya dengan pengecualian trip_time_in_secs digunakan sebagai fitur atau input untuk memprediksi jumlah tarif.
Membuat File Konfigurasi Pembangun Model
Saat pertama kali menambahkan Model Builder ke solusi, Model Builder akan meminta Anda untuk membuat mbconfig
file. File mbconfig
ini melacak semua yang Anda lakukan di Model Builder untuk memungkinkan Anda membuka kembali sesi.
- Di Penjelajah Solusi, klik kanan proyek TaxiFarePrediction, dan pilih Tambahkan>Model Pembelajaran Mesin....
- Beri nama
mbconfig
proyek TaxiFarePrediction, dan klik tombol Tambahkan .
Memilih skenario
Untuk melatih model, Anda perlu memilih dari daftar skenario pembelajaran mesin yang tersedia yang disediakan oleh Model Builder. Dalam hal ini, skenarionya adalah Value prediction
.
- Dalam langkah skenario alat Pembuat Model, pilih Skenario prediksi nilai.
Pilih lingkungan
Model Builder dapat menjalankan pelatihan pada lingkungan yang berbeda tergantung pada skenario yang dipilih.
- Konfirmasikan
Local (CPU)
item dipilih, dan klik tombol Langkah berikutnya .
Muat data
Model Builder menerima data dari dua sumber, database SQL Server atau file lokal dalam format csv atau tsv.
- Di langkah data alat Pembuat Model, pilih File dari pilihan jenis sumber data.
- Pilih tombol Telusuri di samping kotak teks dan gunakan File Explorer untuk menelusuri dan memilih taxi-fare-test.csv di direktori Data
- Pilih fare_amount di kolom untuk memprediksi (Label) dropdown.
- Klik tautan Opsi data tingkat lanjut .
- Di tab Pengaturan kolom , pilih menu dropdown Tujuan untuk kolom trip_time_in_secs , dan pilih Abaikan untuk mengecualikannya sebagai fitur selama pelatihan. Klik tombol Simpan untuk menutup dialog.
- Klik tombol Langkah berikutnya .
Latih model
Tugas pembelajaran mesin yang digunakan untuk melatih model prediksi harga dalam tutorial ini adalah regresi. Selama proses pelatihan model, Model Builder melatih model terpisah menggunakan algoritma dan pengaturan regresi yang berbeda untuk menemukan model berkinerja terbaik untuk himpunan data Anda.
Waktu yang diperlukan model untuk melatih sebanding dengan jumlah data. Model Builder secara otomatis memilih nilai default untuk Time to train (detik) berdasarkan ukuran sumber data Anda.
- Biarkan nilai default apa adanya agar Waktu melatih (detik) kecuali Anda lebih suka berlatih untuk waktu yang lebih lama.
- Pilih Mulai Pelatihan.
Selama proses pelatihan, data kemajuan ditampilkan di bagian Training results
langkah pelatihan.
- Status menampilkan status penyelesaian proses pelatihan.
- Akurasi terbaik menampilkan akurasi model berkinerja terbaik yang ditemukan oleh Model Builder sejauh ini. Akurasi yang lebih tinggi berarti model diprediksi lebih benar pada data pengujian.
- Algoritma terbaik menampilkan nama algoritma berkinerja terbaik yang dilakukan oleh Model Builder sejauh ini.
- Algoritma terakhir menampilkan nama algoritma yang terakhir digunakan oleh Model Builder untuk melatih model.
Setelah pelatihan selesai mbconfig
, file akan memiliki model yang dihasilkan yang dipanggil TaxiFarePrediction.zip
setelah pelatihan dan dua file C# dengannya:
- TaxiFare.consumption.cs: File ini memiliki metode publik yang akan memuat model dan membuat mesin prediksi dengannya dan mengembalikan prediksi.
- TaxiFare.training.cs: File ini terdiri dari alur pelatihan yang dibuat Oleh Model Builder untuk membangun model terbaik termasuk hiperparameter apa pun yang digunakannya.
Klik tombol Langkah berikutnya untuk menavigasi ke langkah evaluasi.
Mengevaluasi model
Hasil dari langkah pelatihan akan menjadi salah satu model yang memiliki performa terbaik. Dalam langkah evaluasi alat Model Builder, di bagian Model terbaik , akan berisi algoritma yang digunakan oleh model berkinerja terbaik dalam entri Model bersama dengan metrik untuk model tersebut di RSquared.
Selain itu, di jendela Output Visual Studio, akan ada tabel ringkasan yang berisi model teratas dan metriknya.
Bagian ini juga akan memungkinkan Anda untuk menguji model Anda dengan melakukan satu prediksi. Ini akan menawarkan kotak teks untuk mengisi nilai dan Anda dapat mengklik tombol Prediksi untuk mendapatkan prediksi dari model terbaik. Secara default ini akan diisi oleh baris acak dalam himpunan data Anda.
Jika Anda tidak puas dengan metrik akurasi Anda, beberapa cara mudah untuk mencoba dan meningkatkan akurasi model adalah dengan meningkatkan jumlah waktu untuk melatih model atau menggunakan lebih banyak data. Jika tidak, klik Langkah berikutnya untuk menavigasi ke langkah penggunaan.
(Opsional) Mengonsumsi model
Langkah ini akan memiliki templat proyek yang dapat Anda gunakan untuk menggunakan model. Langkah ini bersifat opsional dan Anda dapat memilih metode yang paling sesuai dengan kebutuhan Anda tentang cara menyajikan model.
- Aplikasi Konsol
- API Web
Aplikasi Konsol
Saat menambahkan aplikasi konsol ke solusi, Anda akan diminta untuk memberi nama proyek.
Beri nama proyek konsol TaxiFare_Console.
Klik Tambahkan ke solusi untuk menambahkan proyek ke solusi Anda saat ini.
Jalankan aplikasi.
Output yang dihasilkan oleh program akan terlihat mirip dengan cuplikan di bawah ini:
Predicted Fare: 15.020833
API Web
Saat menambahkan API web ke solusi Anda, Anda akan diminta untuk memberi nama proyek.
Beri nama TaxiFare_API proyek API Web.
Klik Tambahkan ke solusi* untuk menambahkan proyek ke solusi Anda saat ini.
Jalankan aplikasi.
Buka PowerShell dan masukkan kode berikut di mana PORT adalah port yang didengarkan aplikasi Anda.
$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"
Jika berhasil, output akan terlihat mirip dengan teks di bawah ini:
score ----- 15.020833
Langkah berikutnya
Di tutorial ini, Anda akan mempelajari cara:
- Menyiapkan dan memahami data
- Memilih skenario
- Muat data
- Latih model
- Mengevaluasi model
- Menggunakan model untuk prediksi
Sumber Daya Tambahan
Untuk mempelajari selengkapnya tentang topik yang disebutkan dalam tutorial ini, kunjungi sumber daya berikut: