৭.২. ডাটা ভিজ্যুয়ালাইজেশন

ডাটা ভিজ্যুয়ালাইজেশন

সতর্কতা: এই চ্যাপ্টার এখন পড়বেন না। আর পড়লেও পড়বেন ঝামেলার কোডগুলো ছাড়া। এই চ্যাপ্টারটা লেখা হয়েছে আপনাদের শুধুমাত্র ছবি দেখানোর জন্য। ভুলেও কোডের দিকে তাকাবেন না। এই কোডগুলো নিজে নিজে বুঝে যাবেন "৭.৫. ডিসিশন ট্রি" টপিকের পরে। প্যাকেজ ইনস্টল করার ধারণাটা আছে সেখানে।

আমার প্রিয় চ্যাপ্টার

একটা কথা আছে না? ছবি কথা বলে। অথবা - একটা ছবি হাজারো লেখার সমান।

চলুন দেখি আমাদের train ডাটা দেখতে কেমন? ভিজ্যুয়ালি! কি রকম পরিমানে ডাটা নেই সেটাই দেখাবে আমাদের এই আউটপুটটা। আগেই বলেছিলাম "আর" এনভায়রনমেন্টের দক্ষতা এর প্রতিটা প্যাকেজে। আমরা এখন একটা ফাংশন ব্যবহার করবো যেটার নাম হচ্ছে "missmap"। এর কাজ হচ্ছে ডাটার ভেতর থেকে দেখানো কতটুকু ডাটা লাপাত্তা মানে "মিসিং" আছে। ডাটা প্রসেসিংএর একটা বড় অংশ হচ্ছে আপনি এর ভেতরে কতোটুকু জানেন। হাজারো প্যাকেজ আছে আপনাকে সাহায্য করার জন্য। সত্যি বলছি।

প্রথমে ইনস্টল করে নেই প্যাকেজটা। নাম অ্যামেলিয়া।

install.packages("Amelia")

বরাবরের মতো সেটাকে ব্যবহার করতে লোড করে নেই লাইব্রেরিটা।

library(Amelia)

ট্রেইন ডাটাফ্রেমকে দেখতে বললাম মিসম্যাপকে। সঙ্গে টাইটেল। লাপাত্তা ভ্যালুর জন্য হলুদ রং। বাকিটা কালো। ফেলে দিলাম লিজেন্ড।

missmap(train, main="Titanic Training Data - Missings Map", col=c("yellow", "black"), legend=FALSE)

ছবি: হলুদ অংশ মানে ডাটা নেই সেখানে। কালো রং বলছে ডাটা আছে সেখানে।

মজার কথা হচ্ছে এখানে বয়সের প্রায় ২০% ডাটা আগে থেকেই নেই। ৭০% এর মতো যাত্রীদের কোন কেবিনের সাথে কানেক্ট করা যাচ্ছে না। এগুলো কিন্তু একটা চ্যালেঞ্জ। সেগুলো আমরা সামনে সামলে নেবো। আগের মতো আবার কিছু "বারপ্লট" করি আমাদের ভ্যারিয়েবলগুলোর ওপর। ওই যে কথা আছে না, বাঁচতে হলে জানতে হবে। পরের প্রতিটা বারপ্লট কিন্তু প্রতিটি আলাদাভাবে জেনারেট করা। আপনাদের সুবিধার জন্য একসাথে করা। কার্ট ওয়েরলিকে ধন্যবাদ। দুটো বারপ্লটের কোড দেয়া হলো এখানে। বাকিগুলো দেয়া আছে গিটহাবের পাতায়। সেটার লিংক দেয়া আছে প্রতিটা চ্যাপ্টারের নিচে।

barplot(table(train$Survived), # train ডাটাফ্রেমে Survived কলামের বারপ্লট
names.arg = c("Perished", "Survived"), # বারপ্লটগুলোর নিচে বোঝার জন্য কিছু নাম
main="Survived (passenger fate)", col="black") # সেটার ওপরে কি টাইটেল হবে?
barplot(table(train$Pclass),
names.arg = c("first", "second", "third"),
main="Pclass (passenger traveling class)", col="firebrick")

ছবি: প্রায় সব কলামের বারপ্লট

আপনি বলুন, কি বলছে ছবিগুলো? প্রথম কয়েকটা ছবির মানে এমন হতে পারে; (প্রথম প্রেডিকশনে কিন্তু জানা গিয়েছে ব্যাপারগুলো)

১. বেশিরভাগ যাত্রী মারা গিয়েছেন

২. দ্বিগুনেরও বেশি ৩য় শ্রেণীর যাত্রী, ১ম + ২য় মিলিয়ে

৩. পুরুষ যাত্রী থেকে মহিলা যাত্রী অনেক অনেক কম

৪. ২০ থেকে ৩০ বছর বয়সের যাত্রীর সংখ্যা অনেক অনেক বেশি। এর মানে উন্নত জীবনের খোঁজে তারা যাচ্ছিলেন মার্কিন যুক্তরাষ্ট্রে।

৫. একা যাত্রীর সংখ্যাই বেশি

৬. বেশিরভাগের ভাড়া ৪০ ডলারের মধ্যে

৭. বেশিরভাগ যাত্রী উঠেছিলেন সাউথহ্যাম্পটন থেকে

একেকটা ছবি যে কতো কথা বলে সেটা দেখবেন সামনে। বাকিগুলো আসবে সামনের EDA, এক্সপ্লোরেটরি ডাটা অ্যানালাইসিসে।

ব্যবহৃত গিটহাব স্ক্রিপ্ট (অনলাইন)

https://github.com/raqueeb/mltraining/blob/master/ML-workbook/data-munging.R

আর কার্ট ওয়েরলির গিটহাব স্ক্রিপ্ট, ভালো লিখেছেন উনি

https://github.com/wehrley/wehrley.github.io/blob/master/SOUPTONUTS.md