ডেটা সায়েন্টিস্ট হওয়ার প্রস্ততি

মার্চ ৮, ২০১৭

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

যে কারণে নিকট ভবিষ্যতে আমাদের অনেক ডেটা সায়েন্টিস্ট দরকার হবে। দেশের চাহিদা মেটাতে আমাদের নিজেদের মধ্যে থেকেই সেই স্থান পুরণ করতে হবে। আমার কাছে অনেকেই প্রশ্ন করে কিভাবে ডেটা সায়েন্টিস্ট হওয়া যায়। আমি কথোপকথনের মাধ্যমে পুরো প্রসেসটার একটা সারাংশ দেয়ার চেষ্টা করেছি।

কাদের জন্য ডেটা সায়েন্টিস্ট সাব্জেক্ট?

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

ডেটা সায়েন্টিস্ট হওয়ার ৭টি ধাপ

যদি গুগল করেন how to become a data scientist, অনেক সাইট পাবেন যেখানে ধাপগুলো বলা আছে। এদের মধ্যে সবচেয়ে কম্প্রিহেনসিভ তালিকা দিয়েছে ডেটা ক্যাম্প। আমি তাদের মডেলটি আমার মতো করে লিখছি। ইনফোগ্রাফ দেখতে চাইলে সরাসরি তাদের সাইটে দেখা যাবে।

সংক্ষেপে ৭টি ধাপ নিম্নরূপ।

১. পরিসংখ্যান, গণিত ও মেশিন লারনিংএর পাঠ

২. প্রোগ্রামিং শেখা

৩. ডেটাবেইজ সম্পর্কে ধারণা রাখা

৪. ডেটা ম্যানিপুলেশন, ক্লিনিং ও ভিজুয়ালাইজেশন

৫. ছোট ডেটা থেকে বিগ ডেটা নিয়ে কাজ করা শেখা

৬. ছোট ছোট প্রজেক্টের মাধ্যমে বাস্তব কাজের অভিজ্ঞতা অর্জন করা

৭. নিজেকে আপডেটেড রাখা এবং ডেটা সায়েন্স কমিউনিটিতে যুক্ত থাকা

বিস্তারিত দিচ্ছি।

১. পরিসংখ্যান, গণিত ও মেশিন লারনিংএর পাঠ

আপনি পরিসংখ্যানের ছাত্র হলে এই অংশটুকু স্কিপ করতে পারেন। যদি পুরানো টপিকগুলো ঝালাই করার দরকার হয় তাহলে নিচের সূত্রগুলো রিভিউ করে নিতে পারেন।

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

বাংলায় পাইথন দিয়ে মেশিন লারনিং এর একটা ভালো বই পাওয়া যাবে এখানে।

মেশিন লারনিং শিখতে সবচেয়ে বেশী সময় ব্যয় হবে। ওভারল ধারণা নিতে কমপক্ষে ৩ মাস সময় ব্যয় করতে হবে। কারো কারো আরে বেশী সময় লাগতে পারে।

২. প্রোগ্রামিং

মূলত স্ট্যাটিসটিক্যাল প্রোগ্রামিং জানতে হবে। এর জন্য R বা SAS বা Python এর যে কোনটি কিংবা একাধিক ল্যাঙ্গুয়েজ সম্পর্কে জ্ঞান নিতে হবে। যারা ইতোমধ্যেই পরিসংখ্যান শিখেছেন এবং R বা SAS এর সাথে পরিচিত তারা এগুলো রিভিউ করে নিবেন। আর নতুন ল্যাঙ্গুয়েজ শিখতে চাইলে পাইথন শেখার পরামর্শ দিবো।

R শেখার অসংখ্য সাইট আছে। যেটা ভালো লাগে সেটা দিয়ে শিখে নিন। ট্রাই-আর নামে একটা সাইট আছে সেটা কোডস্কুল পরিচালনা করে। ওদের লিংক http://tryr.codeschool.com/

Python শেখার জন্য সেরকম অনেক সাইট আছে। গুগলের একটা সাইট হল https://developers.google.com/edu/python/

SAS শেখার জন্য ওদের সাইটে কিছু ভিডিও আছে। আর বাংলায় স্যাস-এর একটা কোর্স শিক্ষক ডট কম সাইটে আছে।

ব্যক্তিগতভাবে আমি ওপেন সোর্স এবং ফ্রি সফটওয়্যার পছন্দ করি। তবে কমার্শিয়াল সফটওয়্যারের মধ্যে অন্যতম হল স্যাস। আমেরিকায় হেল্থকেয়ার এবং ফাইন্যানশিয়াল অর্গানাইজেশনে স্যাস ব্যবহার করে। আমার কাছ স্ট্যাকচারড ডেটার ম্যানেজমেন্ট এবং প্রসেসিং এর জন্য স্যাস পছন্দ। আর মডেলিং এর জন্য R পছন্দের।

৩. ডেটাবেইজ সম্পর্কে ধারণা রাখা

ডেটা সায়েন্টিস্টদের কাজের প্রথম ধাপ হলো ডেটাবেইজ থেকে ডেটাকে কোয়েরি করে এনে তারপর কাজ করা। ডেটাবেইজে ম্যাসিভ এমাউন্ট অব ডেটা স্টোর করা থাকে। কোন একটি নির্দিষ্ট বিজনেজ কোশ্চেন উত্তর করতে সব ডেটার দরকার হয়না। শুধু দরকারি ভ্যারিয়েবলগুলোকে নিয়ে মূল ডেটার একটা সাবসেট নিয়ে কাজ করা হয়। সেজন্যই কোয়েরি ল্যাংগুয়েজ জানতে হয়।

SQL হলো structured query language. এটি আমার মতে দুনিয়ার সবচেয়ে সহজ ল্যাংগুয়েজ। খুবই সহজ। যে কেউই এর লজিকটি একবার বুঝে উঠলে এই ল্যাংগুয়েজ নিয়ে কাজ করা তার জন্য একদম পানির মতো। আপনাকে মাস্টার হতে হবে না। ধারণা থাকলেই কাজ চালাতে পারবেন। তবে এফিশিয়েন্ট কোয়েরি কিভাবে লিখতে হয় সেটার জন্য একটু বেশী করে পড়াশুনা করতে হবে যেটি দরকার মত করে নিতে হবে।

SQL কে সিকুয়েল বলে। সম্ভবত দ্রুত বলার জন্য এভাবে বলা হয়। তবে এসকিউএল বললেও সেটা ভুল বলা হবে না।

সিকুয়েল শেখার অনেক সাইটের মধ্যে http://www.sqlcourse.com/ দেখতে পারেন।

৪. ডেটা ম্যানিপুলেশন, ক্লিনিং ও ভিজুয়ালাইজেশন

ডেটা কোয়েরি করার পর সেটাকে সাইজ করতে হবে। এটাকে বলে ডেটা প্রিপারেশন বা ক্লিনিং। কিভাবে ক্লিন করতে হবে সেটা নির্ভর করবে কী প্রশ্নের উত্তর খোঁজা হচ্ছে তার উপর। আগে থেকে এসব স্থির করা থাকলে ডেটা ক্লিনিং এ সময় কম নষ্ট হয়। আমার অভিজ্ঞতার আলোকে দেখেছি ডেটা ক্লিনিং এর কোন নির্দিষ্ট নিয়ম বা প্রথা নেই। এটি পুরোপুরি অভিজ্ঞতানির্ভর এবং প্রজেক্ট নির্ভর। নির্দিষ্ট একটি প্রজেক্টের জন্য ধাপগুলো আপনাকেই বের করতে হবে।

ডেটা ক্লিনিং কে আবার ডেটা মানজিং (data munging) ও বলে। বিশেষ করে ডেটা সায়েন্স ফিল্ডের লোকজন এই শব্দ ব্যবহার করে। পরিসংখ্যানবিদরা হয়তো এই শব্দের সাথে পরিচিত নন।

R দিয়ে ডেটা ক্লিনিং এর জন্য দুইটা জনপ্রিয় প্যাকেজ আছে। সেগুলো হলো dplyr এবং data.table

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

ডেটা ভিজুয়ালাইজেশনের জন্য ggviz প্যাকেজ আছে। আর কমার্শিয়াল সফটওয়্যারের মধ্যে ট্যাবলো (Tableau) খুবই জনপ্রিয়। এদের ফ্রি ভারশনও আছে সেটাকে বলে কমিউনিটি এডিশন। আমি সবাইকে এই সফটওয়্যার সম্পর্কে ধারণা নেয়ার পরামর্শ দেই। ট্যাবলো একটি অতি জনপ্রিয় সফটওয়্যার যেটি ইন্ডাস্ট্রিতে ব্যাপকভাবে ব্যবহৃত হয়। এটি শেখা থাকলে আপনার রেজুমে অনেক শক্ত হবে।

