Select Page

এক্সপ্লোরেটোরী ডাটা এনালাইসিস এর ভূমিকা রয়েছে ডাটা সায়েন্স এবং মেশিন লার্নিং এর কাজে ।

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

আসুন এবার শুরু করা যাক।

এক্সপ্লোরেটোরী ডাটা এনালাইসিস কি ?

উইকিপিডিয়া এর মতেঃ

পরিসংখ্যানের মধ্যে, এক্সপ্লোরেটোরী ডাটা এনালাইসিস (EDA) হল ডেটা সেটগুলি বিশ্লেষণের একটি পদ্ধতি। প্রায়ই দৃষ্টিলব্ধ পদ্ধতিগুলির সাথে এটি তাদের প্রধান বৈশিষ্ট্যগুলির সংক্ষিপ্তকরণ করে । একটি পরিসংখ্যান মডেল ব্যবহার করা যাবে বা যাবে না, কিন্তু প্রাথমিকভাবে EDA হল আকৃতিগত /নিয়মমাফিক মডেলিং বা হাইপোথিসিস টেস্টিং এর করণীয় কাজের বাহিরে আমাদেরকে কি তথ্য জানাতে পারে তা দেখার জন্য ।

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

data analysis 1 body imagedata analysis 2 body image

পাইথনে এক্সপ্লোরেটোরী ডাটা এনালাইসিসঃ

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

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

আপনি যদি জুপিটার নোটবুকস ইন্সটল না করে থাকেন তবে টার্মিনালে গিয়ে নিচের কমান্ডটি লিখে ফেলুন তারপর কাজ খতম।

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

jupyter-notebook এই কমান্ড লিখে এন্টার বাটন চাপ দেওয়ার মাধ্যমে জুপিটার নোটবুক চালু করুন। নিচের ছবিতে কমান্ড লিখে দেখানো হল।

jupyter 1 terminal command

jupyter 2 terminal command

এটি আপনার ডিফল্ট ব্রাউজারে একটি ইন্টারফেস খুলবে। একটি নতুন নোটবুক তৈরি করুন এবং এটি নাম দিন, অনেকটা নিচের মতো করে দিতে পারেন:

example of explore data analysis

আপনি একটি সেলে মার্কডাউন ফর্ম্যাটে তথ্য যোগ করতে পারেন যা আপনি উপরের ছবিতে দেখছেন এবং পরবর্তী কক্ষে আপনি কোড লিখা শুরু করতে পারেন। জুপিটার নোটবুকগুলি *.ipynb এক্সটেনশনে সেভ হয়।

প্রথম সেলে আমি যা করতে যাচ্ছি তা সম্পর্কে একটি শিরোনাম যুক্ত করেছি। আপনি এখানে যেকোনো কিছু যোগ করতে পারেন, এমনকি আপনার নিজের সেলফিও যোগ করতে পারেন কিন্তু এই jupyter-notebook জিনিসটি অনেক ভালো,কারণ আপনি কি বিষয়ে কথা বলছেন সেটি এই নোটবুকের মাধ্যমে পাঠক অনেক ভালভাবে বুঝতে পারে।

ঠিক আছে, প্রথমে আমাদের ডাটা অর্জন করতে হবে। ডাটা CSV ফরম্যাটে পাওয়া যায়। প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট্স করার পর আমি CSV ফাইলটি পড়ার জন্য pandas এর read_csv পদ্ধতিটি কল করতে যাচ্ছি।

আপনি যদি লক্ষ্য করেন আমি %matplotlib ইনলাইন যুক্ত করেছি কারণ এটি আপনার নোটবুকে প্লট ইনলাইনকে কীভাবে উপস্থাপিত করে সেইজন্য? আপনি খুব শীঘ্রই এটি কিভাবে ঘটবে তা দেখতে পাবেন । পরবর্তীতে, CSV ফাইলটি পড়াবো এবং ডেটা পরিষ্কার করবো যেখানে প্রয়োজন।

প্রথমে আমি $ এই চিহ্ন সরিয়ে দিয়েছিলাম এবং তারপর স্ট্রিং ফিল্ডকে সংখ্যাসূচক রূপে রূপান্তরিত করেছি,আমাদের থাকতে হবে ফ্লোট ডাটা, যেহেতু আমরা এই ক্ষেত্রের গাণিতিক অপারেশন সঞ্চালন করতে যাচ্ছি। Shift + Enter কীবোর্ড থেকে ক্লিক করার মাধ্যমে সেলটি চালানোর মাধ্যমে এটি প্রদর্শিত হবে নিচের ছবি এর মতোঃ

example 2 of data analysis

আরো একটি জিনিস, আমি BranchName কলাম অপ্রয়োজনীয় দেখতে পাচ্ছি কারণ আমাদের কাছে শুধুমাত্র একটি স্টোরের তথ্য আছে তাই আসুন আমরা BranchName কলাম মুছে ফেলি!

এটি কলামটি সরিয়ে ফেলবে, ‘inpace = True’ এটি বিদ্যমান ডেটাফ্রেমকে পুনরায় বরাদ্দ ছাড়াই মুছে ফেলার জন্য এটি তৈরি করেছে। উপরের কোডটি রান করুন তারপর নীচের মত ডেটা দেখায়:

