📋 বিষয়সূচী

01

Module 01 থেকে Advanced — কেন?

⏱ ১০ মিনিট · Bridge + Data type map

🔗 Module 01 থেকে এখানে

← Module 01: Data Visualization & EDA — Rafiul সাহেবের সুপারশপ shopSales ডেটায় Bar, Line, Pie, Scatter শিখেছেন।

Module 10-এ ShopBD ই-কমার্স — রিভিউ (টেক্সট), কাস্টমার প্রোফাইল (বহু-ডাইমেনশন), সেলস (তুলনামূলক) — যখন সাধারণ চার্ট যথেষ্ট নয়।

গল্প: ShopBD-র ১০,০০০ রিভিউ 📦

ধরুন আপনি একটা ই-কমার্স কোম্পানির ডেটা টিমে আছেন। প্রতিদিন হাজার হাজার কাস্টমার রিভিউ, লাখো ট্রানজেকশন আসছে। Bar Chart দিয়ে "প্রোডাক্টটা খুব ভালো, তবে ডেলিভারি দেরি হয়েছে" — এই টেক্সট দেখানো যায় না। এখানেই দরকার Advanced Data Visualization

সাধারণ চার্ট কেন যথেষ্ট নয়?

ডেটার ধরনসাধারণ চার্ট কেন ব্যর্থকী দরকার
কাস্টমার রিভিউ / টেক্সটটেক্সটে সংখ্যা নেইWord Cloud, TF-IDF
৬-৭টি কলামের ডেটা২D-তে ৬ ডাইমেনশন অসম্ভবHeatmap, Parallel Coordinates
দুই বছরের সেলস তুলনাএক লাইনে তুলনা ঝাপসাGrouped/Stacked Bar
Embedding (৫১২D ভেক্টর)মানুষ কল্পনা করতে পারে নাPCA, t-SNE, UMAP

মূল প্যাটার্ন: Raw Data → Processed Data → Visualization → Insight → Business Decision। Netflix watch history কে embedding-এ রূপান্তর করে t-SNE দিয়ে দেখে — "Recommended for You" তৈরি হয়।

🖱️ Interactive: Data Type → Visualization Map

আপনার ডেটা কোন ক্যাটাগরিতে পড়ে? বাটন চাপুন — সঠিক ভিজ্যুয়ালাইজেশন দেখুন।

02

Text & Document Visualization — ৫ ধরন

⏱ ৪৫ মিনিট · Gallery + Interactive Labs

Text & Document Visualization কী? রিভিউ, কমেন্ট, নিউজ — টেক্সট ডেটা থেকে থিম, গুরুত্বপূর্ণ শব্দ ও প্যাটার্ন দৃশ্যমান করা।

৫ ধরনের Text Visualization

#ধরনকখনLab
1Word Frequency Barসঠিক count দরকার
2Word Cloudদ্রুত থিম/executive view
3TF-IDF Barগুরুত্বপূর্ণ শব্দ (not just frequent)
4Document Length Histogramরিভিউ লম্বা/ছোট প্যাটার্ন
5Text Pipeline + Tokenspreprocess → tokens → insight

Module 01-এ Bar chart দিয়ে shopSales count করেছিলেন — টেক্সটে শব্দ count করলে Word Frequency Bar।

📝 Text Pipeline — প্রি-প্রসেসিং

টেক্সট ডেটা সরাসরি চার্টে যায় না। প্রথমে preprocess করে সংখ্যায় আনতে হয়।

প্রি-প্রসেসিং ধাপ

LowercaseRemove PunctuationRemove Stop Words ("the", "is", "a") → Tokenization (শব্দে ভাগ)।

উন্নত ধাপ: Bigram ("battery life") ও Trigram ("delivery was late") — একাধিক শব্দ একসাথে ধরে ফ্রেজ-লেভেল থিম বের করে। উদাহরণ: শুধু "battery" না, "battery drains" বা "battery life amazing" আলাদা গুরুত্ব পায়।

