Clustering এবং Dimensionality Reduction প্রজেক্ট

বাস্তব উদাহরণ এবং প্রজেক্ট ডেমো - পাইথন দিয়ে মেশিন লার্নিং (Machine Learning with Python) - Machine Learning

259

Clustering এবং Dimensionality Reduction হল মেশিন লার্নিং এবং ডেটা সায়েন্সের দুটি গুরুত্বপূর্ণ কৌশল, যা ডেটা বিশ্লেষণ, শ্রেণীবিভাগ এবং ভিজ্যুয়ালাইজেশনের জন্য ব্যবহৃত হয়।

১. Clustering

Clustering একটি অ-সুপারভাইজড লার্নিং টাস্ক, যেখানে ডেটা পয়েন্টগুলিকে ক্লাস্টারে বিভক্ত করা হয় যাতে পয়েন্টগুলির মধ্যে অভ্যন্তরীণ সাদৃশ্য বেশি এবং ক্লাস্টারগুলির মধ্যে পার্থক্য বেশি হয়। এটি ডেটার গঠন এবং প্যাটার্নের ধারণা পাওয়ার জন্য ব্যবহৃত হয়।

২. Dimensionality Reduction

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


Clustering এবং Dimensionality Reduction এর সাথে একটি প্রজেক্ট উদাহরণ

এই প্রজেক্টে আমরা K-Means Clustering এবং Principal Component Analysis (PCA) ব্যবহার করে ডেটা বিশ্লেষণ করব। এখানে আমরা Iris ডেটাসেট ব্যবহার করব এবং ডেটার ক্লাস্টারিং এবং ডাইমেনশনালিটি রিডাকশন করে ডেটার ভিজ্যুয়ালাইজেশন দেখব।

প্রয়োজনীয় লাইব্রেরি:

pip install scikit-learn matplotlib seaborn

কোড উদাহরণ:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
import seaborn as sns

# Iris ডেটাসেট লোড করা
iris = load_iris()
X = iris.data
y = iris.target
feature_names = iris.feature_names

# ডেটাকে স্ট্যান্ডার্ডাইজ করা (বিশেষ করে ক্লাস্টারিং এর জন্য গুরুত্বপূর্ণ)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# **Dimensionality Reduction**: PCA ব্যবহার করে ডেটার মাত্রা কমানো
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

# **Clustering**: KMeans ব্যবহার করে ডেটার ক্লাস্টার তৈরি করা
kmeans = KMeans(n_clusters=3)
y_kmeans = kmeans.fit_predict(X_pca)

# PCA দিয়ে রিডাক্ট করা ডেটার ভিজ্যুয়ালাইজেশন
plt.figure(figsize=(8, 6))
sns.scatterplot(x=X_pca[:, 0], y=X_pca[:, 1], hue=y_kmeans, palette="Set1", style=y_kmeans, s=100)
plt.title('KMeans Clustering with PCA (2D)')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.legend(title='Cluster', loc='upper right')
plt.show()

# **Clustering** এবং **PCA Explained Variance**
print(f'Explained Variance by 1st Principal Component: {pca.explained_variance_ratio_[0]*100:.2f}%')
print(f'Explained Variance by 2nd Principal Component: {pca.explained_variance_ratio_[1]*100:.2f}%')

# **Original Iris Labels vs KMeans Clusters**
print("Original Iris labels (actual class labels):", y)
print("Predicted KMeans clusters:", y_kmeans)

কোডের ব্যাখ্যা:

  1. ডেটাসেট লোড করা:
    • Iris ডেটাসেট লোড করা হয়েছে যা ৪টি ফিচার (সেপাল লেন্থ, সেপাল উইথ, পেটাল লেন্থ, পেটাল উইথ) এবং ৩টি ক্লাস (Setosa, Versicolor, Virginica) নিয়ে গঠিত।
  2. ডেটা স্কেলিং:
    • StandardScaler ব্যবহার করে ডেটাকে স্কেল করা হয়েছে। ক্লাস্টারিংয়ের ক্ষেত্রে স্কেলিং অত্যন্ত গুরুত্বপূর্ণ, কারণ মডেলটি ডেটার বৈশিষ্ট্যগুলির মধ্যে ব্যবধান বা ফিচারের স্কেলকে গুরুত্ব দেয়।
  3. PCA (Principal Component Analysis):
    • PCA ব্যবহার করে ডেটার মাত্রা ৪ থেকে ২ এ কমিয়ে আনা হয়েছে, যা ডেটার মধ্যে মূল বৈশিষ্ট্য সংরক্ষণ করতে সাহায্য করে এবং ভিজ্যুয়ালাইজেশন সহজতর হয়।
  4. KMeans Clustering:
    • KMeans অ্যালগরিদম ব্যবহার করে ডেটাকে ৩টি ক্লাস্টারে ভাগ করা হয়েছে (Iris ডেটাসেটের প্রকৃত শ্রেণী ৩টি হওয়ায়)।
    • মডেলটি ক্লাস্টারগুলির জন্য পূর্বানুমান তৈরি করেছে, যা পরে ভিজ্যুয়ালাইজেশনের মাধ্যমে দেখা যাবে।
  5. ভিজ্যুয়ালাইজেশন:
    • Matplotlib এবং Seaborn ব্যবহার করে PCA দিয়ে কমপ্রেসড ডেটা ২D আকারে ভিজ্যুয়ালাইজ করা হয়েছে।
    • প্রতিটি পয়েন্টের ক্লাস্টার ভিন্ন ভিন্ন রঙে প্রদর্শিত হবে।
  6. Explained Variance:
    • PCA কতটা তথ্য সংরক্ষণ করেছে, তা বোঝার জন্য explained_variance_ratio_ চেক করা হয়েছে, যা প্রথম দুই Principal Components এর দ্বারা ব্যাখ্যা করা মোট ভেরিয়েন্স দেখায়।
  7. Clustering এবং Labels তুলনা:
    • Iris ডেটাসেটের আসল লেবেলগুলির সাথে KMeans এর ক্লাস্টার তুলনা করা হয়েছে, যা মডেলের দক্ষতা বুঝতে সাহায্য করবে।

ফলাফল:

  • PCA এবং KMeans ক্লাস্টারিংয়ের মাধ্যমে, আপনি সহজেই ডেটাকে ২D প্লটে ভিজ্যুয়ালাইজ করতে পারবেন এবং ক্লাস্টারের গঠন সম্পর্কে ধারণা পাবেন।
  • Explained Variance দেখাবে কতটুকু তথ্য প্রথম দুটি Principal Components ধরে রেখেছে।
  • Confusion between Clusters and Labels: KMeans ক্লাস্টারগুলির সাথে আসল লেবেলগুলির তুলনা করলে মডেলটির পারফরম্যান্স সম্পর্কে একটি ধারণা পাওয়া যাবে।

সারাংশ

এই প্রজেক্টে, আমরা Clustering (KMeans) এবং Dimensionality Reduction (PCA) টেকনিক ব্যবহার করেছি:

  • PCA ডেটার মাত্রা কমানোর মাধ্যমে ডেটার প্যাটার্ন এবং বৈশিষ্ট্যগুলো সহজে বিশ্লেষণ করা যায়।
  • KMeans Clustering ব্যবহার করে ডেটার অজানা ক্লাস্টারগুলো নির্ধারণ করা হয়েছে।
  • ডেটার পারফরম্যান্স এবং শ্রেণীবিভাগ সম্পর্কে আরও ভালো ধারণা পেতে Explained Variance এবং Confusion Matrix বিশ্লেষণ করা হয়েছে।

এই টেকনিকগুলি মেশিন লার্নিং প্রজেক্টে ডেটা ভিজ্যুয়ালাইজেশন এবং শ্রেণীভাগ (clustering) কাজের জন্য খুবই কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...