Python দিয়ে Logistic Regression মডেল তৈরি করা

Logistic Regression - পাইথন দিয়ে মেশিন লার্নিং (Machine Learning with Python) - Machine Learning

284

Logistic Regression হল একটি জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা শ্রেণীবিভাগ (Classification) সমস্যা সমাধানে ব্যবহৃত হয়। এটি সাধারণত দুটি ক্লাস (যেমন, হ্যাঁ বা না, সত্য বা মিথ্যা) মধ্যে বিভাজন করতে ব্যবহৃত হয়। এখানে আমরা Scikit-learn লাইব্রেরি ব্যবহার করে একটি Logistic Regression মডেল তৈরি এবং প্রশিক্ষণ করব।

Logistic Regression মডেল তৈরির পদক্ষেপ

  1. ডেটা লোড করা: প্রথমে একটি ডেটাসেট নির্বাচন করতে হবে।
  2. ডেটা প্রক্রিয়াকরণ: ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা।
  3. মডেল তৈরি করা: Logistic Regression মডেল তৈরি করা।
  4. মডেল প্রশিক্ষণ: মডেলটিকে প্রশিক্ষিত (Train) করা।
  5. মডেল মূল্যায়ন: মডেলটির পারফরম্যান্স মূল্যায়ন করা।

উদাহরণ: Iris ডেটাসেট ব্যবহার করে Logistic Regression

এখানে আমরা Iris ডেটাসেট ব্যবহার করব যা Scikit-learn এর মধ্যে রয়েছে। এই ডেটাসেটে ৩টি ক্লাস (Setosa, Versicolor, Virginica) রয়েছে, তবে আমরা এটি দুই ক্লাসে কনভার্ট করব যাতে Logistic Regression ব্যবহার করা যায়।

পদক্ষেপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল এবং ইমপোর্ট করা

pip install scikit-learn matplotlib numpy pandas

পদক্ষেপ ২: কোড লিখে Logistic Regression মডেল তৈরি করা

# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট করা
import numpy as np
import pandas as pd
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
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

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

# কেবল দুটি ক্লাস নির্বাচন করা (Setosa এবং Versicolor)
X = X[y != 2]
y = y[y != 2]

# ডেটা প্রক্রিয়াকরণ: ডেটাকে ট্রেনিং এবং টেস্ট সেটে ভাগ করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# ফিচার স্কেলিং করা (যেহেতু Logistic Regression জন্য ফিচার স্কেলিং প্রয়োজন)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Logistic Regression মডেল তৈরি করা
model = LogisticRegression()

# মডেল প্রশিক্ষণ (ট্রেনিং)
model.fit(X_train, y_train)

# মডেল থেকে ভবিষ্যদ্বাণী করা
y_pred = model.predict(X_test)

# মডেল মূল্যায়ন
accuracy = accuracy_score(y_test, y_pred)
conf_matrix = confusion_matrix(y_test, y_pred)

print(f"Accuracy: {accuracy * 100:.2f}%")
print("Confusion Matrix:")
print(conf_matrix)

# কনফিউশন ম্যাট্রিক্সের ভিজ্যুয়ালাইজেশন
plt.figure(figsize=(5, 5))
plt.imshow(conf_matrix, interpolation='nearest', cmap=plt.cm.Blues)
plt.title('Confusion Matrix')
plt.colorbar()
tick_marks = np.arange(2)
plt.xticks(tick_marks, ['Setosa', 'Versicolor'])
plt.yticks(tick_marks, ['Setosa', 'Versicolor'])
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()

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

  1. ডেটা লোড:
    • আমরা Iris ডেটাসেট ব্যবহার করছি, যা ৪টি ফিচার (Sepal Length, Sepal Width, Petal Length, Petal Width) নিয়ে গঠিত।
    • যেহেতু Logistic Regression সাধারণত দুই শ্রেণির সমস্যা সমাধান করে, আমরা ডেটাতে থেকে কেবল দুইটি ক্লাস (Setosa এবং Versicolor) বেছে নিয়েছি।
  2. ট্রেনিং এবং টেস্ট ডেটা ভাগ করা:
    • train_test_split ব্যবহার করে ডেটাসেটটিকে ৭০% ট্রেনিং ডেটা এবং ৩০% টেস্ট ডেটাতে ভাগ করেছি।
  3. ফিচার স্কেলিং:
    • StandardScaler ব্যবহার করে ডেটার স্কেল পরিবর্তন করেছি যাতে সমস্ত ফিচার একই স্কেলে থাকে।
  4. মডেল তৈরি এবং প্রশিক্ষণ:
    • LogisticRegression মডেল তৈরি করা এবং ট্রেনিং ডেটা দিয়ে প্রশিক্ষণ দেওয়া।
  5. ফলাফল মূল্যায়ন:
    • Accuracy এবং Confusion Matrix ব্যবহার করে মডেলটি কতটা ভালো কাজ করেছে তা মূল্যায়ন করেছি।
    • কনফিউশন ম্যাট্রিক্স দিয়ে টার্গেট ক্লাসের সঠিক এবং ভুল শ্রেণীবিভাগের পরিসংখ্যান দেখা যায়।

আউটপুট:

  1. Accuracy: মডেলটি কতটা সঠিকভাবে পূর্বানুমান করেছে তার শতাংশ।
  2. Confusion Matrix: এই ম্যাট্রিক্সে মডেলটি কীভাবে বিভিন্ন ক্লাস সঠিকভাবে বা ভুলভাবে শ্রেণীভুক্ত করেছে তা দেখা যাবে।

এটি একটি বেসিক Logistic Regression মডেল তৈরি করার প্রক্রিয়া। আপনি এটি আরও উন্নত করতে পারেবেন বিভিন্ন হাইপারপ্যারামিটার টিউনিং এবং আরও ডেটা ব্যবহার করে।

সারাংশ

এই প্রক্রিয়াতে, আপনি Scikit-learn ব্যবহার করে একটি Logistic Regression মডেল তৈরি, প্রশিক্ষণ এবং মূল্যায়ন করতে শিখলেন। এটি আপনাকে দুটি শ্রেণীর মধ্যে সম্পর্ক বুঝতে এবং ভবিষ্যদ্বাণী করতে সহায়তা করবে।

Content added By
Promotion

Are you sure to start over?

Loading...