
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
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 अन्य ऑनलाइन उपयोगिताएँ भी प्रदान करता है:
व्यापक अवलोकन के लिए API देखें
आपको स्वयं से पूछना चाहिए कि क्या आपको ऑनलाइन मशीन लर्निंग की आवश्यकता है। उत्तर संभवतः नहीं है। अधिकांश समय बैच लर्निंग बिल्कुल ठीक काम करता है। एक ऑनलाइन दृष्टिकोण तब उपयुक्त हो सकता है जब:
River की कुछ विशिष्टताएँ ये हैं कि:
आप जिस भी तरह से चाहें योगदान देने के लिए स्वतंत्र महसूस करें, हम हमेशा नए विचारों और दृष्टिकोणों के लिए तैयार हैं।
यदि आप कोड बेस में संशोधन लाना चाहते हैं तो कृपया योगदान दिशानिर्देश देखें।
यदि River आपके लिए उपयोगी रहा है, और आप इसे किसी वैज्ञानिक प्रकाशन में उद्धृत करना चाहते हैं, तो कृपया JMLR में प्रकाशित पेपर का संदर्भ लें: