পরিসংখ্যানের মধ্যে, এক্সপ্লোরেটোরী ডাটা এনালাইসিস (EDA)হল ডেটা সেটগুলি বিশ্লেষণের একটি পদ্ধতি। প্রায়ই দৃষ্টিলব্ধ পদ্ধতিগুলির সাথে এটি তাদের প্রধান বৈশিষ্ট্যগুলির সংক্ষিপ্তকরণ করে । একটি পরিসংখ্যান মডেল ব্যবহার করা যাবে বা যাবে না, কিন্তু প্রাথমিকভাবে EDA হল আকৃতিগত/নিয়মমাফিক মডেলিং বা হাইপোথিসিস টেস্টিং এর করণীয় কাজের বাহিরে আমাদেরকে কি তথ্য জানাতে পারে তা দেখার জন্য ।
আপনি বলতে পারেন এক্সপ্লোরেটোরী ডাটা এনালাইসিস হল পরিসংখ্যানের গল্প বলার একটি উপায় যেখানে আপনি তথ্যের বিশ্লেষণ , নমুনা এবং অন্তর্দৃষ্টির
বর্ণনা পাবেন।ধরুন আপনার কাছে কিছু প্রশ্ন আছে বা কিছু ডাটা আছে সেগুলোকে আপনি যাচাই করার চেষ্টা করছেন এক্সপ্লোরেটোরী ডাটা এনালাইসিস সম্পাদন করে।
পাইথনে এক্সপ্লোরেটোরী ডাটা এনালাইসিসঃ
এক্সপ্লোরেটোরী ডাটা এনালাইসিস এর জন্য পাইথনে একাধিক লাইব্রেরি সঞ্চালিত আছে ,কিন্তু এই পোস্ট এর জন্য আমি পাইথনে লাইব্রেরি প্যান্ডাস এবং ম্যাটপ্লটলিবব্যবহার করতে যাচ্ছি। ডাটা ম্যানিপুলেশন এর জন্য প্যান্ডাস এবং ভাল গ্রাফ অঙ্কনের জন্য ম্যাটপ্লটলিব। কোড এবং অন্যান্য তথ্যও লিখতে জুপিটার নোটবুকস।জুপিটার নোটবুকগুলি ডাটা বিশ্লেষণ এবং বিজ্ঞানীদের জন্যে এক প্রকার ডায়েরি, একটি ওয়েব ভিত্তিক প্ল্যাটফর্ম যেখানে আপনি পাইথন, এইচটিএমএল এবং মার্কডাউনের মাধ্যমে আপনার তথ্যের অন্তর্দৃষ্টি ব্যাখ্যা করতে পারেন।
ওকে যথেষ্ট কথা বলা হয়েছে , এটি তথ্য অনুসন্ধান এবং এটির সম্পর্কে জানার সময়। আমি ব্যবহার করছি একটি সুপার শপ দ্বারা কল্পিত তথ্য । আমরা কয়েকটি প্রশ্নের উত্তর খুঁজে পাচ্ছি যেমন বিক্রয়ের ক্ষেত্রে সবচেয়ে ভালো দিন কি, কোন ঘন্টা সবচেয়ে উপযুক্ত হয় যাতে কর্মচারী অনুযায়ী স্থাপন করা যাবে।
আপনি যদি জুপিটার নোটবুকস ইন্সটল না করে থাকেন তবে টার্মিনালে গিয়ে নিচের কমান্ডটি লিখে ফেলুন তারপর কাজ খতম।
pip install jupyter
যদি আপনি পাইথন এর Anaconda সংস্করণ ব্যবহার করে থাকেন তাহলে Jupyter এবং প্যান্ডাস ইতিমধ্যেই সেখানে পেয়ে থাকবেন । আমি অত্যন্ত জোর দিয়ে সুপারিশ করছি এটি ব্যবহার করার জন্য বিশেষভাবে যারা ডেটা বিশ্লেষণ বা ডেটা বিজ্ঞানে কাজ করবে কারণ তাদের জন্য বিশেষ কিছু প্যাকেজ বা লাইব্রেরি রয়েছে ।
jupyter-notebook এই কমান্ড লিখে এন্টার বাটন চাপ দেওয়ার মাধ্যমে জুপিটার নোটবুক চালু করুন। নিচের ছবিতে দেখানো হল কমান্ড লিখে
এটি আপনার ডিফল্ট ব্রাউজারে একটি ইন্টারফেস খুলবে। একটি নতুন নোটবুক তৈরি করুন এবং এটি নাম দিন, অনেকটা নিচের মতো করে দিতে পারেন:
আপনি একটি সেলে মার্কডাউন ফর্ম্যাটে তথ্য যোগ করতে পারেন যা আপনি উপরের ছবিতে দেখছেন এবং পরবর্তী কক্ষে আপনি কোড লিখা শুরু করতে পারেন। জুপিটার নোটবুকগুলি *.ipynb এক্সটেনশনে সেভ হয়।
প্রথম সেলে আমি যা করতে যাচ্ছি তা সম্পর্কে একটি শিরোনাম যুক্ত করেছি। আপনি এখানে যেকোনো কিছু যোগ করতে পারেন, এমনকি আপনার নিজের সেলফিও যোগ করতে পারেন কিন্তু এই jupyter-notebook জিনিসটি অনেক ভালো,কারণ আপনি কি বিষয়ে কথা বলছেন সেটি এই নোটবুকের মাধ্যমে পাঠক অনেক ভালভাবে বুঝতে পারে।
ঠিক আছে ,প্রথমে আমাদের ডাটা অর্জন করতে হবে। ডাটা CSV ফরম্যাটে পাওয়া যায়। প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট্স করার পর আমি CSV ফাইলটি পড়ার জন্য pandas এর read_csv পদ্ধতিটি কল করতে যাচ্ছি।
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
আপনি যদি লক্ষ্য করেন আমি % matplotlib ইনলাইন যুক্ত করেছি কারণ এটি আপনার নোটবুকে প্লট ইনলাইনকে কীভাবে উপস্থাপিত করে সেইজন্য? আপনি খুব শীঘ্রই এটি কিভাবে ঘটবে তা দেখতে পাবেন । পরবর্তীতে,CSV ফাইলটি পড়াবো এবং ডেটা পরিষ্কার করবো যেখানে প্রয়োজন।
প্রথমে আমি $ এই চিহ্ন সরিয়ে দিয়েছিলাম এবং তারপর স্ট্রিং ফিল্ডকে সংখ্যাসূচক রূপে রূপান্তরিত করেছি,আমাদের থাকতে হবে ফ্লোট ডাটা,যেহেতু আমরা এই ক্ষেত্রের গাণিতিক অপারেশন সঞ্চালন করতে যাচ্ছি। Shift+Enter কীবোর্ড থেকে ক্লিক করার মাধ্যমে সেলটি চালানোর মাধ্যমে এটি প্রদর্শিত হবে নিচের ছবি এর মতোঃ
আরো একটি জিনিস, আমি BranchName কলাম অপ্রয়োজনীয় দেখতে পাচ্ছি কারণ আমাদের কাছে শুধুমাত্র একটি স্টোরের তথ্য আছে তাই আসুন আমরা BranchName কলাম মুছে ফেলি!
df.drop('BranchName',axis=1, inplace=True)
df
এটি কলামটি সরিয়ে ফেলবে, ‘inpace = True’ এটি বিদ্যমান ডেটাফ্রেমকে পুনরায় বরাদ্দ ছাড়াই মুছে ফেলার জন্য এটি তৈরি করেছে।উপরের কোডটি রান করুন তারপর নীচের মত ডেটা দেখায়:
ঠিক আছে কলাম মুছে ফেলার অপারেশন হয়ে গেল এখন ডাটার এর মধ্যে ডুব দেয়া যাক এবং ডাটার অন্তর্দৃষ্টি খুঁজা শুরু করা যাক।
আমরা যা করতে যাচ্ছি প্রথম জিনিস হল রেকর্ডের সংখ্যা(সারি) এবং কলাম সংখ্যা খুঁজে বের করা। যে জন্য আমি df.shape চালানো করলাম যখন আমি এটি করলাম আমি নিম্নলিখিতটি ফলাফল খুঁজে পাই:
এর মানে কী? এটি আসলে সারি * কলাম বুঝাচ্ছে। তাই এখানে 4100 টি সারি এবং 9 টি কলাম আছে।
ঠিক আছে আমি মোট রেকর্ড(সারি) এবং কলাম ধারণা পেয়েছিলাম কিন্তু আমার এই ডাটাগুলোর একটি বিস্তারিত সারসংক্ষেপ প্রয়োজন, যে জন্য আমি df.describe() মেথড ব্যবহার চালাবো তারপর আমি নিচের মতো একটি আউটপুট পাবোঃ
এখানে কিছু আকর্ষণীয় তথ্য এখানে দেওয়া। যদি আপনি count দেখেন তবে এটিই রেকর্ড সংখ্যা 4100 এর কাছাকাছি । আপনি সমস্ত কলামে একই গণনা দেখতে পারেন যার মানে সেখানে কোন অনুপস্থিত ক্ষেত্র নেই। আপনি Units এর জন্য একটি পৃথক কলাম গণনা বা চেক করতে পারেন সেটি নিচের এর মতো দেখাবে:
উপরে ডাটাগুলোর একটি বিস্তারিত সারসংক্ষেপ এর একটি ছবি দেওয়া হয়েছে সেটাই লক্ষ্য করলে দেখতে পাবো কতগুলো ভাগ আছে যার মধ্যে রয়েছে mean এর অর্থ হল গড় , তারপর দেখতে পাই std এর অর্থ হল আদর্শ চ্যুতি ইংলিশে বলা হয়( Standard Deviation NOT Sexual Transmitted Disease) আর ২ টি জিনিস হল min এবং max যা অর্থ হল ছোটও ও বড় সংখ্যা বের করা। এখানে Amount এর std হল 183.5 আর mean হল প্রায়ই 35 । অন্য দিকে Units এর mean হল 12.7 আর std হল 17.85।
আসুন এবার Amount এর বিন্যাস দেখে নেয়া যাকঃ
এবং এর আউটপুট হলঃ
কিছুক্ষণের জন্য গ্রাফচিত্র লক্ষ্য করুন এবং যে বেস লাইনটি বড় আকারের সেটা লক্ষ্য করুন দেখতে পাবেন এটি তারতম্য -1000 থেকে 1000+ পর্যন্ত।
চলুন এবার মাস, দিন এবং ঘন্টা দ্বারা Sales খুঁজে বের করা যাকঃ
১.মাস দ্বারা বিক্রয়ঃ
আপনি .size() এটি নির্দিষ্ট কলামের একত্রিত মূল্য বের করার জন্য ব্যবহার করতে পারেন আর আপনি যদি সব কলামের একত্রিত মূল্য বের করতে চান তাহলে আপনাকে .count() এটি ব্যবহার করতে হবে। যেহেতু আমাদের শুধুমাত্র মাস জন্য প্রয়োজন তাই আমরা .size() এটি ব্যবহার করবো। গ্রাফ করুন এবং আপনি এটি খুঁজে নেনঃ
জুলাই পর্যন্ত জীবন সুন্দর ছিল কিন্তু তারপর কিছু ঘটেছে এবং আগস্টে তীব্র হ্রাস ঘটেছে, তারপর স্টাফ তিন মাসের জন্য কঠোর পরিশ্রম করে এবং তারপর আবারও মারা যায়।
২.দিন দ্বারা বিক্রয় ঃ
এর আউটপুট হলঃ
এই হিসাবে, 18 দিনের সেই দিনটি ছিল সবচেয়ে ভাল দিন, সেই দিনে 151 টি ইউনিট বিক্রি হয় এবং মাসের শেষ বিক্রয় ব্যাপকভাবে কমেছে।
৩.ঘন্টা দ্বারা বিক্রয়ঃ
এটির আউটপুট হলঃ
ওকে, মনে হচ্ছে যে বন্ধ এবং খোলার ঘণ্টা থেকে বিকালে বেশি গ্রাহক পরিদর্শন করেন।
উপসংহারঃ
আপাতত এই পর্যন্ত,এখন আমি যেতে পারি । এর আরো অন্তর্দৃষ্টি খুঁজে পেতে পারেন কিন্তু আপনি এই ডাটা সেট থেকে অন্তর্দৃষ্টি খুঁজে পেতে কিভাবে এক্সপ্লোরেটোরী ডাটা এনালাইসিস ব্যবহার করতে পারেন তার জন্য উপরে দেয়া ধারণাই যতষ্ট আমি মনে করি । এই ডেটাতে একটি ক্ষেত্র রয়েছে লেনদেনের প্রকার , আপনার এই টাস্কের প্রতিটি লেনদেনের ধরন বিক্রি করে খুঁজে বের করতে হবে। এটা কেমন চলছে আমাদের জানাবেন।
আপনি এই সম্পর্কে কি মনে করেন তা আমাকে জানাতে পারেন, যদি আপনি লেখা উপভোগ করেন তাহলে ক্লাপ বাটনে 👏 ক্লিক করবেন।
ধন্যবাদ সবাইকে।
ডাটা এনালাইসিসের হলো শুরু (পর্ব ১ )
খুব সহজ ভাষায় যদি বলা হয় তবে – ডাটা সায়েন্স হচ্ছে এরকম একটা বিশেষ জ্ঞান যার মাধ্যমে বিভিন্ন রকমের, গোছালো বা অগোছালো বিশাল পরিমাণ ডাটা থেকে সঠিক এবং অন্তর্নিহিত ব্যবহার উপযোগী তথ্য বের করে আনা যায় (এটাকে অনেকেই ডাটা মাইনিং-ও বলে থাকেন)। পরিসংখ্যান, ডাটা অ্যানালাইসিস ও সে সম্পর্কিত বিভিন্ন মেথডের সমন্বয়ে এমন একটি কনসেপ্ট যার মাধ্যমে কোন ডাটা কালেকশনের মধ্যেকার আসল ঘটনা বা বিষয় বের করে আনা যায়। এই বিজ্ঞান বস্তুত অন্যান্য অনেক ফিল্ড থেকে বিভিন্ন তত্ত্ব এবং টেকনিককে ফলো করে কাজ করে। যেমন – গণিত, পরিসংখ্যান, ইনফরমেশন সায়েন্স, কম্পিউটার সায়েন্স মেশিন লার্নিং, ক্লাস্টার অ্যানালাইসিস, ডাটা মাইনিং, ডাটাবেইজ, ডাটা ভিজুয়ালাইজেশন ইত্যাদি। কঠিন করে বলতে গেলে আরও কঠিন হয়ে যাবে। যেহেতু আমরা এই কোর্সে খুব সহজ ভাষায় ডাটা সায়েন্সের মূল ভিত্তি বিষয়ক কিছু ব্যাসিক টপিকের উপর আলোচনা করবো, তাই গুরুগম্ভীর সংজ্ঞায় না যাওয়াই ভালো। বরং, এই কোর্স থেকে একটা আবছা ধারনা নিয়ে পাঠক নিজে থেকেই পরবর্তীতে বিভিন্ন সোর্স অবলম্বন করে আরও গভীর ভাবে এই বিষয়ে পড়াশুনা করতে পারবেন।
অনেকেই ডাটা সায়েন্টিস্ট এবং পরিসংখ্যানবিদের মধ্যে পার্থক্য করতে চান না। তাই তাদের উদ্দেশ্য একটা মজার সংজ্ঞা এখানে দেয়া যেতে পারে – “Data Scientist: Person who is better at statistics than any software engineer and better at software engineering than any statistician!”
দিন দিন ব্যবসা, বিজ্ঞান, গবেষণা, সমাজ ব্যবস্থা, চিকিৎসা, রাজনীতি, মহাকাশবিজ্ঞান ও অনেক রকম ফিল্ডে ডাটা সায়েন্সের প্রয়োজন বেড়েই চলেছে। প্রয়োজন বাড়লেও অনেক বিশাল পরিমাণ ডাটা নিয়ে কাজ করে যথাযথ ফলাফল বা সিদ্ধান্ত আনার জন্য যে পরিমাণ অভিজ্ঞ লোক প্রয়োজন সেটা বর্তমানে নেই। ডাটা (বিশেষ করে বিগ ডাটা) নিয়ে যারা কাজ করেন, তাদেরকে বেশ কয়েকটি ভাগে ভাগ করা যায় যেমন – ডাটা ইঞ্জিনিয়ার, ডাটা সায়েনটিস্ট, স্ট্যাটিসটিসিয়ান, ডাটা অ্যানালিস্ট। অনেকেই ইদানীং মনে করছেন দিন দিন যেভাবে ডাটা বাড়ছে সে অনুযায়ী সেই ডাটা গুলো থেকে যথাযথ প্রায়োগিক ফলাফল বের করে আনার মত উপযুক্ত ডাটা প্রফেশনালের অভাবটাই এখন বড় চ্যালেঞ্জ। ডাটার প্রাপ্তি বা কম্পিউটেশন পাওয়ার চ্যালেঞ্জ এর বিষয় নয়।
আসলেই বিগ ডাটা তৈরি হচ্ছে কিভাবে? খেয়াল করলে দেখবেন – দিন দিন মানুষ সবকিছু ডিজিটালাইজ করে ফেলছে। ফেসবুক স্ট্যাটাস থেকে শুরু করে ফটো, লেখা, খবর। সিনেমা থেকে শুরু করে গবেষণার ফল, জরিপ, বিভিন্ন সেন্সর থেকে প্রাপ্ত তথ্য ইত্যাদি ইত্যাদি। বলে শেষ করা যাবে না। এমনকি, পূর্বের জমা হওয়া অ্যানালগ ডাটা গুলোকেও ডিজিটাল রূপ দেয়া হচ্ছে জোড়ে সোরে। IBM এর গবেষণা মতে, বর্তমান পৃথিবীর শতকরা ৯০ ভাগ ডিজিটাল ডাটা তৈরি হয়েছে মাত্র গত ২/৩ বছরে। তার মানে, এই ডাটা বাড়ার পরিমাণ দিন দিন জ্যামিতিক হারে বাড়তেই থাকবে। এই লিঙ্কের ইনফগ্রোফটি দেখতে পারেনঃ http://bit.ly/2r4JwYS একই সাথে এই বিশাল পরিমাণ ডাটার যথাযথ ব্যবহার নিশ্চিত করতে প্রযুক্তিগত উন্নয়নও হচ্ছে উল্লেখ যোগ্য হারে। যেমন – মেশিন লার্নিং, ডিপ লার্নিং এর মাধ্যমে এরকম বিগ ডাটা গুলোকে সঠিকভাবে ব্যবহার করে ডাটার মধ্যেকার প্যাটার্ন খোজা, ক্লাসিফাই করা, ভ্যালু প্রেডিক্ট করা ইত্যাদি কাজ এখন খুবি স্বাভাবিক। এর মাধ্যমে উক্ত ডাটা সম্পর্কিত ফিল্ড গুলো দ্রুত সিদ্ধান্ত গ্রহণ, ভবিষ্যৎ প্রেডিকশন ও অ্যানালাইসিস এর কাজ করতে পারছে সহজে যেগুলো পক্ষান্তরে উক্ত ফিল্ড গুলোকে উন্নয়নের দিকে নিয়ে যাচ্ছে।
সহজ উদাহরণ দিয়ে বুঝতে চাইলে – ধরুন একটা সুপার শপে প্রতিদিন হাজার হাজার ট্র্যাঞ্জেকশন হয়। আবার সেই কেনা বেচার মধ্যে হাজার হাজার আইটেম বিদ্যমান। আবার মনে করুন, সেই সুপার শপের বিভিন্ন লোকেশনে বিভিন্ন ব্র্যাঞ্চ আছে। সব মিলে প্রতিদিন কয়েক লাখ ট্র্যাঞ্জেকশন ঘটে এই ব্র্যান্ডের মোট বেচাকেনায়। এভাবে কয়েকমাস গেলেই যে পরিমাণ ডাটা এই স্টোরের ডাটাবেইজে তৈরি হয় তা কি নিতান্তই মুনাফা হিসাব করা আর স্টক ম্যানেজ করার মধ্যেই সীমাবদ্ধ থাকবে? যদি তাই হয় তাহলে এতো ডাটার মিস-ইউজ ছাড়া আর কিছুই করা হচ্ছে না। বরং, এই ডাটা গুলোকে যদি সঠিকভাবে পর্যালোচনা করে সেখান থেকে বিভিন্ন মজার তথ্য বের করে আনা সম্ভব হয় তাহলে ওই ব্যবসাকে আরও আধুনিক এবং যুগোপযোগী করা সম্ভব।
একটি উদাহরণ দেয়া যাক – একজন ক্রেতা কোন কোন আইটেম মোটামুটি একই সাথে কিনছেন শুধু এটুকু যদি ট্র্যাক করা যায় তাহলে বড় আকারের সুপার শপে ওই আইটেম গুলো পাসাপাশি সাজিয়ে রাখা যেতে পারে। এতে করে ক্রেতা খুশি হবে এবং বিক্রিও বাড়বে। আবার মনে করুন – অনলাইন স্টোরের ক্ষেত্রে একজন ক্রেতা একবার একটা জিনিষ কিনলে তাকে আরেকটা জিনিষ কেনার জন্য সাজেশন দেয়া। এটা করতে কি কি করা যেতে পারে? ধরুন ওই ক্রেতা একটা মাত্র জিনিষ কিনলো। সাথে সাথে আগের অন্যান্য ক্রেতাদের ডাটা অ্যানালাইসিস করে বের করা সিদ্ধান্তকে আমরা কাজে লাগাতে পারি। আগের অ্যানালাইসিস মোতাবেক আমাদের সিস্টেম জানে যে, বেশিরভাগ ক্রেতাই যখন এই আইটেমটা কিনেছিল তখন তারা আরেকটা আইটেমও কিনেছিল। তো, সেই আইটেমকে সাজেশন হিসেবে দেখানো যেতে পারে এই নতুন ক্রেতার কাছে। এমনকি, যদি কোন ক্রেতা কিছুই না কিনে প্রথমবার একটি সাইট ভিজিট করে সেক্ষেত্রেও আগের অ্যানালাইটিক্যাল বা প্রেডিকশন মডেল বিক্রেতাকে সাহায্য করতে পারে। যেমন – ভিজিটর কোন এলাকা থেকে ভিজিট করছে, তার বয়স কত ইত্যাদি জানা সহজ এবং যদি সিস্টেমের কাছে এরকম কিছু ক্লাসিফিকেশন ডাটা থাকে যে, ওই লোকেশনের, এই বয়সের মানুষ সব চেয়ে কোন জিনিষগুলো বেশি কিনছে তাহলেই হয়ে গেলো। এ তো, গেল খুব সহজ এবং হালকা কিছু উদাহরণ। সঠিকভাবে ডাটা সায়েন্সের প্রয়োগ কল্পনার অতীত ফলাফল এনে দিতে পারে।
২য়
প্রতি মুহূর্তে দুনিয়াতে যা ঘটছে সবই ডাটা বা তথ্য। সহজ না? ফেসবুক স্ট্যাটাস দিচ্ছেন, ইউটিউবে ভিডিও আপলোড করছেন, কোথাও রেজিস্ট্রেশন করছেন, কোন জরিপ করছেন, দৈনিক ঘটে যাওয়া কিছু ঘটনা রেকর্ড করে রাখছেন এসবই ডাটা। আবার গবেষকগণ তাদের গবেষণার বিভিন্ন ধাপে নানা রকম তথ্য পাচ্ছেন এবং সেগুলোর লগ রাখছেন, আবহাওয়া অধিদপ্তর প্রতিদিনকার তথ্য কোথাও জমা করছে, দুর্গম কোন এলাকায় ডেপলয় করা কোন সেন্সর বা রোবট ডাটা সেন্স করে রেকর্ড করে যাচ্ছে এসবও ডাটা। কোন সুপার শপে ঘটে যাওয়া সব ট্র্যাঞ্জেকশন, ব্যাংকে ঘটমান বিভিন্ন ক্রেতা বিক্রেতার ট্র্যাঞ্জেকশন, অনলাইনে ক্রেডিট কার্ড ইউজ করে কেনা কাটা এসবও ডাটা। আরও উদাহরণ লাগবে?
সিরিয়াস কথা হচ্ছে – datum ল্যাটিন শব্দ থেকেই Data শব্দের উৎপত্তি। datum কিন্তু সিঙ্গুলার ফর্ম। data হচ্ছে এর প্লুরাল ফর্ম। তো, datum মানে হচ্ছে সিঙ্গেল কোন এন্টিটি বা সিঙ্গেল কোন একটা ঘটনার অবস্থান(বিন্দু)। এজন্য datum কে data points বলা হয়। তার মানে, data দিয়ে আসলে অনেক গুলো data points কেই বোঝানো হয়। টেকনিক্যালি Data কে Dataset হিসেবেও লেখা হয়। তাই Dataset মানেও হচ্ছে কিছু Data Point এর কালেকশন। যাই হোক খুশির খবর হচ্ছে, বর্তমানে Data শব্দকে একবচন বা বহুবচন দুভাবেই প্রকাশ করা হয়। ঝামেলা কম।
আবার বলি, ডাটা হচ্ছে কালেকশন অফ ফ্যাক্টস যেমন নাম্বার, শব্দ, পরিমাণ, পর্যবেক্ষণ এমনকি কোন কিছুর বর্ণনা। দুরকম ডাটা আছে – কোয়ালিটেটিভ ও কোয়ান্টিটেটিভ। আমার অনেক টাকা আছে, ওর চুল অনেক লম্বা; এসব কোয়ালিটেটিভ ডাটার উদাহরণ। দ্বিতীয় প্রকারের ডাটা আবার দু রকম হয় – ডিসক্রিট এবং কন্টিনিউয়াস। আমার দুটো পা, তার কাছে ১০০ টাকা আছে এগুলো ডিসক্রিট এবং সে ৫৬৫ মিলিমিটার লম্বা, আজ ২৩ মিমি বৃষ্টি হয়েছে এসব কন্টিনিউয়াস ডাটার উদাহরণ।
ডাটার ধরনডাটার কিছু বৈশিষ্ট্য আছে যেগুলো নিচের মত –
১) অনেক বিশাল পরিমাণে হতে পারে – আর তাই এসব অ্যানালাইসিসের জন্য ঠিক করা অ্যাল্গরিদমকে স্কেল্যাবল হতে হবে। নাহলে দেখা যাবে আপনার অ্যালগরিদম কম ডাটার উপর ঠিকি দ্রুত কাজ করতে পারে কিন্তু বেশি ডাটা নিয়ে হিসাব করতে গেলেই হ্যাং হয়ে বসে থাকে। (কমপ্লেক্সিটি অফ অ্যালগরিদম এর দরকার মনে পরে যাবে)
২) হাই ডাইমেনশনালিটি – ডাটা হতে পারে হাজার হাজার ডাইমেনশন সম্পন্ন। হুম হাজার হাজার।
৩) খুবি জটিল প্রকৃতির – যেমন সেন্সর ডাটা, বিভিন্ন ডাটা স্ট্রিম (সাউন্ড), টাইম সিরিজ ডাটা, টেম্পরাল ডাটা, সিকোয়েন্স ডাটা ইত্যাদি। মাল্টিমিডিয়া ডাটা, টেক্সট বা ওয়েব ডাটা। গ্রাফ ডাটা বা সোশাল নেটওয়ার্ক ডাটা ইত্যাদি ইত্যাদি।
এতদিন শুনেছেন খনি খুরে শুধু দামি দামি জিনিসপত্র তুলে আনা হয়। তাই মাইনিং মানেই মনে হয় যে – অনেক মূল্যবান সম্পদ আহরণের কথা বলা হচ্ছে। বাস্তবে যেমন সাধারণ দেখতে একটা মরুভূমির অতল গহিনে জমে থাকতে পারে তেল, কয়লা, সোনা সহ আরও নানা রকম মহা মূল্যবান জিনিষ পত্র। তেমনি অগোছালো ডাটার মধ্যেও লুকিয়ে থাকতে পারে খুবি মূল্যবান কোন তথ্য। তাই এই বিজ্ঞানে এটাকেও মাইনিং বলা হয়।ডাটা সায়েন্স এর সাথে ডাটা মাইনিং ওতপ্রোতভাবে জড়িত এবং একটা আরেকটার পরিপূরক। তাই এই অবস্থায় ডাটা মাইনিং এর প্রসঙ্গ নিয়ে আসা।
যাই হোক, ডাটা মাইনিং এর পুঁথিগত সংজ্ঞা হচ্ছে এরকম – “Extraction of interesting (non‐trivial, implicit, previously unknown and potentially useful) patterns or knowledge from huge amount of data.”
এর অনেক বিকল্প নামও থাকতে পারে যেগুলো শুনে ঘাবড়ানোর কিছু নাই। যেমন – Knowledge discovery (mining) in databases (KDD), knowledge extraction, data/pattern analysis, data archeology, data dredging, information harvesting, business intelligence ইত্যাদি। এখন বুঝলেন তো? সব হচ্ছে নামের বাহার। ঘটনা তেমন কিছু না।
KDD বা নলেজ ডিসকভারি প্রসেস
এই প্রসেসের কিছু গুরুত্ব পূর্ণ ধাপের বর্ণনা নিচে দেয়া হল –
প্রথমেই কোন ডাটাবেইজ থেকে ডাটা উদ্ধার করা হবে -> অতঃপর সেই ডাটা গুলোকে ক্লিন করা হবে অর্থাৎ ডাটার মধ্যেকার ভুল, মিসিং ডাটা ইত্যাদি ঠিক ঠাক করা হবে -> এরপর সেই পরিষ্কার ডাটা কে ডাটা অয়্যারহাউজে জমা করা হবে অর্থাৎ যেখান থেকে পরবর্তী ধাপে ব্যবহার করা যাবে -> এরপর ওই ডাটা স্টোর থেকে শুধুমাত্র আমাদের উদ্দেশ্য সাধনের প্রেক্ষিতে যে ডাটা গুলো লাগবে সেগুলোকে বেছে নেয়া হবে যাকে বলে টাস্ক রেলিভেন্ট ডাটা বেছে নেয়া -> এরপর বস্তুত ডাটা মাইনিং ঘটে বিভিন্ন অ্যালগরিদম বা টেকনিকের মাধ্যমে -> শেষে যে প্যাটার্ন বা মূল্যবান তথ্য পাওয়া যাবে সেটাকে এভালুয়েট বা বিচার/পর্যবেক্ষণ করা হবে
কি করছি ডাটার ভিউ মানে হচ্ছে – কি ডাটা নিয়ে কাজ করছি তা ঠিক থাকতে হবে, কি নলেজ (সম্পদ) উদ্ধার করার জন্য কাজে নামলাম সেটা ঠিক থাকতে হবে, কি টেকনিক আপ্লাই করে এই কর্ম সম্পাদন করা হবে তাও ঠিক রাখতে হবে এবং কোন সেক্টরে এই উদ্ধারকৃত সম্পদ কাজে লাগানো হবে সেটাও পরিষ্কার থাকতে হবে।
ডাটা মাইনিং ফাংশন ১) জেনারেলাইজেশন – ডাটা ক্লিনিং, ট্রান্সফরমেশন, ইন্টিগ্রেশন বা ডাটা অয়্যারহাউজ তৈরি ইত্যাদি কাজ ২) প্যাটার্ন ডিসকভারি ৩) ক্লাসিফিকেশন ৪) ক্লাস্টার অ্যানালাইসিস ৫) আউটলায়ার এনালাইসিস ৬) টাইম ও অর্ডারিং ৭) স্ট্রাকচার এনালাইসিস