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

Table of Contents

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

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

ডেটা সায়েন্টিস্ট হতে চাই

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

  1. :
    ডেটা সায়েন্টিস্ট হওয়ার শর্টকাট রাস্তাটা একটু দেখিয়ে দেন
  2. :
    ডেটা সায়েন্টিস্ট হওয়ার একটাই শর্টকাট রাস্তা আছে। ইচ্ছাশক্তি আর পরিশ্রম করার মানসিকতা।
  3. :
    আমি ডেটা সায়েন্টিস্ট হতে চাই। তিন মাসে কি ডেটা সায়েন্টিস্ট হওয়া সম্ভব?
  4. :
    না, সম্ভব না। তবে চেষ্টা আর অধ্যাবসায়ের মাধ্যমে স্বল্প সময়ে কিছু দক্ষতা অর্জন করা সম্ভব যা আপনাকে ডেটা সায়েন্টিস্ট হতে সহায়তা করবে।
  5. :
    কিন্তু ইন্টারনেটে তিন মাসের বুটক্যাম্প আছে দেখছি
  6. :
    ট্রাই করে দেখেন। ওই তিন মাসে যা করাবে তা তিন বছরের সমান। যারা এই লাইনে অলরেডি কাজ করছে তাদের জন্য এগুলো কাজে দিতে পারে।
  7. :
    ডেটা সায়েন্টিস্ট হতে চাই কিন্তু পরিসংখ্যানের কিছুই জানি না
  8. :
    ডেটা সায়েন্স-এর ৯৯ ভাগই স্ট্যাটিসটিক্স। বেশীর ভাগ কাজের জন্য পরিসংখ্যানের বেসিক জ্ঞান থাকতে হবে। তবে মডেলিং এবং মেশিন লারনিং এর জন্য এডভান্সড পরিসংখ্যানের জ্ঞান থাকলে ভালো হবে।
  9. :
    কম্পিউটার প্রোগ্রামিং জানতে হবে?
  10. :
    প্রোগ্রামিং ছাড়া ডেটা সায়েন্সের কাজ করা অনেকটা পরাটা বানানো জানেন না তাই দোকান থেকে পরাটা কিনে খাওয়ার মতো। কোম্পানি আপনাকে হায়ার করবে পরাটা বানানোর জন্য। অতএব পরাটা বানানো জানতে হবে। সাথে ডিম ভাজিও করা লাগবে।ডিম ভাজির ব্যাপারটা বোঝা গেছে? না বুঝলে বলি – ডেটা সায়েন্টিস্টদের কাজ শুধু প্রথাগত প্রোগ্রামিং বা প্রথাগত পরিসংখ্যানের ব্যবহার নয়। তার চেয়েও একটু বেশী কিছু। যার জন্য লাগবে কৌতূহল আর কমন সেন্স।
  11. :
    দুনিয়া সম্পর্কে কোন খবর রাখি না কিন্তু ডেটা সায়েন্টিস্ট হতে চাই
  12. :
    ডেটার দুনিয়া সম্পর্কে খবরা-খবর রাখতে হবে। ডেটা সায়েন্স দ্রুত পরিবর্তনশীল একটি বিষয়। এখানে প্রতিনিয়ত নতুন জিনিস যোগ হচ্ছে। তাই বাজারে টিকে থাকতে হলে নিজেকে সবসময় আপডেটেড রাখতে হবে। আজকের ডেটা সায়েন্স কালেকই পুরনো হয়ে যেতে পারে। প্রথাগত শিক্ষা আপনাকে একটা পর্যায়ে নিয়ে যাবে। বাকীটুকু আপনাকেই এগিয়ে নিতে হবে।
  13. :
    সব চাই কিন্তু পরিশ্রম করতে ইচ্ছে করে না, খালি ফেইসবুক করতে ইচ্ছে করে ভালো করে ঘুমানোর জন্যেও পরিশ্রম লাগে। আরেকটু ভেবে দেখুন, পরিশ্রম করতে রাজী আছেন কিনা।
  14. :
    ঠিক আছে। আর কী লাগবে?
  15. :
    আর যা যা লাগবে সে সম্পর্কে এই পোস্ট থেকে একটা ধারণা পাওয়া যাবে।
  16. :
    আচ্ছা, আমি রাজী
  17. :
    চলুন তাহলে

অল্পকথায়– যাদের ইচ্ছাশক্তি প্রবল, ধৈর্য্য অসীম, কৌতূহল অদম্য, শুধু তাদের জন্য এই ফিল্ড।

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

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

যদি গুগল করেন 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 সময় করে দেখে নিতে পারেন। ইউটিউবে অনেক টিউটোরিয়াল আছে।

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

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

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

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

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

আশা করি আমি আগ্রহী ছাত্র-ছাত্রীদের সাথে পাবো।

দীর্ঘ পোস্ট পড়ার জন্য অনেক ধন্যবাদ।

Categories: Blog
Tags:
comments powered by Disqus