সাইকিট-লার্ন

Scikit-learn provides a toolbox with solid implementations of a bunch of state-of-the-art models and makes it easy to plug them into existing applications. We’ve been using it quite a lot for music recommendations at Spotify and I think it’s the most well-designed ML package I’ve seen so far.

-- Erik Bernhardsson, Music Discovery & Machine Learning, Spotify

ওপেনসোর্স মেশিন লার্নিং এর হৃদয় হচ্ছে এই 'সাইকিট-লার্ন'। অনেকে একে 'এসকে-লার্ন' বলে থাকেন।

এখন একটু এই আসল 'সাইকিট-লার্ন' মেশিন লার্নিং লাইব্রেরি নিয়ে কথা বলি। এটা একটা অসাধারণ ওপেনসোর্স প্রজেক্ট, ফ্রি - সঙ্গে সোর্স কোড উন্মুক্ত। গিটহাবে গেলে দেখা যায় এই 'সাইকিট-লার্ন'এর হৃদয়। লাইন বাই লাইন। কিভাবে কাজ করে ভেতরে। সেকারণে দেখা যায় এর ভেতরের কাজ কারবার। এর ডেভেলপমেন্টে আছে বিশাল 'অ্যাক্টিভ' ইউজার কম্যুনিটি। এর ভেতরে প্রচুর নামকরা অ্যালগরিদম আছে যার ডকুমেন্টেশন পড়ে শিখেছি অনেক কিছু। মানে এই বুড়ো বয়সে।

আমার দেখামতে, ইন্ডাস্ট্রি, একাডেমিয়া - সব জায়গায় চলে এই জিনিস। বিশাল বিশাল প্রজেক্টে চলছে এই জিনিস। হাজারো স্টার্ট-আপের লাইফ লাইন হচ্ছে এই টুলস। স্টার্ট-আপদের শুরুতে টাকা কই? সবচেয়ে বড় জিনিস হচ্ছে ইন্টারনেটে ভর্তি এর হেল্প ফাইল আর টিউটোরিয়াল। 'সাইকিট-লার্ন'এর সাথে অন্য সাইন্টিফিক পাইথন টুলগুলোর ইন্টিগ্রেশন অনেক অনেক ভালো। আর তাই একে অনেক সময় 'সাইকিট-লার্ন' এপিআই হিসেবে বলে থাকি আমরা।

আমার দেখামতে পৃথিবীর কয়েকটা সেরা ইউজার জেনারেটেড ডকুমেন্টেশন প্রজেক্ট হচ্ছে এই 'সাইকিট-লার্ন'। অসম্ভব ভালো বলে এর কম্যুনিটি হেল্প ওয়ার্ল্ড ক্লাস।

'সাইকিট-লার্ন' এপিআই এর ব্যবহার দেখবো সামনে। এগুলো আসবে হাতেকলমে করতে করতে। একটা উদাহরণ দেই বরং। 'সাইকিট-লার্ন' মডেল মানে মেট্রিক্স ঠিকমতো কাজ করছে কিনা সেটার জন্য আছে sklearn.metrics মডিউল। চলুন ব্যবহার করি ফাংশন sklearn.metrics.accuracy_score.

# এখন বোঝার দরকার নেই
>>> import numpy as np
>>> from sklearn.metrics import accuracy_score
>>> y_pred = [0, 2, 1, 3]
>>> y_true = [0, 1, 2, 3]
>>> accuracy_score(y_true, y_pred)
আউটপুট
0.5
>>> accuracy_score(y_true, y_pred, normalize=False)
আউটপুট
2

মেশিন লার্নিং ব্যাপারটাকে দুভাগে করা যায়। ১. সুপারভাইজ্ড লার্নিং এবং ২. আন-সুপারভাইজ্ড লার্নিং। আরো কিছু ভাগ আছে। সেগুলো আমাদের এমুহুর্তে না জানলেও চলবে। এদুটোর মধ্যে সুপারভাইজ্ড লার্নিংএর ব্যবহারই বেশি। বেশি মানে আমাদের আশেপাশের সবকিছুই সুপারভাইজ্ড লার্নিং সমস্যা। আমাদের এই বইকে সীমাবদ্ধ রাখবো এই একটা সমস্যা নিয়ে।