Pengarang: Dolphin Borovec
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
Foto Ilustrasi oleh Oleg Magni dari Pexels
Pembelajaran mesin
Posting ini menyajikan pemecahan data primer Tabular melalui dua tugas Machine Learning (ML) yang paling umum — klasifikasi dan regresi, dengan Lightning Flash, yang membuatnya sangat sederhana.
Ketika membahas artikel tentang pembelajaran mendalam, kemajuan dalam Computer Vision atau Natural Language Processing (NLP) menerima bagian terbesar dari perhatian. Kemajuan dalam CV dan NLP sangat fantastis dan sangat menarik; namun, banyak tugas sehari-hari para ilmuwan data berkisar seputar pemrosesan data tabular.
Klasifikasi dan regresi data tabular adalah tugas penting. Mereka sering dimodelkan dengan metode klasik seperti Hutan Acak, Mesin Vektor Dukungan, Regresi Linier/Logistik, dan Naive Bayes, diimplementasikan di salah satu dari banyak pustaka standar — scikit-learn, XGBoost, dll.
Namun, ada baiknya bereksperimen dengan metode Deep Learning yang lebih baru untuk membuat model dengan data yang lebih kompleks.
Tangkapan layar dari https://playground.tensorflow.org menjalankan klasifikasi sederhana dengan NN.
Pada postingan kali ini, kami menyajikan cara menyiapkan data dan melatih model hanya dengan beberapa baris kode menggunakan Lightning Flash.
Pabrik AI open-source yang dibangun di atas PyTorch Lightning ini menyediakan solusi out-of-box untuk beberapa domain seperti tabular, gambar, teks, dll., dan semua tugas dasar. Kami menampilkan solusi pada dua kompetisi Kaggle sederhana (dan menautkan kernel tertentu di bawah):
Titanic crash dengan Lightning⚡Flash
Rumah prediksi harga dengan Lightning⚡Flash
Di bagian berikut, saya akan membahas empat tahap (ditambah dua bonus) pemodelan tabel, termasuk:
1. Persiapan data
2. Pembuatan model
3. Model pelatihan
4. Evaluasi/Inferensi
Lightning Flash API menyatukan berbagai pemuatan data dan tugas, memastikan bahwa klasifikasi dan kode regresi serupa dan mudah dibaca.
1. Persiapan Data
Persiapan data, secara umum, adalah subjek yang luas, jadi mari kita persempit untuk tutorial ini. Untuk posting ini, kami akan menggunakan dataset harga Rumah.
Kami berasumsi bahwa data bersih dan telah diperiksa untuk tugas yang kami selesaikan. Untuk klasifikasi, prediksi adalah pemetaan nilai diskrit positif ke label yang telah ditentukan sebelumnya. Untuk regresi, perkiraan adalah nilai floating-point tanpa batas.
Langkah awal dari setiap pipeline pelatihan adalah memuat data dan identifikasi tipe data (per kolom). Kita perlu membedakan antara input kontinu dan input kategorikal. Nilai kontinu (numerik) adalah contoh, tetapi kategoris (terutama string) perlu dikonversi ke numerik dengan beberapa pemetaan internal.
Jangan khawatir. Semua ini dilakukan di dalam Flash! Sebagai pengguna, Anda tidak perlu memikirkannya kecuali Anda menginginkannya.
Saat Anda mengurutkan input numerik dan kategoris, Anda dapat mentransmisikannya secara manual atau menggunakan beberapa heuristik/statistik untuk menyimpulkan jenisnya.
Cuplikan kode untuk mentransmisikan kolom numerik dan kategoris.
Selanjutnya, kita membuat DataModule menggunakan metode from_csv. Untuk melakukannya, kami menentukan file CSV input, mengatur ukuran batch untuk pelatihan dan pemisahan pelatihan/validasi, kolom numerik dan kategoris yang ingin kami gunakan sebagai fitur, dan kolom target yang ingin kami prediksi.
Cuplikan kode untuk membuat data Flash. Aturan praktisnya adalah menggunakan pemisahan validasi antara 20% -40% dari data yang disediakan.
2. Pembuatan model
Langkah selanjutnya adalah membuat model tugas. Dalam hal ini, kami akan membuat model regresi Tabular di mana kami menyediakan DataModule kami, sebagai tambahan, untuk beberapa properti khusus model lainnya, seperti pengoptimal dan kecepatan pembelajaran.
Cuplikan kode untuk membuat model Flash.
3. Melatih model
Melatih model biasanya merupakan tugas yang sangat kompleks, tetapi Lightning Flash membuatnya mudah. Karena Flash didukung oleh PyTorch-Lightning (PL), Anda dapat memanfaatkan semua callback dan fitur PL untuk melatih model Anda.
Dalam hal ini, kami akan menggunakan pencatat CSV untuk dengan mudah memplot statistik pelatihan ke notebook IPython.
Cuplikan kode untuk melatih model Flash. Kami berlatih selama 75 zaman dan memanfaatkan semua GPU di mesin kami.
Saat pelatihan selesai, kami memplot semua metrik dan kerugian yang dikumpulkan selama proses dengan paket seaborn:
Cuplikan kode untuk merencanakan metrik yang dikumpulkan.
Jika Anda tidak mengetahui kecepatan pembelajaran terbaik untuk model/data Anda, Anda dapat menggunakan pencari kecepatan pembelajaran PyTorch Lightning. Anda perlu mengaktifkan LR di Trainer, dan sebelum metode fit, panggil metode tune:
Cuplikan kode untuk menemukan tingkat Pembelajaran terbaik.
Saat Anda menjalankan kode ini, Anda akan melihat kurva pelatihan yang mirip dengan gambar di bawah ini yang menunjukkan bahwa model Anda konvergen dan belajar.
Merencanakan metrik pelatihan.
4. Model Inferensi
Bagian terakhir dari pemodelan tabular adalah inferensi pada data baru. Sekali lagi, Flash membuatnya mudah untuk menyimpulkan karena model mengingat kolom apa yang digunakan selama pelatihan dan memisahkan antara kolom numerik dan kategoris.
Kami meneruskan tabel yang dimuat atau jalur ke file CSV yang ingin kami evaluasi, dan FFlash akan memberi kami prediksi model:
Mari kita lihat seperti apa prediksi distribusi harga:
Distribusi harga di kereta vs. data uji.
Langkah selanjutnya
Flash Zero untuk Pelatihan CLI Kode Nol
Flash Zero adalah ekstensi pembelajaran mesin kode nol dari Lightning Flash, yang menawarkan fungsionalitas Lightning Flash tanpa memerlukan satu baris skrip python.
Flash zero berguna untuk pembuatan prototipe cepat dan pencarian hyperparameter yang menentukan loop eksternal melalui opsi yang diberikan atau platform cloud seperti grid.ai.
Optimalisasi HyperParameter dengan Grid.ai dan Tanpa Perubahan Kode
Mari mendemonstrasikan Flash Zero pada tugas klasifikasi Tabular sederhana lainnya dari Kaggle — Tabular Playground Series — Nov 2021.
Memainkan tabular dengan Petir⚡Flash
Dalam hal ini, kami akan mengganti skrip pelatihan python yang kami tulis, yang secara berurutan membuat data, model, dan pelatih:
Dengan satu panggilan CLI:
flash tabular_classification
–model.learning_rate=0.01
–model.optimizer=”AdamW”
–trainer.max_epochs 20
–trainer.accumulate_grad_batches=12
–trainer.gradient_clip_val=0.1
dari_csv
–train_file=/home/jirka/Downloads/train.csv
–numerical_fields=”[‘f0’, ‘f1’, …, ‘f99’]”
–target_fields=”target”
–batch_size=512
Pada akhirnya, kita dapat menelusuri kemajuan pelatihan dengan TesorBoard karena ini juga merupakan pencatat Flash Lightning default:
tensorboard –logdir ./lightning_logs
Peramalan tabel data deret waktu
Baru-baru ini Lightning Flash juga memperkenalkan peramalan tabular dengan deret waktu, yang kami tunjukkan pada kompetisi yang benar-benar berjalan yang memprediksi nilai target nilai Crypto.
Contoh undian deret waktu kripto dengan paket mplfinance.
Kernel Kaggle yang sedang berlangsung dengan demo crypto dapat ditemukan di sini:
Crypto peramalan dengan Petir⚡Flash
Apakah Anda tertarik dengan integrasi PyTorch Lightning yang lebih keren?
Ikuti saya dan bergabunglah dengan komunitas Slack kami yang fantastis!
tentang Penulis
Jirka Borovec memegang gelar Ph.D. di Computer Vision dari CTU di Praha. Dia telah bekerja di Machine Learning dan Data Science selama beberapa tahun di beberapa startup dan perusahaan IT. Dia senang menjelajahi masalah dunia yang menarik dan memecahkannya dengan teknik-teknik canggih dan mengembangkan proyek-proyek open-source.
Klasifikasi dan Regresi Tabular Menjadi Mudah dengan Kilat Petir awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI