প্রকল্প সম্পর্কে

রিভার হলো একটি ওপেন-সোর্স পাইথন লাইব্রেরি, যা অনলাইন মেশিন লার্নিংয়ের জন্য নিবেদিত, অর্থাৎ ডেটা স্ট্রিম থেকে একবারে একটি অবজারভেশন শেখা। এটি creme এবং scikit-multiflow প্রকল্প দুটির একীভূতকরণের ফলাফল হিসেবে উপস্থাপিত, এবং এর ঘোষিত লক্ষ্য হলো স্ট্রিমিং ডেটায় মেশিন লার্নিংয়ের জন্য একটি ব্যবহারকারী-বান্ধব লাইব্রেরি হওয়া। মূল ইন্টারফেসটি ইনক্রিমেন্টাল: মডেলগুলো learn_one এবং predict_one প্রকাশ করে, তাই প্রতিটি নমুনা আসার সাথে সাথে পূর্বাভাস ও আপডেট পরস্পর মিশ্রিতভাবে করা যায়, অতীতের ডেটা পুনরায় না দেখে। একটি কুইকস্টার্ট উদাহরণে বিল্ট-ইন Phishing ডেটাসেটে StandardScaler তারপর LogisticRegression-এর একটি পাইপলাইন ব্যবহার করে লজিস্টিক রিগ্রেশন প্রশিক্ষণ দেওয়া হয়, আর মডেলের সাথে সাথে একটি Accuracy মেট্রিকও আপডেট করা হয়। ইনস্টলেশন pip-এর মাধ্যমে (pip install river), Linux, macOS এবং Windows-এর জন্য হুইল প্রকাশিত হয়েছে। প্রকল্পটি Python 3.11 এবং তার উপরের সংস্করণ লক্ষ্য করে। মূল অনলাইন ইন্টারফেসে pandas-এর কোনো নির্ভরতা নেই; একটি মিনি-ব্যাচ ইন্টারফেস (learn_many, predict_many, predict_proba_many, transform_many) pandas-এর উপর নির্মিত এবং river[pandas] এক্সট্রার মাধ্যমে অপ্ট-ইন করা যায়। GitHub থেকে একটি ডেভেলপমেন্ট সংস্করণ ইনস্টল করা যায়, যার জন্য Cython এবং Rust প্রয়োজন। অন্তর্ভুক্ত অ্যালগরিদম পরিবারগুলোর মধ্যে রয়েছে বিভিন্ন অপটিমাইজারসহ লিনিয়ার মডেল, ডিসিশন ট্রি ও র‍্যান্ডম ফরেস্ট, অ্যাপ্রক্সিমেট নেয়ারেস্ট নেবার্স, অ্যানোমালি ডিটেকশন, ড্রিফট ডিটেকশন, রেকমেন্ডার সিস্টেম, টাইম সিরিজ পূর্বাভাস, ব্যান্ডিট, ফ্যাক্টরাইজেশন মেশিন, ইমব্যালেন্সড লার্নিং, ক্লাস্টারিং, ব্যাগিং/বুস্টিং/স্ট্যাকিং এবং অ্যাক্টিভ লার্নিং। অতিরিক্ত অনলাইন ইউটিলিটিগুলোর মধ্যে রয়েছে ফিচার এক্সট্র্যাকশন ও সিলেকশন, অনলাইন স্ট্যাটিস্টিকস ও মেট্রিক, প্রিপ্রসেসিং, বিল্ট-ইন ডেটাসেট, প্রগ্রেসিভ মডেল ভ্যালিডেশন এবং মডেল পাইপলাইন। README স্পষ্টভাবে তুলে ধরে কখন অনলাইন লার্নিং উপযুক্ত: যখন একটি মডেলের অতীত পুনরায় না দেখে নতুন ডেটা থেকে শেখা উচিত, যখন কনসেপ্ট ড্রিফটের প্রতি রোবাস্টনেস গুরুত্বপূর্ণ, অথবা যখন ডেভেলপমেন্ট ইভেন্ট-ভিত্তিক প্রোডাকশন সেটিংসের মতো হওয়া উচিত। এতে আরও উল্লেখ করা হয়েছে যে রিভার পারফরম্যান্সের চেয়ে স্পষ্টতা ও ব্যবহারকারীর অভিজ্ঞতাকে গুরুত্ব দেয়, একবারে একটি নমুনা প্রসেস করতে দ্রুত, এবং পাইথন ইকোসিস্টেমের বাকি অংশের সাথে সংহত হয়। ডকুমেন্টেশন riverml.xyz-এ হোস্ট করা, যেখানে প্যাকেজ রিলিজ, একটি awesome-online-machine-learning তালিকা, একটি 2022 GAIA উপস্থাপনা এবং অনলাইন ক্লাস্টারিং নিয়ে একটি KDD'22 পেপারের লিংক রয়েছে। প্রকল্পটি BSD 3-clause লাইসেন্সের অধীন, একটি পাবলিক রোডম্যাপ রয়েছে, এবং আলোচনা, ইস্যু ও অবদানকে স্বাগত জানায়। উদ্ধৃতির জন্য একটি JMLR পেপার পাওয়া যায়।