এখানে, আমরা একটি Binary Classification প্রজেক্ট তৈরি করব যেখানে আমরা Logistic Regression মডেল ব্যবহার করে Iris Dataset এর উপর কাজ করব। এই প্রজেক্টে আমরা একটি ক্লাসিফিকেশন টাস্ক সল্ভ করব, যেখানে দুটি শ্রেণী নির্ধারণ করা হবে (যেমন: Setosa এবং Non-Setosa)। আমরা Logistic Regression মডেল ট্রেনিং করব, মডেলটির পারফরম্যান্স মূল্যায়ন করব এবং প্রেডিকশন তৈরি করব।
1. ডেটাসেট লোড এবং প্রিপ্রসেসিং
প্রথমে আমরা Iris Dataset ব্যবহার করব, যেটি একটি জনপ্রিয় ডেটাসেট। এটি ৩টি শ্রেণীর ফুলের বৈশিষ্ট্য দেয় (Setosa, Versicolour, Virginica)। তবে আমরা এখানে Binary Classification করব এবং শুধুমাত্র Setosa এবং Non-Setosa শ্রেণী নিয়ে কাজ করব।
# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix
# Iris ডেটাসেট লোড করা
data = load_iris()
X = data.data # ফিচারস
y = data.target # টার্গেট বা লেবেল
# Binary Classification: Setosa (0) এবং Non-Setosa (1) শ্রেণী তৈরি করা
y_binary = (y == 0).astype(int) # Setosa এর জন্য 1, অন্য শ্রেণীর জন্য 0
# ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y_binary, test_size=0.2, random_state=42)
2. Logistic Regression মডেল ট্রেনিং
এখন, Logistic Regression মডেল তৈরি এবং ট্রেনিং করতে হবে।
# Logistic Regression মডেল তৈরি করা
model = LogisticRegression(max_iter=200)
# মডেল ট্রেনিং
model.fit(X_train, y_train)
3. মডেল মূল্যায়ন (Evaluation)
মডেলটি ট্রেনিং শেষ হওয়ার পর, আমরা accuracy এবং confusion matrix ব্যবহার করে এর পারফরম্যান্স মূল্যায়ন করব।
# টেস্ট ডেটার উপর প্রেডিকশন করা
y_pred = model.predict(X_test)
# Accuracy মূল্যায়ন
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
# Confusion Matrix
cm = confusion_matrix(y_test, y_pred)
print("\nConfusion Matrix:")
print(cm)
4. প্রেডিকশন তৈরি করা
এখন, আমরা মডেলটি ব্যবহার করে কিছু নতুন ডেটার জন্য প্রেডিকশন তৈরি করব।
# নতুন ডেটার জন্য প্রেডিকশন করা
new_data = [[5.1, 3.5, 1.4, 0.2]] # একটি নতুন ফুলের সাইজ
prediction = model.predict(new_data)
# প্রেডিকশন ফলাফল
print(f"Prediction (Setosa = 1, Non-Setosa = 0): {prediction[0]}")
5. ফলাফল বিশ্লেষণ
এখানে, আমরা মডেলটির পারফরম্যান্স বিশ্লেষণ করতে পারি, যেমন accuracy, confusion matrix এবং ফলাফল।
- Accuracy: মডেল কতটা সঠিকভাবে প্রেডিকশন করেছে তার শতাংশ দেখাবে।
- Confusion Matrix: সঠিক এবং ভুল প্রেডিকশনগুলির সংখ্যা দেখাবে। এর মাধ্যমে আমরা দেখতে পাব যে, কতটি Setosa এবং Non-Setosa শ্রেণী সঠিকভাবে প্রেডিক্ট করা হয়েছে এবং কতটি ভুল হয়েছে।
উদাহরণ আউটপুট:
Accuracy: 96.67%
Confusion Matrix:
[[13 0]
[ 1 16]]
Prediction (Setosa = 1, Non-Setosa = 0): 0
সারাংশ:
- Logistic Regression দিয়ে Binary Classification মডেল তৈরি করার জন্য প্রথমে ডেটা লোড করে সেটি প্রিপ্রসেস করতে হয়।
- এরপর Logistic Regression মডেল তৈরি করে, ট্রেনিং ডেটার উপর মডেলটি শিখানো হয়।
- শেষে, মডেলের পারফরম্যান্স accuracy, confusion matrix এবং prediction এর মাধ্যমে মূল্যায়ন করা হয়।
- আমরা এখানে Setosa এবং Non-Setosa শ্রেণী ভিত্তিক একটি Binary Classification প্রজেক্ট তৈরি করেছি।
এই প্রজেক্টটি সহজ এবং প্রাথমিক পর্যায়ের ব্যবহারকারীদের জন্য একটি ভাল উদাহরণ হতে পারে, যাতে তারা Logistic Regression এবং Binary Classification এর ধারণা সহজে বুঝতে পারে।
Read more