example 3 of data analysis

ঠিক আছে কলাম মুছে ফেলার অপারেশন হয়ে গেল এখন ডাটার এর মধ্যে ডুব দেয়া যাক এবং ডাটার অন্তর্দৃষ্টি খুঁজা শুরু করা যাক।

আমরা যা করতে যাচ্ছি প্রথম জিনিস হল রেকর্ডের সংখ্যা (সারি) এবং কলাম সংখ্যা খুঁজে বের করা। যে জন্য আমি df.shape চালানো করলাম যখন আমি এটি করলাম আমি নিম্নলিখিতটি ফলাফল খুঁজে পাই:

example 4 of data analysis

এর মানে কী? এটি আসলে সারি * কলাম বুঝাচ্ছে। তাই এখানে 4100 টি সারি এবং 9 টি কলাম আছে।

ঠিক আছে আমি মোট রেকর্ড (সারি) এবং কলাম ধারণা পেয়েছিলাম কিন্তু আমার এই ডাটাগুলোর একটি বিস্তারিত সারসংক্ষেপ প্রয়োজন, যে জন্য আমি df.describe() মেথড ব্যবহার চালাবো তারপর আমি নিচের মতো একটি আউটপুট পাবোঃ

example 5 of data analysis

এখানে কিছু আকর্ষণীয় তথ্য এখানে দেওয়া। যদি আপনি count দেখেন তবে এটিই রেকর্ড সংখ্যা 4100 এর কাছাকাছি । আপনি সমস্ত কলামে একই গণনা দেখতে পারেন যার মানে সেখানে কোন অনুপস্থিত ক্ষেত্র নেই। আপনি Units এর জন্য একটি পৃথক কলাম গণনা বা চেক করতে পারেন সেটি নিচের এর মতো দেখাবে:

example 6 of data analysis

উপরে ডাটাগুলোর একটি বিস্তারিত সারসংক্ষেপ এর একটি ছবি দেওয়া হয়েছে সেটাই লক্ষ্য করলে দেখতে পাবো কতগুলো ভাগ আছে যার মধ্যে রয়েছে mean এর অর্থ হল গড়, তারপর দেখতে পাই std এর অর্থ হল আদর্শ চ্যুতি ইংলিশে বলা হয় (Standard Deviation NOT Sexual Transmitted Disease) আর ২ টি জিনিস হল min এবং max যা অর্থ হল ছোটও ও বড় সংখ্যা বের করা। এখানে Amount এর std হল 183.5 আর mean হল প্রায়ই 35 । অন্য দিকে Units এর mean হল 12.7 আর std হল 17.85।

আসুন এবার Amount এর বিন্যাস দেখে নেয়া যাকঃ

example 7 of data analysis

এবং এর আউটপুট হলঃ

output of data analysis

কিছুক্ষণের জন্য গ্রাফচিত্র লক্ষ্য করুন এবং যে বেস লাইনটি বড় আকারের সেটা লক্ষ্য করুন দেখতে পাবেন এটি তারতম্য -1000 থেকে 1000+ পর্যন্ত।

 

চলুন এবার মাস, দিন এবং ঘন্টা দ্বারা Sales খুঁজে বের করা যাকঃ

 

১. মাস দ্বারা বিক্রয়ঃ

আপনি .size() এটি নির্দিষ্ট কলামের একত্রিত মূল্য বের করার জন্য ব্যবহার করতে পারেন আর আপনি যদি সব কলামের একত্রিত মূল্য বের করতে চান তাহলে আপনাকে .count() এটি ব্যবহার করতে হবে। যেহেতু আমাদের শুধুমাত্র মাস জন্য প্রয়োজন তাই আমরা .size() এটি ব্যবহার করবো। গ্রাফ করুন এবং আপনি এটি খুঁজে নেনঃ

monthly sales data analysis

জুলাই পর্যন্ত জীবন সুন্দর ছিল কিন্তু তারপর কিছু ঘটেছে এবং আগস্টে তীব্র হ্রাস ঘটেছে, তারপর স্টাফ তিন মাসের জন্য কঠোর পরিশ্রম করে এবং তারপর আবারও মারা যায়।

 

২. দিন দ্বারা বিক্রয়ঃ 

example 8 of data analysis

এর আউটপুট হলঃ

output 2 data analysis

এই হিসাবে, 18 দিনের সেই দিনটি ছিল সবচেয়ে ভাল দিন, সেই দিনে 151 টি ইউনিট বিক্রি হয় এবং মাসের শেষ বিক্রয় ব্যাপকভাবে কমেছে।

 

৩. ঘন্টা দ্বারা বিক্রয়ঃ

example 9 of data analysis

এটির আউটপুট হলঃ

output 3 of data analysis

ওকে, মনে হচ্ছে যে বন্ধ এবং খোলার ঘণ্টা থেকে বিকালে বেশি গ্রাহক পরিদর্শন করেন।

 

উপসংহারঃ

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

সবসময়, এই লিখাটির কোড Github এ পাওয়া যাবে।

আপনি এই সম্পর্কে কি মনে করেন তা আমাকে জানাতে পারেন

ধন্যবাদ সবাইকে।

error: