River adalah perpustakaan Python untuk pembelajaran mesin online. Ini bertujuan untuk menjadi perpustakaan paling ramah pengguna untuk melakukan pembelajaran mesin pada data streaming. Sungai adalah hasil dari merger antara creme dan scikit-multiflow.
Sebagai contoh cepat, kami akan melatih regresi logistik untuk mengklasifikasikan dataset phishing situs web. Berikut ini adalah pengamatan pertama dalam dataset.
>>> Dari PPRINT Impor PPRint >>> Dari Sungai Impor Dataset >>> Dataset = Datasets.phishing () >>> untuk x, y dalam dataset: ... PPRint (x) ... Cetak (Y) ... break {'age_of_domain': 1, 'anchor_from_other_domain': 0.0, 'kosong_server_form_handler': 0.0, 'https': 0.0, 'ip_in_url': 1, 'is_popular': 0.5, 'long_url': 1.0, 'popup_window' : 0.0, 'request_from_other_domain': 0.0} true
Sekarang mari kita jalankan model pada dataset dengan cara streaming. Kami secara berurutan menginterasi prediksi dan memodelkan pembaruan. Sementara itu, kami memperbarui metrik kinerja untuk melihat seberapa baik modelnya.
>>> Dari Impor Sungai Compose >>> dari Impor Sungai Linear_Model >>> dari metrik impor sungai >>> dari preprocessing impor sungai >>> model = compose.pipeline ( ... preprocessing.standardscaler (), ... linear_model.logisticregression () ...) >>> metrik = metrics.accuracy () >>> untuk x, y dalam dataset: ... y_pred = model.predict_one (x) # membuat prediksi ... metric.update (y, y_pred) # Perbarui metrik ... model.learn_one (x, y) # Buat model belajar >>> Metricaccuracy : 89.28%
Tentu saja, ini hanya contoh yang dibuat -buat. Kami menyambut Anda untuk memeriksa bagian pengantar dokumentasi untuk tutorial yang lebih menyeluruh.
Sungai dimaksudkan untuk bekerja dengan Python 3.8 ke atas . Instalasi dapat dilakukan dengan pip
:
Pip Instal River
Ada roda yang tersedia untuk Linux, MacOS, dan Windows. Ini berarti Anda kemungkinan besar tidak perlu membangun sungai dari sumber.
Anda dapat menginstal versi pengembangan terbaru dari GitHub sebagaimana:
Pip Instal GIT+https: //github.com/online-ml/river-upgrade Pip Instal Git+SSH: //[email protected]/online-ml/river.git-Upgrade # Menggunakan SSH
Metode ini mengharuskan cython dan karat diinstal pada mesin Anda.
River menyediakan implementasi online dari keluarga algoritma berikut:
Model linier, dengan beragam pengoptimal
Keputusan pohon dan hutan acak
(Perkiraan) Tetangga terdekat
Deteksi anomali
Deteksi drift
Sistem Rekomendasi
Peramalan seri waktu
Bandit
Mesin faktorisasi
Pembelajaran yang tidak seimbang
Kekelompokan
Mengantongi/meningkatkan/menumpuk
Giat belajar
Sungai juga menyediakan utilitas online lainnya:
Ekstraksi dan seleksi fitur
Statistik dan metrik online
Preprocessing
Dataset bawaan
Validasi model progresif
Pipa Model
Lihat API untuk Tinjauan Komprehensif
Anda harus bertanya pada diri sendiri apakah Anda memerlukan pembelajaran mesin online. Jawabannya kemungkinan tidak. Sebagian besar pembelajaran batch waktu melakukan pekerjaan dengan baik. Pendekatan online mungkin sesuai dengan tagihan jika:
Anda menginginkan model yang dapat belajar dari data baru tanpa harus mengunjungi kembali data masa lalu.
Anda menginginkan model yang kuat untuk konsep drift.
Anda ingin mengembangkan model Anda dengan cara yang lebih dekat dengan apa yang terjadi dalam konteks produksi, yang biasanya berbasis peristiwa.
Beberapa kekhususan sungai adalah itu:
Ini berfokus pada kejelasan dan pengalaman pengguna, lebih dari kinerja.
Sangat cepat dalam memproses satu sampel sekaligus. Cobalah, Anda akan lihat.
Ini bermain baik dengan ekosistem Python lainnya.
Dokumentasi
Rilis Paket
LEARNING AWESH-ONLINE-MACHINE
2022 Presentasi di Gaia
Clustering Online: Algoritma, Evaluasi, Metrik, Aplikasi dan Benchmarking dari KDD'22.
Jangan ragu untuk berkontribusi dengan cara apa pun yang Anda sukai, kami selalu terbuka untuk ide dan pendekatan baru.
Buka diskusi jika Anda memiliki pertanyaan atau pertanyaan apa pun. Lebih berguna untuk mengajukan pertanyaan Anda di depan umum daripada mengirimi kami email pribadi. Ini juga didorong untuk membuka diskusi sebelum berkontribusi, sehingga semua orang selaras dan pekerjaan yang tidak perlu dihindari.
Jangan senang membuka masalah jika Anda pikir Anda telah melihat bug atau masalah kinerja.
Peta jalan kami adalah publik. Jangan ragu untuk mengerjakan apa pun yang menarik perhatian Anda, atau membuat saran.
Silakan periksa pedoman kontribusi jika Anda ingin membawa modifikasi ke basis kode.
Jika sungai telah berguna bagi Anda, dan Anda ingin mengutipnya dalam publikasi ilmiah, silakan merujuk ke makalah yang diterbitkan di JMLR:
@Article {montiel2021river, title = {River: Machine Learning for Streaming Data di Python}, penulis = {Montiel, Jacob dan Halford, Max dan Mastelini, Saulo Martiello dan Bolmier, Geoffrey dan Sowty, Raphael dan Vayse, Robin dan ZoUitine, Adil dan Cowl dan Gomes, Heitor Murilo dan Read, Jesse dan Abdessalem, Talel dan lainnya}, tahun = {2021}}
Sungai gratis dan perangkat lunak sumber terbuka yang dilisensikan di bawah lisensi BSD 3-klausa.