🖱️ Interactive: Text Pipeline Step-by-Step

ShopBD রিভিউ: "The battery life is amazing and lasts long" — প্রতিটি ধাপ দেখুন।

Raworiginal
Lowercasea-z
Stopwordsfilter
Tokenswords

টোকেন সংখ্যা: 0

📊 Word Frequency + Word Cloud

Word Frequency — কোন শব্দ কতবার এসেছে, সঠিক সংখ্যায় Bar Chart। Word Cloud — বেশি ব্যবহৃত শব্দ বড় আকারে, এক নজরে থিম বোঝার জন্য।

Word Cloud vs Bar Chart — কখন কোনটা?

লক্ষ্যWord CloudBar Chart (Top-N)
প্রেজেন্টেশন / স্টেকহোল্ডার✅ দ্রুত, সুন্দর⚠️ কম ভিজ্যুয়াল
সঠিক সংখ্যা দরকার❌ আন্দাজে✅ নির্ভুল
শব্দ তুলনা (battery vs camera)❌ কঠিন✅ সহজ
Executive summary✅ আদর্শ✅ যাচাইয়ের জন্য

Best practice: Cloud দিয়ে শুরু করুন, Bar Chart দিয়ে যাচাই করুন।

🖱️ Interactive: Top-N Word Frequency

ShopBD রিভিউ থেকে — স্লাইডার দিয়ে Top-N (৫–১৫) বদলান।

🖱️ Interactive: Word Cloud

বড় শব্দ = বেশি ফ্রিকোয়েন্সি। "battery", "camera", "delivery" থিম চোখে পড়বে।

🔤 TF-IDF + Document Length

TF (Term Frequency) = শব্দ এই ডকুমেন্টে কতবার। IDF (Inverse Document Frequency) = শব্দ কত কম ডকুমেন্টে আছে — তত বেশি স্পেশাল। "product" সব জায়গায় → কম গুরুত্ব; "overheating" কম জায়গায় → বেশি গুরুত্ব।

Document Length Distribution

প্রতিটা রিভিউ কত শব্দের — Histogram দিয়ে দেখানো হয়। ছোট রিভিউ = সংক্ষিপ্ত মতামত; বড় রিভিউ = বিস্তারিত অভিযোগ/প্রশংসা। ShopBD-তে গড় ৮–১২ শব্দ — বেশিরভাগ সংক্ষিপ্ত।

🖱️ Interactive: Word Count vs TF-IDF

দুটো মোড তুলনা করুন — কোন শব্দ শুধু "বেশি" নয়, "গুরুত্বপূর্ণ"?

🖱️ Interactive: Document Length Histogram

প্রতিটি ShopBD রিভিউ কত শব্দের — ছোট vs বড় রিভিউ প্যাটার্ন।

03

Multidimensional Visualization — ৫ ধরন

⏱ ৫০ মিনিট · Gallery + Interactive Labs

Multidimensional Visualization কী? ৩+ নিউমেরিক কলাম একসাথে দেখা — correlation, encoding, বা high-dim → 2D।

৫ ধরনের Multidimensional Visualization

#ধরনকখনLab
1Correlation Heatmap৫+ numeric columns একসাথে
2Bubble Chart (4D)X+Y+Size+Color encoding
3Parallel Coordinatesmany dims, row = line
4Pair Plot / Scatter Matrix২-৩ col pairwise
5Embedding 2D Scatter100D+ → PCA/t-SNE/UMAP

Module 01 Scatter = ২ variable; Heatmap/Bubble = ৪–৭ variable এক প্লটে।

🌡️ Correlation Heatmap

৬-৭টি নিউমেরিক কলাম (Age, Income, Spending, Visits…) একসাথে দেখতে গেলে Curse of Dimensionality — মানুষ ২-৩ ডাইমেনশনের বেশি কল্পনা করতে পারে না। Heatmap দিয়ে সব জোড়া কলামের correlation (-১ থেকে +১) এক গ্রিডে দেখা যায়।

