মেশিন লার্নিং এবং ডাটা সায়েন্স নিয়ে কাজ শুরু করতে গেলে ঠিক কোথাথেকে শুরু করব এটা অনেকেই বুঝতে পারি না। সেক্ষেত্রে বিভিন্ন সময় আমরা খুব র্যান্ডমলি বিভিন্ন পথে আগাতে থাকি এবং একটা স্ট্রাকচারাইজড ওয়ে না পেয়ে ডাটা সায়েন্সের কোর বিষয় গুলো নিয়ে আগাতে বিভিন্ন রকম প্রতিবন্ধকতার সম্মুখীন হয়ে থাকি। সেক্ষত্রে আমি নিজে যেভাবে মেশিন লার্নিং ও ডাটা সায়েন্স শিখছি সেটা শেয়ার করার জন্য এই রিপোটা ওপেন করেছি।
আমি শুরু থেকেই নিজেকে প্রশ্ন করব আর নিজে থেকেই সেই প্রশ্ন গুলোর সাবলিল উত্তর খুঁজে বের করার চেষ্টা করব। শুরুতে মেশিন লার্নিং আর ডাটা সায়েন্স কি সেটার একটা বেসিক ধারনা নেয়ার চেষ্টা করব আর ধাপে ধাপে বিভিন্ন দিক নিয়ে আলোচনা করব।
শুরুতেই যদি জিজ্ঞেস করি ডাটা সায়েন্স কেনো শিখব তাহলে এর উত্তরে সহজ কথাতে এটাই চিন্তার ভাজে ভাজে চলে আসে যে আমরা সারাদিন যে অবস্থায় থাকি না কেনো আমরা যে একটা বিষয়ের মধ্যে সবসময় ঘিরে থাকি তার নাম তথ্য। র্যান্ডমলি বিভিন্ন রকম তথ্য আমরা আমাদের সেন্স অর্গান থেকে নিচ্ছি প্রতিনিয়ত।
নিউ এইজে এসে আমাদের এই তথ্য যে আমরা শুধু আমাদের ব্রেইনের মধ্যেই আমরা সেভ করে রাখছি এমন না, আমাদের এখন ডাটা সেভ করার মত আর খুব দ্রুততম সময়ে ডাটাকে এক্সেস করার মত ডিভাইস হাতে থাকে। এত এত ডাটা আন অর্গানাইজড হয়ে থাকায় এর থেকে খুব বেশি মিনিংফুল কোনো কিছুই বের করতে পারি না। অন্যদিকে আমরা নিজেদের চিন্তার জগতে যখন খুব বেশি র্যান্ডম ডাটা নিয়ে ভেবে কোনো সিদ্ধান্ত নিয়ে ভুল করে বসে ভাবতে থাকি আরেকটু গোছানো ভাবে চিন্তা করলে হয়ত আমি ঠিক ঠাক সিদ্ধান্ত টাই নিতে পারতাম , তখন অনেকের মাথায় বিভিন্ন ভাবে নিজের চিন্তাকে গোছানোর উপায় বের করেছেন এবং সেটা এপ্লাই করেছেন জীবনে।
ডাটা সায়েন্সের ক্ষেত্রেও এমন যে মিলিয়ন পেটা বাইট ডাটার আন স্ট্রাকচার্ড ফ্রেমওয়ার্কে বসে যদি সেগুলোকে কোনো ভাবে ইমপ্লিকেবল ওয়েতে সাজানো যায় , সেই ডাটা দিয়ে বিভিন্ন ভাবে ভাল সিদ্ধান্ত নেয়া যাবে।
ডাটা সায়েন্সের প্রধান কাজটাই হলো কোনো একটা পরিস্থিতিতে ব্যাবহারকারীকে ভাল একটা সিদ্ধান্ত নিতে সাহায্য করা। সময়ের সাথে সাথে এখন ডাটা সায়েন্সের অনেক বেশি চাহিদা তৈরি হয়েছে। নিজের ডাটা সায়েন্সের জার্নিটার একটা ডকুমেন্টেশন করার জন্য আমার এই রিপোটা ওপেন করা।
- যে সমস্যা নিয়ে কাজ করতে চাই সেই সমস্যা কিংবা প্রশ্নকে ঠিকঠাক আর্টিকুলেট করতে পারছি কিনা?
- এনালাইসিসের মেথড কিংবা উদ্দেশ্যটা ঠিক মত বুঝছি কিনা?
- এনালাইসিস করার মত বিভিন্ন জায়গায় পর্যাপ্ত ডাটা আছে কিনা?
- ডাটা কালেক্ট করার পর সেই ডাটা গুলো কি এনালাইসিসের জন্য উপযোগী কিনা?
এই দুটি ধাপ পার হয়ে আসলে আমাদের হাতে বেশ কিছু বিভিন্ন ফর্মেটের আন অর্গানাইজড ডাটা থাকবে, এখন আমাদের যা করতে হবে,
- ডাটাবেইজে কোনো মিসিং ডাটা আছে কি?
- ডাটা বেইজে কোনো ডূপ্লিকেট ডাটা আছে কি?
- ডাটা গুলোকে স্ট্যান্ডার্ড ডাটা ফর্মেটে নিয়েছি কি?
এমন ভাবে ডাটা ক্লিন করতে হবে যেন আমরা ডাটাগুলোকে এনালিটিক্যাল স্টেজে নিয়ে যেতে পারি। এনালিটিক্যাল স্টেজে আসলে আমাদের যে কাজ গুলো করতে হবে,
- ডাটার প্রধান ক্যারাক্টারিস্টিক গুলো ডেস্ক্রিপটিভ স্ট্যাটেস্টিক্যাল মেথড ব্যাবহার করে বের করতে হবে।
- ডাটার প্যাটার্ন বোঝার জন্য তার ধরন অনুযাইয়ী বিভিন্ন চার্ট, গ্রাফ, হিস্টোগ্রাম ইত্যাদির সাহায্যে ভিজুয়ালি দেখে নিতে হবে।
- বিভিন্ন ভ্যারিয়েবল গুলোর মধ্যে কোনো রকম রিলেশন আছে কিনা দেখে নিতে হবে।
- ডাটার ফর্মেটে চেঞ্জ আনার দরকার হলে কিংবা ডাটাকে স্কেলিং করার প্রয়োজন হলে সেটি করতে হবে।
- ডাটাসেটে আউটলায়ার আছে কিনা দেখে প্রয়োজনীয় কাজ গুলো করে নিতে হবে।
- ডাটা গুলোকে একই রকম ভাবে তুলনা করার জন্য নর্মালাইজিং কিংবা স্ট্যান্ডার্ডাইজিং করতে হবে।
- মডেলের পার্ফর্মেন্স বৃদ্ধি করা যাবে এমন কোনো ফিচার থাকলে এড করার দরকার হতে পারে।
- এনালাইসিসে ভাল ফল দেয় এমন ফিচার গুলো মডেলে এড করতে হবে।
- প্রশ্নের উত্তর কিংবা সমস্যা সমাধানে কাজে লাগবে এমন মডেল বেছে নিতে হবে। (ক্লাসিফিকেশন, রিগ্রেশন, ক্লাস্টারিং ইত্যাদি)
- ডাটাকে টেস্ট ডাটা আর ট্রেনিং ডাটাতে ভাগ করে নিতে হবে।
- টেস্ট ডাটা ব্যাবহার করে মডেল ট্রেইন করে নিতে হবে।
- মডেল কতটুকু নির্ভুক উত্তর দিচ্ছে সেটা মাপতে হবে।
- টেস্ট ডাটা ডাটা দিয়ে মডেলের কার্যকারীতা দেখে নিতে হবে।
- প্রয়োজন হলে মত মডেলের প্যারামিটার ঠিক ঠাক করে নিতে হবে।
এবং শেষের দিকে এসে
- মডেলের কার্যকারীতা ও এনালাইসিসের নির্ভুলতা দেখে একটা সিদ্ধান্তে আসতে হবে
- প্রাপ্ত ফল দিয়ে যে সমস্যা কিংবা প্রশ্নের উত্তর খোঁজা হচ্ছিলো সেটার সাথে মিলিয়ে দেখতে হবে।
- রেজাল্টকে সাধারন ভাবে বোঝা যায় এমন ভাবে শেয়ার করা।
- গল্প বলার আঙ্গিকে পুরো সমস্যা নিরুপন থেকে রেজাল্ট পাওয়ার পথটা দেখানো যেতে পারে
- এনালাইসিসের উপর ভিত্তি করে কি কি স্টেপ নেওয়া যায় সেগুলো রেকোমেন্ড করতে হবে।
- পুরো এনালাইসিস প্রসেসকে রিভিউ করে ইম্প্রুভ করার জায়গা থাকলে খুঁজে বের করতে হবে
- এনালাইসিস টা পুনরায় করার সময় যদি কোনো ইম্প্রুভ করার জায়গা থাকে সেখানে সেগুলো ইমপ্লিমেন্ট করতে হবে।