
Python के लिए डेटा स्ट्रीम पर इंक्रीमेंटल लर्निंग हेतु स्ट्रीमिंग मशीन लर्निंग लाइब्रेरी, जो ऑनलाइन एस्टीमेटर, ड्रिफ्ट और एनोमली डिटेक्शन, पाइपलाइन, मेट्रिक्स और अंतर्निहित डेटासेट प्रदान करती है।
River, ऑनलाइन मशीन लर्निंग के लिए एक Python लाइब्रेरी है। इसका लक्ष्य स्ट्रीमिंग डेटा पर मशीन लर्निंग करने के लिए सबसे उपयोगकर्ता-अनुकूल लाइब्रेरी बनना है। River, creme और scikit-multiflow के बीच विलय का परिणाम है।
एक त्वरित उदाहरण के रूप में, हम website phishing dataset को वर्गीकृत करने के लिए एक logistic regression प्रशिक्षित करेंगे। यहाँ डेटासेट के पहले अवलोकन पर एक नज़र है।
>>> 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%
बेशक, यह केवल एक कृत्रिम उदाहरण है। अधिक गहन ट्यूटोरियल के लिए हम आपका स्वागत प्रलेखन के introduction अनुभाग को देखने के लिए करते हैं।
River को Python 3.11 और उससे ऊपर के साथ काम करने के लिए डिज़ाइन किया गया है। इसे pip द्वारा स्थापित किया जा सकता है:
pip install river
Linux, MacOS और Windows के लिए wheels उपलब्ध हैं। इसका मतलब है कि आपको संभवतः River को स्रोत से बनाने की आवश्यकता नहीं होगी।
River का मुख्य ऑनलाइन इंटरफ़ेस (learn_one / predict_one) pandas पर निर्भर नहीं है। मिनी-बैच इंटरफ़ेस (learn_many, predict_many, predict_proba_many, transform_many) pandas पर आधारित है और वैकल्पिक (opt-in) है:
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 अन्य ऑनलाइन उपयोगिताएँ भी प्रदान करता है:
व्यापक अवलोकन के लिए API देखें।
आपको स्वयं से पूछना चाहिए कि क्या आपको ऑनलाइन मशीन लर्निंग की आवश्यकता है। उत्तर संभवतः नहीं है। अधिकांश समय बैच लर्निंग काम पूरा कर देती है। एक ऑनलाइन दृष्टिकोण उपयुक्त हो सकता है यदि:
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, 3-clause BSD license के अंतर्गत लाइसेंस प्राप्त मुफ्त और ओपन-सोर्स सॉफ्टवेयर है।