Correlation পড়ার নিয়ম

মানঅর্থউদাহরণ
+১ (লাল)শক্তিশালী পজিটিভIncome ↑ → Spending ↑
-১ (নীল)শক্তিশালী নেগেটিভএকটা ↑ → অন্যটা ↓
~০দুর্বল/কোনো সম্পর্ক নেইAge vs Visits (কখনও)

🖱️ Interactive: Correlation Heatmap

সেলের উপর hover করুন — Pearson r ও ইনসাইট দেখুন।

সেলের উপর hover করুন correlation দেখতে।

⭕ Bubble Chart + Parallel Coordinates

Curse of dimensionality-র সমাধান: এক চার্টে একাধিক ভিজ্যুয়াল এনকোডিং। Bubble = X + Y + Size + Color (৪D)। Parallel Coordinates = প্রতিটা ডাইমেনশন উলম্ব অক্ষ।

🖱️ Interactive: 4D Bubble Chart

X, Y, Size, Color নিজে বেছে নিন — ৪ ডাইমেনশন এক প্লটে।

🖱️ Interactive: Parallel Coordinates

প্রতিটি লাইন = একজন কাস্টমার। Mouse দিয়ে hover করুন — লাইন হাইলাইট হবে।

🖱️ Interactive: Pair Plot (Scatter Matrix)

Age, Income, Spending — প্রতিটি জোড়ায় scatter দেখুন।

🗺️ Embedding 2D Scatter (PCA / t-SNE / UMAP)

Embedding = শব্দ, প্রোডাক্ট, ইউজারকে সংখ্যার ভেক্টরে রূপান্তর। ১০০–৫১২ ডাইমেনশন → PCA/t-SNE/UMAP দিয়ে 2D scatter।

🖱️ Interactive: Word Embedding Scatter (PCA / t-SNE / UMAP)

মেথড বদলান — ক্লাস্টার আকার ও দূরত্ব কীভাবে বদলায় দেখুন।

বিন্দুর উপর hover করুন — শব্দ ও cluster দেখুন।

PCA vs t-SNE vs UMAP — দ্রুত সিদ্ধান্ত

বৈশিষ্ট্যPCAt-SNEUMAP
মূল লক্ষ্যসামগ্রিক গঠন সংক্ষিপ্তLocal similarity বজায়Local + global
গতিখুব দ্রুতধীরদ্রুত
কখন ব্যবহারদ্রুত overviewস্পষ্ট clusterবড় ডেটাসেট
04

Comparative Visualization — ৪ ধরন

⏱ ৩০ মিনিট · Gallery + Interactive Labs

Comparative Visualization কী? দুই বা ততোধিক গ্রুপ/সময়ের তুলনা — ২০২৪ vs ২০২৫, Campaign A vs B।

৪ ধরনের Comparative Visualization

#ধরনকখনLab
1Grouped Barপাশাপাশি গ্রুপ তুলনা
2Stacked Barমোট + অংশের ভাগ
3Multi-lineসময়ের ট্রেন্ড তুলনা
4Small Multiplesঅনেক ক্যাটাগরি, এক স্কেল

Module 01 Bar chart এক সিরিজ — Grouped Bar = ২০২৪ vs ২০২৫ দুই সিরিজ।

Small Multiples

ক্যাটাগরি বেশি হলে এক চার্টে গুঁজে দেবেন না — small multiples (একই স্কেলের ছোট ছোট চার্ট) ব্যবহার করুন।

🖱️ Interactive: Sales Comparison 2024 vs 2025

Grouped / Stacked / Line — মোড বদলে তুলনা পদ্ধতি দেখুন।

🖱️ Interactive: Small Multiples — Quarterly Sales

৪টি mini-chart এক স্কেলে — Q1–Q4 তুলনা সহজ।

05

ShopBD End-to-End Case Study

⏱ ১৫ মিনিট · ৩ স্তম্ভ একসাথে

