ডেটা সাইন্স পাইপলাইন এবং ডোমেইন নলেজ
“There is no friend so faithful as a good book. There is no worse robber than a bad book.”― Italian proverb
Last updated
“There is no friend so faithful as a good book. There is no worse robber than a bad book.”― Italian proverb
Last updated
ডেটা সাইন্স পাইপলাইন
কোন ডেটা সাইন্স প্রজেক্ট শুরু হয় বাস্তব জগতের কোন সমস্যা থেকেই। সমস্যার উপর ভিত্তি করেই বাস্তব জগত থেকে ডেটা সংগ্রহ করা হয় অথবা ইতোমধ্যে সংগ্রহীত ডেটা কাজে লাগানো হয়। আমাদের ডেটাসেট বেশিরভাগ ক্ষেত্রেই মডেলিং এর জন্য উপযোগী থাকবে না, আমাদের ডেটায় প্রচুর গারবেজ ভ্যালু অথবা মিসিং ভ্য্যালু থাকতে পারে। এজন্য ডেটাকে ক্লিন করে নিতে হয়। কখনো-কখনো পরবর্তী ধাপের জন্য ডেটাকে ট্রান্সফারমেনশন করে নিতে হয়, এরপর ডেটা মডেলিং এর জন্য প্রস্তুত হয়। তবে ডেটা থেকে মডেল তৈরির আগে আমরা ডেটাকে এনালাইসিস করে দেখি ডেটার ভেতরে ইনসাইটস কি আছে ? এটাকে বলা হয় এক্সপ্লোরেটেরি ডেটা এনালাইসিস বা ইডিএ। এই ইডিএ আমাদের অনেকটাই ধারনা দেয় এই ডেটার জন্য কি ধরনের মডেল উপযুক্ত হতে পারে। ডেটা কে মেশিন লার্নিং মডেলে ফেললেই একজন ডেটা সাইন্টিস্ট এর কাজ শেষ হয় না। মেশিন লার্নিং মডেল কতখানি নির্ভুল সেটাও আমাদের জানতে হবে। এজন্য আমরা একই ডেটাসেটের উপর ভিন্ন ভিন্ন মেশিন লার্নিং মডেলে প্রয়োগ করে দেখতে পারি কোনটা সবথেকে ভালো কাজ করে। এরপর চুড়ান্ত মডেল পাওয়া গেলে সেটাই ক্লাইন্টকে ডেলিভার করা হয়।
একটি ডেটাসাইন্স পাইপলাইন ইটারেটিভ প্রসেস অর্থাৎ সবসময় চলমান থাকে । আমাদের মডেল যা ফলাফল দেয় সবসময়ই তা বাস্তব জগতের সাথে যাচাই করা হয় এবং মডেলকে আরও উন্নত করার জন্য প্রতিনিয়ত এই পাইপলাইনে প্রয়োজনীয় পরিবর্তন আনা হয়, এভাবেই মডেল সময়ের সাথে আরও নির্ভুল এবং উন্নত হয়ে উঠতে থাকে।
ডোমাইন নলেজ
ডেটা সাইন্স প্রসেসের শুরুর ধাপ হচ্ছে আমরা কি করতে যাচ্ছি সেটা জানা অর্থাৎ কোন ডেটা সাইন্স প্রজেক্ট থেকে আমরা কি আউটপুট বা রেজাল্ট পেতে চাই সেটা নির্ধারণ করা। সফটওয়্যার বা সিস্টেম ডেভলপমেন্ট প্রজেক্টের সাথে এই ধাপটির বেশ মিল রয়েছে। SDLC তে যেমন প্রথমেই জেনে নেয়া হয় ইউজার এর চাহিদা অর্থাৎ ইউজার বা ব্যবহারকারী এই সফটওয়্যার ব্যবহার করে কি করতে চায় ? ডেটা সাইন্স প্রজেক্টের ক্ষেত্রেও প্রথম ধাপেই জেনে নিতে হবে এই প্রজেক্টের মাধ্যমে ইউজার কি আউটপুট চায়।
ইউজারের এই চাহিদা জেনে নেয়ার সাথে আরেকটি বিষয় অত্যন্ত গুরুত্বপূর্ণ, সেটি হচ্ছে বিজনেস আন্ডারস্টান্ডিং এবং ডোমেইন নলেজ। আমরা যে ডেটা নিয়ে কাজ করব সেই ডেটা মূলত বাস্তব জগতের যেখান থেকে এসেছে , সেবিষয়ে জানাটা অত্যন্ত গুরুত্বপূর্ণ। অর্থাৎ কোন পক্রিয়ার মাধ্যমে ডেটা জেনারেট হয়, কিভাবে ডেটা মেজারমেন্ট করা হয়, ডেটার সব কয়টি এট্রিবিউট বা ফিচার সম্পর্কে ধারনা ইত্যাদি। অর্থাৎ ঐ ডেটার বাস্তব জগতের সম্পূর্ণ পদ্ধতি এবং প্রতিটি ফিচার সম্পর্কে ধারনাকেই বিজনেস আন্ডারস্টান্ডিং এবং ডোমেইন নলেজ বলে।
আইরিস ডেটাসেটের উদাহরন ডেটা সাইন্স গোল এবং ডোমেইন নলেজের বিষয়টির ধারনা আমরা পরিষ্কার করবো বিশ্ববিখ্যাত আইরিস ডেটা সেটের মাধ্যমে। আইরিস ডেটা সেটের জনক হচ্ছে পরিসংখ্যানবিদ এবং জীববিজ্ঞানী R.A. Fisher । আইরিস হচ্ছে একটি ফুলের নাম। আইরিস ডেটা সেটেকে একারনে আইরিস ফ্লাওয়ার ডেটা সেটও বলা হয়। বিজ্ঞানী R.A. Fisher, ১৯৩৬ সালে এই ডেটা সেটটি প্রকাশ করেন।
আইরিস ফুলের ৩টি প্রজাতি রয়েছে। এগুলো হচ্ছে আইরিস সেটোসা (Iris Setosa) , আইরিস ভারসি কালার (Iris Versicolour) এবং আইরিস ভারজিনিকা ( Iris Virginica)।
আইরিস ডেটা সেটে এই ৩ প্রজাতির আইরিস ফুলের তথ্য সংগ্রহ করা হয়েছে মূলত বৃত্যংশের দৈর্ঘ্য (sepal length) , বৃত্যংশের প্রস্থ (sepal width) , পাপড়ির দৈর্ঘ্য (petal length) এবং পাপড়ির প্রস্থের (petal width) উপর ভিত্তি করে। ফুলটি কোন প্রজাতির সেটা লেবেল হিসাবে রাখা হয়েছে Class Lebel এ। এভাবে ১৫০ টি অবজারভেশন বা রেকর্ড রয়েছে এই ডেটা সেটে।
ডেটাসেট- সম্পূর্ণ ডেটা কে একসাথে বলা হয় ডেটা সেট
রেকর্ড- ডেটা সেটে অবজারভেশনের সংখ্যা বা সহজ কথায় রো এর সংখ্যা হচ্ছে রেকর্ড, যেমন আইরিস ডেটা সেটে রেকর্ড হচ্ছে ১৫০ টি
ফিচার- ফিচার হচ্ছে বৈশিষ্ট্য, একে ফিচার এট্রিবিউটও বলা যায়। ফিচার মূলত ইন্ডিপেনডেন্ট বা স্বাধীন। ফিচারের মানের পরিবর্তনের বা পার্থক্যের কারনেই লেবেলের মানের পরিবর্তন হয়। আইরিস ডেটা সেটে ৪ টি ফিচার আছে , এগুলো হচ্ছে বৃত্যংশের দৈর্ঘ্য (sepal length) , বৃত্যংশের প্রস্থ (sepal width) , পাপড়ির দৈর্ঘ্য (petal length) এবং পাপড়ির প্রস্থের (petal width) ।
লেবেল- লেবেল হচ্ছে ডিপেন্ডেন্ট ভেরিয়েবল, ফিচারের মানের উপর ভিত্তি করে লেবেলের মানের পার্থক্য হয়। লেবেলকে টার্গেট ভেরিয়েবলও বলা যায়। তবে সব ডেটাসেটে লেবেল নাও থাকতে পারে, সাধারনত আনসুপারভাইজড লার্নিং এর ক্ষেত্রে ডেটাসেটে লেবেল ডেটা থাকে না। আইরিস ডেটাসেটে লেবেল ডেটা রয়েছে, ফিচারের উপর ভিত্তি করে ফুলের প্রজাতিটি Iris Setosa, Iris Versicolour নাকি Iris Virginica হবে সেটি লেবেলের মাধ্যমে নির্দেশিত হয়।
ডেটা সাইন্স প্রজেক্ট বোঝার জন্য এটি একটি চমৎকার ডেটা সেট। এই ডেটা সেটে মাত্র ৪ টি ফিচার , ১টি লেবেল এবং ১৫০ টি অবজারভেশন রয়েছে। ছোট এই ডেটা সেটটি তাই ডেটা সাইন্স বোঝার জন্য অসাধারণ।
একনজরে আইরিস ডাটাসেট,
ফিচারের সংখ্যা- ৪টি (রিয়েল নাম্বার/ নিমেরিক ভ্যালু)
sepal length, পরিমাপের একক cm
sepal width, পরিমাপের একক cm
petal length, পরিমাপের একক cm
petal width, পরিমাপের একক cm
টার্গেট এট্রিবিউট/ লেবেল এট্রিবিউট - ১টি
class: (ক্যাটেগরি / ক্লাস ৩টি)
Iris Setosa
Iris Versicolour
Iris Virginica
রেকর্ড সংখ্যা- ১৫০ টি
কি বুঝলাম?
আইরিস হচ্ছে একটু ফুলের ডাটাসেট। এই ফুলের ৩টি প্রজাতি রয়েছে। বৃত্যংশ এবং পাপড়ির সাইজের পার্থক্যের কারনেই প্রজাতি ৩ টি আলাদা হয়ে থাকে। এটাই হচ্ছে ডোমেইন নলেজ !
কি করতে চাই?
ডোমেইন নলেজ তো পাওয়া গেল, কিন্তু নলেজ কি কাজে লাগবে? ধরুন একটা প্রোগ্রাম বানাতে হবে আইরিস ডেটাসেটের উপর ভিত্তি করে অর্থাৎ আইরিস ডেটাসেটের মাধ্যমে কম্পিউটারকে ট্রেনিং দেব যাতে বৃত্যংশ এবং পাপড়ির সাইজের পার্থক্যের সাথে আইরিস ফুলের প্রজাতির সম্পর্কটা কম্পিউটার নিজ থেকেই বুঝে ফেলতে পারে। কম্পিউটারকে এভাবে ট্রেনিং দেবার পর, আইরিস ডেটাসেটের রেকর্ডের বাইরের অজানা কোন আইরিস ফুলের বৃত্যংশ এবং পাপড়ির দৈর্ঘ্য এবং প্রস্থের মান ইনপুট দিলে কম্পিউটার নিজেই বলে দিতে পারবে প্রজাতিটি কি Iris Setosa, Iris Versicolour নাকি Iris Virginica ! আর এটাকেই বলে মেশিন লার্নিং। ডেটাসেট ও ডোমেইন নলেজের উপর ভিত্তি করে আমরা যা করতে চাই সেটাই হোল ডেটা সাইন্স প্রজেক্টের গোল সেট করা।