৫. ছোট ডেটা থেকে বিগ ডেটা নিয়ে কাজ করা শেখা

ডেটা সায়েন্টিস্টদের প্রায়ই অনেক বড় বড় ডেটা নিয়ে কাজ করতে হয়। কত বড় ডেটা হলে সেটাকে বিগ ডেটা বলা যায় তার কোন সংজ্ঞা নেই। তবে যে ডেটা সাধারণ কনজিউমার লেভেলের কম্পিউটারে দিয়ে এনালাইজ করা যায় না সেই ডেটাকে বিগ ডেটা বলা যায়। একটি ৩ গিগাবাইট ডেটা আপনার ল্যাপটপে নিয়ে কাজ করা সহজ হবে না। এমনকি আপনার ১৬ গিগা ড়্যাম থাকলেও। আর ১০ গিগা বা তারচে বড় ডেটা খুবই কমন। সেগুলো সাধারণ কম্পিউটারের মেমরিতেই ফিট করবে না।

তো বিগ ডেটার জন্য আমাদের অন্যরকম সলুশন দরকার হয়। সহজ করে বলা যায় আপনি যে কোড লিখেছেন সেই কোডটিকে আরো বড় ডেটার উপর চালানোর জন্য অনেক সময় পরিবর্তন করে নিতে হয়। সেটা নির্ভর করে এভেইলেবল সফটওয়্যারের উপর এবং কোন ধরনের টুল ব্যবহার করছেন তার উপর। বিগ ডেটার জন্য হাডুপ (Hadoop) এবং ম্যাপরিডিউস একসময় খুব জনপ্রিয় ছিল। এখন আরো দ্রুত গতির সলুশন এসেছে। সেরকম একটি হলো স্পার্ক (Spark) – যেটি এপাচে’র প্রজেক্ট (Apache).

স্পার্ক ফ্রেমওয়ার্কে R এবং Python দুটো দিয়েই কাজ করা যায়। স্পার্ক এর R API হলো SparkR এবং পাইথন API হলো PySpark. আপনি যেটাতে স্বচ্ছন্দ বোধ করেন সেটি নিয়ে কাজ করবেন। স্পার্ক নিয়ে পরবর্তীতে বিস্তারিত লেখার ইচ্ছে আছে।

আরেকটি পাওয়ারফুল প্রজেক্ট আছে সেটি হলো H20. ওদের সাইট হলো h20.ai সময় করে দেখে নিতে পারেন। ইউটিউবে অনেক টিউটোরিয়াল আছে।

৬. ছোট ছোট প্রজেক্টের মাধ্যমে বাস্তব কাজের অভিজ্ঞতা অর্জন করা

এ পর্যন্ত যদি পড়ে থাকেন তাহলে বুঝতে পারছেন কত দ্রুত আপনাকে কতকিছু শিখতে হবে। এত কিছু শেখার পর আপনাকে জব মার্কেটে নামতে হবে। নামার আগে আপনাকে একটি পোর্টফোলিও তৈরী করতে হবে যেখানে আপনি কী কী কাজ করতে পারেন তার প্রোটোটাইপ উদাহরণ হিসেবে রাখতে হবে।

এই ধাপটিতে আমি মেন্টর করার চেষ্টা করবো। আপনি আগ্রহী হলে আমার সাথে যোগাযোগ রাখুন। শিঘ্রই কিছু ছোট প্রজেক্ট প্রকাশ করবো যেখানে আপনি টুলগুলো ব্যবহার করার চর্চা করতে পারবেন।

৭. নিজেকে আপডেটেড রাখা এবং ডেটা সায়েন্স কমিউনিটিতে যুক্ত থাকা

শেষ কথা হলো শেখার কোন শেষ নেই। টেকনলজি দ্রুত পরিবর্তনশীল। সময়ের সাথে তাই আপনাকেও থাকতে হবে আপডেটেড। নিজেকে আপডেটেড রাখার সবচেয়ে সহজ উপায় হলো এসব টুল নিয়ে প্রতিনিয়ত কাজ করা এবং সেটা অন্যকে শেখানো। শেখানোর মাধ্যমে নিজের শিক্ষা পূর্ণ হয়।

– ড. এনায়েতুর রহীম