বিজনেস কেস: ShopBD ই-কমার্স 🇧🇩

ShopBD-র কাছে কাস্টমার রিভিউ, প্রোফাইল ডেটা, দুই বছরের সেলস, প্রোডাক্ট embedding। চার ধাপে advanced viz দিয়ে তিনটা বিজনেস সিদ্ধান্ত নেওয়া হলো।

ধাপ ১ — Text Visualization

ডেটা: ৫০০ রিভিউ। করণীয়: Word Frequency + TF-IDF → "delivery", "quality", "packaging" শীর্ষে।

ইনসাইট: ডেলিভারি অভিযোগ বেশি — লজিস্টিক টিমকে জানানো।

🔗 Labs: Word Freq ★ · TF-IDF ★ · Pipeline ★

ধাপ ২ — Multidimensional

ডেটা: Age, Income, Spending, City। Heatmap: Income–Spending শক্তিশালী পজিটিভ। Bubble: ঢাকার কাস্টমার বেশি খরচ করে।

ইনসাইট: ঢাকার হাই-ইনকাম সেগমেন্টে প্রিমিয়াম লাইন।

🔗 Labs: Heatmap ★ · Bubble ★ · Parallel ★

ধাপ ৩ — Comparative

ডেটা: ২০২৪ vs ২০২৫ মাসিক সেলস। Grouped Bar: ঈদ মাসে ২০২৫-এ ৩০% বেশি।

ইনসাইট: ঈদ ক্যাম্পেইন বাজেট বাড়ানো লাভজনক।

🔗 Lab: Compare Toggle ★

ধাপ ৪ — Embedding

ডেটা: প্রোডাক্ট description embedding। t-SNE: "electronics" ও "mobile accessories" একসাথে cluster — ক্যাটাগরি ট্যাগ ভুল ছিল।

ইনসাইট: ক্যাটাগরি ট্যাগিং + recommendation উন্নতি।

🔗 Lab: Embedding Scatter ★

চূড়ান্ত সিদ্ধান্ত

(১) লজিস্টিক উন্নতি · (২) ঢাকা প্রিমিয়াম ক্যাম্পেইন · (৩) ক্যাটাগরি ও recommendation সিস্টেম ঠিক করা।

06

Colab · MCQ · Homework

⏱ Hands-on Python + Self-check

নিচের chip-এ ক্লিক করে সরাসরি কোড ব্লকে যান। প্রতিটি ব্লক ShopBD ডেটা দিয়ে advanced viz প্র্যাকটিস।

Setup — লাইব্রেরি ইনস্টল
# Colab cell 1: প্রয়োজনীয় লাইব্রেরি
!pip install wordcloud -q

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from wordcloud import WordCloud
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
from pandas.plotting import parallel_coordinates

sns.set_style("whitegrid")
plt.rcParams['figure.figsize'] = (8, 5)
💡 !pip install শুধু Colab/Jupyter-এ কাজ করে — সাধারণ .py স্ক্রিপ্টে নয়।
Sample Dataset — Mall Customer
np.random.seed(42)
n = 200
df = pd.DataFrame({
    "Age": np.random.randint(18, 65, n),
    "Annual_Income": np.random.randint(15, 140, n),
    "Spending_Score": np.random.randint(1, 100, n),
    "Gender": np.random.choice(["Male","Female"], n)
})
print(df.shape)
df.head()
(200, 4) — ২০০ কাস্টমার, ৪ কলাম
Word Frequency Chart
reviews = [
    "the battery life is amazing and lasts long",
    "battery drains too fast very disappointing",
    "camera quality is amazing love the photos",
    "delivery was late but product quality is good",
    "battery heats up quickly during charging"
]
from collections import Counter
stop_words = {"the","is","was","and","but","too","up","during"}
all_words = []
for review in reviews:
    words = [w for w in review.lower().split() if w not in stop_words]
    all_words.extend(words)
