লজিস্টিক রিগ্রেশন একটি জনপ্রিয় এবং শক্তিশালী ক্লাসিফিকেশন অ্যালগরিদম যা সাধারণত বাইনারি ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। Python-এ scikit-learn লাইব্রেরি ব্যবহার করে খুব সহজে একটি লজিস্টিক রিগ্রেশন মডেল তৈরি করা যায়।
নিচে একটি ধাপে ধাপে উদাহরণ দেওয়া হলো:
1. প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
প্রথমে, আপনার সিস্টেমে প্রয়োজনীয় লাইব্রেরি গুলি ইনস্টল করুন। যদি আগে থেকে ইনস্টল না থাকে, তাহলে আপনি নিচের কমান্ডটি চালিয়ে scikit-learn, pandas, matplotlib ইত্যাদি লাইব্রেরি ইনস্টল করতে পারেন:
pip install numpy pandas scikit-learn matplotlib
2. লাইব্রেরি ইমপোর্ট করা
ডেটা লোড এবং মডেল তৈরি করার জন্য প্রয়োজনীয় লাইব্রেরিগুলি ইমপোর্ট করুন:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix
3. ডেটা লোড করা
এখন একটি ডেটাসেট লোড করতে হবে। এখানে আমরা উদাহরণ হিসেবে Iris ডেটাসেট ব্যবহার করছি:
# Iris ডেটাসেট লোড করা
from sklearn.datasets import load_iris
data = load_iris()
# ইনপুট ফিচার (X) এবং আউটপুট (y) আলাদা করা
X = data.data
y = data.target
# ডেটার প্রথম ৫টি রেকর্ড দেখানো
print(pd.DataFrame(X, columns=data.feature_names).head())
4. ডেটা টেস্ট এবং ট্রেনিং সেটে ভাগ করা
এখন ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা হবে। সাধারণত, ৭০%-৮০% ডেটা ট্রেনিংয়ের জন্য এবং ২০%-৩০% টেস্টের জন্য রাখা হয়।
# ডেটা ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
5. ডেটা স্কেলিং (Optional)
লজিস্টিক রিগ্রেশন মডেলটির জন্য স্কেলিং খুবই গুরুত্বপূর্ণ, বিশেষত যখন বিভিন্ন ফিচারের স্কেল ভিন্ন হয়। StandardScaler ব্যবহার করে ডেটা স্কেল করা যাবে।
# ডেটা স্কেলিং
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
6. লজিস্টিক রিগ্রেশন মডেল ট্রেনিং
এখন লজিস্টিক রিগ্রেশন মডেল তৈরি এবং ট্রেনিং করা হবে:
# লজিস্টিক রিগ্রেশন মডেল তৈরি
model = LogisticRegression(max_iter=200)
# মডেল ট্রেনিং
model.fit(X_train, y_train)
7. প্রেডিকশন এবং মডেল মূল্যায়ন
এখন মডেলটি টেস্ট ডেটা থেকে প্রেডিকশন করবে এবং তারপর 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("Confusion Matrix:")
print(cm)
# Confusion matrix এর visualization
plt.matshow(cm, cmap='Blues')
plt.title("Confusion Matrix")
plt.colorbar()
plt.xlabel("Predicted")
plt.ylabel("True")
plt.show()
8. ফলাফল বিশ্লেষণ
- Accuracy: এই মেট্রিকটি মডেলের সঠিকতার পরিমাণ জানায়। এটি সঠিকভাবে প্রেডিক্ট করা ক্লাসগুলির সংখ্যা (সঠিক আউটপুট) মোট ক্লাসের সংখ্যা দ্বারা ভাগ করে বের করা হয়।
- Confusion Matrix: এটি একটি সারণী যা মডেলের পারফরম্যান্সের বিশ্লেষণ করতে সহায়ক, যেখানে আপনি দেখতে পারবেন কতটি সঠিকভাবে প্রেডিক্ট করা হয়েছে এবং কতটি ভুল হয়েছে।
9. সারাংশ
- মডেল তৈরি: প্রথমে
LogisticRegressionমডেল তৈরি করে, সেটি প্রশিক্ষণ ডেটার ওপর ট্রেনিং করা হয়। - প্রেডিকশন: এরপর, মডেলটি টেস্ট ডেটার উপর প্রেডিকশন করে এবং accuracy, confusion matrix ব্যবহার করে মডেলটির পারফরম্যান্স মূল্যায়ন করা হয়।
এভাবে, Python এবং scikit-learn লাইব্রেরি ব্যবহার করে লজিস্টিক রিগ্রেশন মডেল তৈরি এবং মূল্যায়ন করা যায়।