
مكتبة تعلّم آلي تدفقي للتعلّم التدريجي على تدفقات البيانات، توفّر مُقدِّرات فورية، وكشف الانجراف والشذوذ، وخطوط المعالجة، والمقاييس، ومجموعات بيانات مدمجة للغة Python.
River هي مكتبة Python لـ التعلم الآلي عبر الإنترنت. تهدف إلى أن تكون المكتبة الأكثر سهولة للمستخدم للقيام بالتعلم الآلي على البيانات المتدفقة. River هي نتيجة اندماج بين creme و scikit-multiflow.
كمثال سريع، سنقوم بتدريب انحدار لوجستي لتصنيف مجموعة بيانات التصيد الاحتيالي للمواقع. إليك نظرة على أول ملاحظة في مجموعة البيانات.
>>> from pprint import pprint
>>> from river import datasets
>>> dataset = datasets.Phishing()
>>> for x, y in dataset:
... pprint(x)
... print(y)
... break
{'age_of_domain': 1,
'anchor_from_other_domain': 0.0,
'empty_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
الآن دعنا نشغل النموذج على مجموعة البيانات بطريقة التدفق. نقوم بالتناوب التسلسلي بين التنبؤات وتحديثات النموذج. وفي الوقت نفسه، نقوم بتحديث مقياس الأداء لمعرفة مدى جودة أداء النموذج.
>>> from river import compose
>>> from river import linear_model
>>> from river import metrics
>>> from river import preprocessing
>>> model = compose.Pipeline(
... preprocessing.StandardScaler(),
... linear_model.LogisticRegression()
... )
>>> metric = metrics.Accuracy()
>>> for x, y in dataset:
... y_pred = model.predict_one(x) # make a prediction
... metric.update(y, y_pred) # update the metric
... model.learn_one(x, y) # make the model learn
>>> metric
Accuracy: 89.28%
بالطبع، هذا مجرد مثال افتراضي. ندعوك للاطلاع على قسم المقدمة في الوثائق للحصول على برنامج تعليمي أكثر شمولاً.
صُممت River للعمل مع Python 3.11 وما فوق. يمكن إجراء التثبيت باستخدام pip:
pip install river
تتوفر حزم جاهزة (wheels) لأنظمة Linux و MacOS و Windows. هذا يعني أنه على الأرجح لن تحتاج إلى بناء River من المصدر.
واجهة River الأساسية عبر الإنترنت (learn_one / predict_one) ليس لها اعتماد على pandas. واجهة الدفعات الصغيرة (learn_many، predict_many، predict_proba_many، transform_many) مبنية على pandas وهي اختيارية:
pip install "river[pandas]"
يمكنك تثبيت أحدث إصدار تطويري من GitHub كالتالي:
pip install git+https://github.com/online-ml/river --upgrade
pip install git+ssh://[email protected]/online-ml/river.git --upgrade # using SSH
تتطلب هذه الطريقة تثبيت Cython و Rust على جهازك.
توفر River تطبيقات عبر الإنترنت لعائلات الخوارزميات التالية:
توفر River أيضًا أدوات مساعدة أخرى عبر الإنترنت:
اطلع على واجهة برمجة التطبيقات للحصول على نظرة شاملة
يجب أن تسأل نفسك إذا كنت بحاجة إلى التعلم الآلي عبر الإنترنت. الجواب على الأرجح لا. في معظم الأوقات، يؤدي التعلم بالدفعات المهمة بشكل جيد. قد يكون النهج عبر الإنترنت مناسبًا إذا:
بعض الخصائص المحددة لـ River هي:
لا تتردد في المساهمة بأي طريقة تريدها، نحن دائمًا منفتحون على الأفكار والنهج الجديدة.
يرجى الاطلاع على إرشادات المساهمة إذا كنت تريد إجراء تعديلات على قاعدة الكود.
إذا كانت River مفيدة لك، وكنت ترغب في الاقتباس منها في منشور علمي، يرجى الرجوع إلى الورقة البحثية المنشورة في JMLR:
@article{montiel2021river,
title={River: machine learning for streaming data in Python},
author={Montiel, Jacob and Halford, Max and Mastelini, Saulo Martiello
and Bolmier, Geoffrey and Sourty, Raphael and Vaysse, Robin and Zouitine, Adil
and Gomes, Heitor Murilo and Read, Jesse and Abdessalem, Talel and others},
year={2021}
}
River هي برنامج مجاني ومفتوح المصدر مرخص بموجب ترخيص BSD ثلاثي البنود.