word_freq = Counter(all_words).most_common(8)
words, counts = zip(*word_freq)
plt.barh(words, counts, color="#0F6E56")
plt.xlabel("Frequency"); plt.title("Top Words in Reviews")
plt.gca().invert_yaxis(); plt.show()
Word Cloud
text_combined = " ".join(all_words)
wc = WordCloud(width=800, height=400, background_color="white",
               colormap="viridis").generate(text_combined)
plt.figure(figsize=(10,5))
plt.imshow(wc, interpolation="bilinear")
plt.axis("off"); plt.title("Customer Review Word Cloud"); plt.show()
TF-IDF Visualization
vectorizer = TfidfVectorizer(stop_words="english")
tfidf_matrix = vectorizer.fit_transform(reviews)
feature_names = vectorizer.get_feature_names_out()
scores = tfidf_matrix.sum(axis=0).A1
tfidf_df = pd.DataFrame({"word": feature_names, "score": scores})
tfidf_df = tfidf_df.sort_values("score", ascending=False).head(10)
plt.barh(tfidf_df["word"], tfidf_df["score"], color="#993C1D")
plt.title("Top TF-IDF Words"); plt.gca().invert_yaxis(); plt.show()
Correlation Heatmap
corr = df[["Age","Annual_Income","Spending_Score"]].corr()
plt.figure()
sns.heatmap(corr, annot=True, cmap="coolwarm", vmin=-1, vmax=1)
plt.title("Feature Correlation Heatmap"); plt.show()
Bubble Chart (4D)
colors = df["Gender"].map({"Male":"#185FA5","Female":"#993C1D"})
plt.scatter(df["Annual_Income"], df["Spending_Score"],
            s=df["Age"]*3, c=colors, alpha=0.6)
plt.xlabel("Annual Income"); plt.ylabel("Spending Score")
plt.title("Income vs Spending (bubble size = Age)"); plt.show()
Parallel Coordinates
df_pc = df.copy()
df_pc["Segment"] = pd.qcut(df_pc["Spending_Score"], 2, labels=["Low","High"])
plt.figure(figsize=(9,5))
parallel_coordinates(df_pc[["Age","Annual_Income","Spending_Score","Segment"]],
                      "Segment", color=["#0F6E56","#993C1D"])
plt.title("Parallel Coordinates: Customer Segments"); plt.show()
Grouped Bar — Sales Comparison
months = ["Jan","Feb","Mar","Apr"]
sales_2024 = [120, 135, 150, 140]
sales_2025 = [160, 150, 170, 190]
x = np.arange(len(months)); width = 0.35
plt.bar(x - width/2, sales_2024, width, label="2024", color="#042C53")
plt.bar(x + width/2, sales_2025, width, label="2025", color="#993C1D")
plt.xticks(x, months); plt.legend(); plt.title("Sales: 2024 vs 2025"); plt.show()
PCA — Iris 4D → 2D
from sklearn.datasets import load_iris
iris = load_iris(); X = iris.data; y = iris.target
pca = PCA(n_components=2); X_pca = pca.fit_transform(X)
plt.scatter(X_pca[:,0], X_pca[:,1], c=y, cmap="viridis")
plt.xlabel("PC1"); plt.ylabel("PC2")
plt.title("PCA: Iris (4D → 2D)"); plt.show()
PCA প্রেডিকশন করে না — শুধু ডাইমেনশন কমায় ভিজ্যুয়ালাইজেশনের জন্য।
t-SNE — Cluster visualization
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_tsne = tsne.fit_transform(X)
plt.scatter(X_tsne[:,0], X_tsne[:,1], c=y, cmap="viridis")
plt.title("t-SNE: Iris Clusters"); plt.show()
⚠️ t-SNE-তে ক্লাস্টারের মধ্যকার দূরত্ব reliable নয় — শুধু কে কার কাছাকাছি সেটাই বোঝা যায়।

⚡ Quick Revision

Text: Word Freq / TF-IDF / Pipeline · Multidim: Heatmap / Bubble / Embedding · Compare: Grouped / Stacked / Multi-line

📝 MCQ — বিকল্পে ক্লিক করুন

সঠিক উত্তর সবুজ, ভুল লাল — ব্যাখ্যা নিচে দেখাবে।

MCQ — বিকল্পে ক্লিক করুন (৮টি)

১. TF-IDF-এ IDF কী বোঝায়?
শব্দের দৈর্ঘ্য
শব্দটা কত কম ডকুমেন্টে আছে
শব্দের বানান
মোট ডকুমেন্টের সংখ্যা
২. Bubble Chart-এ বুদবুদের আকার সাধারণত কী বোঝায়?
রঙ / ক্যাটাগরি
একটা তৃতীয় ভ্যারিয়েবলের মান
সময়
ডেটা পয়েন্টের নাম
৩. নিচের কোনটা Dimensionality Reduction টেকনিক নয়?
PCA
t-SNE
UMAP
Stacked Bar Chart
৪. Parallel Coordinates Plot-এ প্রতিটি লাইন কী বোঝায়?
একটা কলাম / ফিচার
একটা ডেটা পয়েন্ট / কাস্টমার
একটা আলাদা চার্ট
শুধু রঙ কোড
৫. Word Cloud বনাম Bar Chart — মূল পার্থক্য কী?
Word Cloud সঠিক সংখ্যা দেয়, Bar আন্দাজে
Bar সঠিক সংখ্যা; Cloud দ্রুত থিম বোঝায়
শুধু Bar টেক্সটে কাজ করে
Word Cloud-এ রঙ থাকে না
৬. Correlation Heatmap-এ -১ মানে কী?
শক্তিশালী পজিটিভ সম্পর্ক
শক্তিশালী নেগেটিভ সম্পর্ক
কোনো সম্পর্ক নেই
ডেটা নেই
৭. t-SNE প্লটে দুই ক্লাস্টারের মধ্যকার দূরত্ব দেখে কী বলা যায় না?
কোন বিন্দু কার কাছাকাছি
দুই ক্লাস্টার বাস্তবে কতটা আলাদা
ক্লাস্টার আছে কিনা
পুনরায় একই shape পাওয়া যায় কিনা
৮. PCA মূলত কেন ব্যবহার করা হয়?
ডেটা classify করতে
বেশি ডাইমেনশন ২-৩টায় কমিয়ে ভিজ্যুয়ালাইজ করতে
Missing value পূরণ করতে
সেলস প্রেডিক্ট করতে

🎤 Interview প্রশ্ন (সংক্ষিপ্ত)

Q: Correlation vs Causation?

A: Correlation = একসাথে বদলায়; Causation = একটা আরেকটার কারণ — সবসময় এক নয়।

Q: Word Cloud একমাত্র analysis হিসেবে ব্যবহার করা উচিত?

A: না — শুধু first overview; TF-IDF/Bar দিয়ে যাচাই করুন।

Q: Pair Plot-এ কত কলাম ideal?

A: ৩–৫টা গুরুত্বপূর্ণ কলাম; ১০+ হলে grid ঘিঞ্জি হয়ে যায়।

✅ Visualization Checklist

৪ ট্র্যাক — শিখা টপিক টিক দিন (localStorage-এ সেভ হয়)।

📚 Homework

যেকোনো প্রোডাক্টের (ফোন/বই) ১৫–২০টা রিভিউ Daraz/Amazon থেকে সংগ্রহ করুন।

  1. Word Frequency Chart + Word Cloud বানান — মূল থিম কী?
  2. TF-IDF চালিয়ে count-এর সাথে তুলনা করুন।
  3. ২-৩ লাইনে বিজনেস ইনসাইট ও সুপারিশ লিখুন।

🎉 অভিনন্দন! Module 10 সম্পন্ন!

আপনি শিখেছেন: Text viz, Multidim charts, Comparative analysis, Embedding visualization ও Python Colab workflow।