Processing math: 100%

Linear Regression এবং Logistic Regression

Machine Learning - পাইথন ডেটা সায়েন্স (Python Data Science)
133
133

Linear Regression এবং Logistic Regression মেশিন লার্নিং-এর দুটি গুরুত্বপূর্ণ অ্যালগরিদম, তবে তাদের কাজ করার পদ্ধতি এবং উদ্দেশ্য একে অপর থেকে আলাদা।

১. Linear Regression (রৈখিক প্রতিক্রিয়া)

Linear Regression একটি পরিসংখ্যানগত পদ্ধতি যা দুইটি বা তার বেশি ভেরিয়েবলের মধ্যে সম্পর্ক নির্ধারণ করে। এটি ডেটা পয়েন্টগুলির মধ্যে সরল রেখার (লিনিয়ার) সম্পর্ক মডেল করে, যা একটি নির্দিষ্ট নির্ভরশীল ভেরিয়েবলের (Y) মান পূর্বাভাস করতে সাহায্য করে, যখন অন্য ভেরিয়েবল (X) গুলি স্বাধীন ভেরিয়েবল হিসেবে কাজ করে।

ব্যবহার:

Linear regression মূলত ধ্রুবক (continuous) ভেরিয়েবলের জন্য ব্যবহৃত হয়, অর্থাৎ যখন আমাদের পূর্বাভাস করতে হয় একটি সংখ্যা (যেমন, ঘর ভাড়া, স্টক দাম ইত্যাদি)।

ফর্মুলা:

রৈখিক প্রতিক্রিয়ার সাধারণ ফর্ম:

Y=β0+β1X+ϵ

এখানে,

  • Y হল নির্ভরশীল ভেরিয়েবল,
  • X হল স্বাধীন ভেরিয়েবল,
  • β0 হল ইন্টারসেপ্ট বা Y-এর মান যখন X শূন্য হয়,
  • β1 হল স্কেলিং ফ্যাক্টর বা X-এর প্রভাব,
  • ϵ হল ত্রুটি বা র্যান্ডম ফ্যাক্টর।

উদাহরণ:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# ডেটা
X = np.array([[1], [2], [3], [4], [5]])  # স্বাধীন ভেরিয়েবল
y = np.array([1, 2, 2.8, 4.2, 5.1])      # নির্ভরশীল ভেরিয়েবল

# মডেল তৈরি
model = LinearRegression()
model.fit(X, y)

# পূর্বাভাস
y_pred = model.predict(X)

# ফলাফল প্লট করা
plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='red')
plt.title('Linear Regression Example')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()

ব্যাখ্যা:

  • এখানে LinearRegression() ক্লাসটি রৈখিক প্রতিক্রিয়া মডেল তৈরি করে।
  • fit() মেথডটি ডেটাতে মডেল ট্রেইন করে।
  • predict() মেথডটি X-এর জন্য Y পূর্বাভাস করে।

২. Logistic Regression (লজিস্টিক প্রতিক্রিয়া)

Logistic Regression একটি পরিসংখ্যানগত পদ্ধতি যা দুটি শ্রেণির মধ্যে (বা ক্যাটেগোরিকাল আউটপুট) সম্পর্ক মডেল করে। এটি বিশেষভাবে বাইনরি ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়, যেখানে আউটপুট দুটি ক্লাসের মধ্যে পড়ে (যেমন, হ্যাঁ/না, সত্য/মিথ্যা, ১/০)।

ব্যবহার:

Logistic regression সাধারণত ক্যাটেগোরিক্যাল (categorical) ডেটার জন্য ব্যবহৃত হয়, যেখানে আউটপুট দুটি শ্রেণি থাকে, যেমন গ্রাহক এক্সক্লুসিভ হতে পারে বা না হতে পারে।

ফর্মুলা:

লজিস্টিক প্রতিক্রিয়া মডেল সাধারণত সিগময়েড ফাংশন ব্যবহার করে:

p=11+e(β0+β1X)

এখানে:

  • p হল কোনও শ্রেণিতে ডেটার সম্ভাবনা,
  • e হল ন্যাচারাল লগারিদমের ভিত্তি,
  • β0 এবং β1 হল মডেলের প্যারামিটার,
  • X হল ইনপুট বা স্বাধীন ভেরিয়েবল।

উদাহরণ:

from sklearn.linear_model import LogisticRegression
import numpy as np
import matplotlib.pyplot as plt

# ডেটা (ধরা যাক, একটি পরীক্ষায় পাস বা ফেল করা)
X = np.array([[1], [2], [3], [4], [5]])  # অধ্যয়নের ঘণ্টা
y = np.array([0, 0, 0, 1, 1])           # পাস (1) বা ফেল (0)

# মডেল তৈরি
model = LogisticRegression()
model.fit(X, y)

# পূর্বাভাস
y_pred = model.predict(X)

# ফলাফল প্লট করা
plt.scatter(X, y, color='blue')
plt.plot(X, y_pred, color='red')
plt.title('Logistic Regression Example')
plt.xlabel('Study Hours')
plt.ylabel('Pass or Fail')
plt.show()

ব্যাখ্যা:

  • LogisticRegression() ক্লাসটি একটি লজিস্টিক রিগ্রেশন মডেল তৈরি করে।
  • fit() মেথডটি ডেটাতে মডেল ট্রেইন করে।
  • predict() মেথডটি X-এর জন্য শ্রেণী পূর্বাভাস করে (এখানে, ফেল বা পাস)।

মূল পার্থক্য:

বৈশিষ্ট্যLinear RegressionLogistic Regression
ধরনরিগ্রেশন (Continuous output)ক্লাসিফিকেশন (Categorical output)
আউটপুটএকাধিক ধারাবাহিক মানদুটি শ্রেণি (0 বা 1, True বা False)
ফর্মুলাY=β0+β1X+ϵসিগময়েড ফাংশন: p=11+e(β0+β1X)
ব্যবহারসংখ্যা পূর্বাভাস (যেমন, মূল্য, পরিমাণ)শ্রেণী নির্ধারণ (যেমন, পাস/ফেল, রোগী/সুস্থ)
উদাহরণবাড়ির দাম পূর্বাভাস, স্টক দাম পূর্বাভাসস্প্যাম ইমেইল শনাক্তকরণ, রোগের পূর্বাভাস

সারাংশ:

  • Linear Regression ব্যবহার করা হয় যখন নির্ভরশীল ভেরিয়েবল (Y) একটি সংখ্যা (ধ্রুবক) এবং Logistic Regression ব্যবহার করা হয় যখন আউটপুট একটি শ্রেণি (ক্যাটেগোরিকাল)।
  • Linear Regression সরল রেখা মডেল তৈরি করে এবং Logistic Regression সিগময়েড ফাংশন ব্যবহার করে শ্রেণী পূর্বাভাস করে।
Content added By

Linear Regression এর ধারণা এবং প্রয়োগ

89
89

Linear Regression একটি পরিসংখ্যানগত পদ্ধতি যা একটি চলকের (dependent variable) সাথে এক বা একাধিক স্বাধীন চলকের (independent variables) সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। এটি একটি সরল রেখার মাধ্যমে ডেটার মধ্যে সম্পর্কের মডেল তৈরি করে, যা ভবিষ্যদ্বাণী (prediction) এবং বিশ্লেষণের জন্য ব্যবহৃত হয়।

Linear Regression-এ, একটি চলক (Y) কে অন্য একটি বা একাধিক চলক (X) এর উপর নির্ভরশীল হিসেবে ধরা হয়। এর মাধ্যমে আমরা একটি straight line (রেখা) বের করার চেষ্টা করি, যেটি ডেটার সাথে সবচেয়ে ভালোভাবে মেলে।

Linear Regression এর মৌলিক ধারণা:

Linear Regression-এ, সাধারণত Y = β₀ + β₁X + ε ফর্মুলা ব্যবহৃত হয়, যেখানে:

  • Y: নির্ভরশীল চলক বা output (dependent variable)
  • X: স্বাধীন চলক বা input (independent variable)
  • β₀: intercept, যা রেখার Y অক্ষের সাথে কাটানোর পয়েন্ট
  • β₁: slope, যা X এর প্রতি Y এর পরিবর্তনের হার বা সম্পর্ক নির্দেশ করে
  • ε: error term, যা অজ্ঞাত বা অনির্ধারিত ভ্যারিয়েবলের কারণে আগত ত্রুটি বা বিচ্যুতি নির্দেশ করে

Linear Regression এর প্রধান লক্ষ্য:

Linear Regression এর প্রধান লক্ষ্য হলো β₀ এবং β₁ এর মান বের করা, যা রেখার জন্য সর্বোত্তম ফিট তৈরি করবে। এটি Least Squares Method ব্যবহার করে করা হয়, যা ডেটার প্রতি সীমাবদ্ধতার (residuals) মোট বর্গফল (sum of squares) কমাতে সহায়ক।

Simple Linear Regression এবং Multiple Linear Regression:

  1. Simple Linear Regression:
    • এটি একক স্বাধীন চলক (X) এবং নির্ভরশীল চলক (Y) এর মধ্যে সম্পর্ক বিশ্লেষণ করে।
    • উদাহরণ: একটি ছাত্রের শিক্ষাগত ফলাফল নির্ধারণ করতে তার ক্লাসে কাটানো ঘণ্টার সাথে সম্পর্ক।
  2. Multiple Linear Regression:
    • এটি একাধিক স্বাধীন চলক (X₁, X₂, ..., Xn) ব্যবহার করে Y এর পূর্বাভাস দেয়।
    • উদাহরণ: একটি ছাত্রের পরীক্ষার ফলাফল নির্ধারণ করতে তার ক্লাসে কাটানো ঘণ্টা, পরীক্ষার প্রস্তুতির সময়, এবং অন্যান্য ফ্যাক্টর।

Linear Regression এর প্রয়োগ:

Linear Regression একটি শক্তিশালী মডেল এবং অনেক ক্ষেত্রে ব্যবহৃত হয়:

  1. ব্যবসায়িক পূর্বাভাস (Business Forecasting):

    • Linear Regression বিভিন্ন ব্যবসায়িক প্রক্রিয়া বিশ্লেষণ করতে এবং ভবিষ্যত পূর্বাভাস করতে ব্যবহৃত হয়, যেমন বিক্রয় পূর্বাভাস, বাজারের চাহিদা বিশ্লেষণ, ইত্যাদি।

    উদাহরণ:

    • ব্যবসায়িক বিক্রয় এবং বিজ্ঞাপন খরচের মধ্যে সম্পর্কের বিশ্লেষণ করা, যেখানে বিজ্ঞাপন খরচকে স্বাধীন চলক এবং বিক্রয়কে নির্ভরশীল চলক হিসেবে নেওয়া হয়।
  2. অর্থনৈতিক বিশ্লেষণ (Economic Analysis):
    • অর্থনৈতিক পরিস্থিতি বিশ্লেষণ করতে Linear Regression ব্যবহার করা হয়, যেমন দেশের GDP এবং বিভিন্ন অর্থনৈতিক সূচকের (যেমন ব্যাঙ্ক সুদের হার) মধ্যে সম্পর্ক বিশ্লেষণ করা।
  3. স্বাস্থ্যসেবা (Healthcare):
    • Linear Regression স্বাস্থ্যসেবায় রোগীর ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, বয়স, ওজন এবং শারীরিক সক্রিয়তার উপর ভিত্তি করে হৃদরোগের ঝুঁকি পূর্বাভাস দেওয়া।
  4. মেশিন লার্নিং (Machine Learning):
    • Linear Regression মেশিন লার্নিং-এর একটি মৌলিক অ্যালগরিদম, যা ভবিষ্যতের মান (prediction) বের করার জন্য ব্যবহৃত হয়। এটি বিশেষ করে যখন ডেটাতে কোন সরল সম্পর্ক থাকে তখন কার্যকর।
  5. বিশ্লেষণমূলক গবেষণা (Analytical Research):
    • গবেষকরা বিভিন্ন ভেরিয়েবল (যেমন: ছাত্রদের পরীক্ষার ফলাফল এবং তাদের অধ্যয়ন সময়ের সম্পর্ক) বিশ্লেষণ করতে Linear Regression ব্যবহার করেন।

Linear Regression উদাহরণ (Python)

এখানে একটি Simple Linear Regression উদাহরণ দেখানো হচ্ছে, যেখানে আমরা একটি ছাত্রের পরীক্ষার ফলাফল পূর্বাভাস করতে তার অধ্যয়ন সময়ের উপর ভিত্তি করে কাজ করছি:

Step 1: প্রয়োজনীয় লাইব্রেরি ইনস্টল এবং ডেটা প্রস্তুত করা

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# উদাহরণ ডেটা: শিক্ষার্থীদের অধ্যয়ন সময় এবং ফলাফল
study_hours = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).reshape(-1, 1)  # X (independent variable)
scores = np.array([35, 42, 48, 56, 60, 65, 70, 75, 80, 85])  # Y (dependent variable)

Step 2: মডেল তৈরি এবং প্রশিক্ষণ (Training the Model)

# মডেল তৈরি
model = LinearRegression()

# মডেল প্রশিক্ষণ
model.fit(study_hours, scores)

Step 3: পূর্বাভাস (Prediction)

# নতুন ডেটা পয়েন্টের জন্য পূর্বাভাস
new_study_hours = np.array([11]).reshape(-1, 1)  # 11 ঘন্টা অধ্যয়ন
predicted_score = model.predict(new_study_hours)

print(f"যদি 11 ঘণ্টা অধ্যয়ন করা হয়, তবে পরীক্ষায় প্রাপ্ত স্কোর হবে: {predicted_score[0]}")

Step 4: প্লট তৈরি (Plotting)

# রৈখিক সম্পর্ক দেখানোর জন্য প্লট
plt.scatter(study_hours, scores, color='blue')  # ডেটা পয়েন্ট
plt.plot(study_hours, model.predict(study_hours), color='red')  # রিগ্রেশন লাইনের প্লট
plt.title('Study Hours vs Exam Score')
plt.xlabel('Study Hours')
plt.ylabel('Exam Score')
plt.show()

সারাংশ:

Linear Regression একটি সহজ এবং কার্যকরী পরিসংখ্যানগত পদ্ধতি, যা ডেটার মধ্যে সম্পর্ক বোঝার জন্য ব্যবহৃত হয়। এটি ভবিষ্যদ্বাণী করার জন্য একটি সরল রেখার সাহায্য নিয়ে কাজ করে, যেখানে একটি বা একাধিক স্বাধীন চলক (X) এর উপর নির্ভর করে একটি নির্ভরশীল চলক (Y) এর মান নির্ধারণ করা হয়। Linear Regression-এর বিভিন্ন প্রয়োগ ক্ষেত্র রয়েছে, যেমন ব্যবসা, স্বাস্থ্যসেবা, অর্থনীতি এবং মেশিন লার্নিং।

Content added By

Multiple এবং Polynomial Linear Regression

96
96

Multiple Linear Regression এবং Polynomial Linear Regression দুটি জনপ্রিয় পরিসংখ্যানিক মডেল যা ডেটা সায়েন্স এবং মেশিন লার্নিংয়ে ব্যবহৃত হয়। এগুলি মূলত Regression Analysis-এর অংশ এবং ডেটা থেকে ভবিষ্যদ্বাণী করার জন্য ব্যবহৃত হয়।


১. Multiple Linear Regression

Multiple Linear Regression (MLR) একটি রিগ্রেশন মডেল যা একাধিক বৈশিষ্ট্য (independent variables) এর উপর নির্ভরশীল (dependent variable) এর সম্পর্ক মডেল করে। এটি একাধিক বৈশিষ্ট্য ব্যবহার করে একটি একক রিগ্রেশন লাইনের মাধ্যমে ভবিষ্যদ্বাণী করে।

মডেল:

Multiple Linear Regression মডেলটি সাধারণত নিচের সূত্র অনুসরণ করে:

Y=β0+β1X1+β2X2++βnXn+ϵ

এখানে:

  • Y হলো নির্ভরশীল ভেরিয়েবল।
  • X1,X2,,Xn হলো স্বাধীন ভেরিয়েবল (features)।
  • β0 হলো intercept (constant term)।
  • β1,β2,,βn হলো coefficients (weights)।
  • ϵ হলো error term (residuals)।

উদাহরণ: Multiple Linear Regression

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import seaborn as sns

# উদাহরণ ডেটাসেট
data = {'YearsExperience': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
        'Salary': [40000, 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000]}

df = pd.DataFrame(data)

# স্বাধীন এবং নির্ভরশীল ভেরিয়েবল নির্ধারণ
X = df[['YearsExperience']]  # স্বাধীন ভেরিয়েবল
y = df['Salary']  # নির্ভরশীল ভেরিয়েবল

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

# মডেল তৈরি এবং প্রশিক্ষণ
model = LinearRegression()
model.fit(X_train, y_train)

# মডেল মূল্যায়ন
predictions = model.predict(X_test)

# ফলাফল দেখানো
plt.scatter(X_test, y_test, color='blue')
plt.plot(X_test, predictions, color='red')
plt.title('Multiple Linear Regression - Salary Prediction')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

# মডেলের কোঅফিসিয়েন্ট ও ইনটারসেপ্ট
print(f'Intercept: {model.intercept_}')
print(f'Coefficient: {model.coef_}')

ব্যাখ্যা:

  • এখানে একটি সিম্পল Multiple Linear Regression মডেল তৈরি করা হয়েছে যেখানে YearsExperience (স্বাধীন ভেরিয়েবল) এর ভিত্তিতে Salary (নির্ভরশীল ভেরিয়েবল) পূর্বাভাস করা হয়েছে।
  • LinearRegression() ফাংশন ব্যবহার করে মডেল ট্রেনিং করা হয়েছে এবং টেস্ট ডেটাতে ভবিষ্যদ্বাণী করা হয়েছে।

২. Polynomial Linear Regression

Polynomial Linear Regression হলো একটি রিগ্রেশন মডেল যেখানে এক বা একাধিক বৈশিষ্ট্য (independent variable) কে পাওয়ার ফাংশনে রূপান্তর করা হয় (যেমন X2,X3,)। এটি সাধারণত non-linear সম্পর্কগুলির জন্য ব্যবহৃত হয় যেখানে বৈশিষ্ট্য এবং লক্ষ্য ভেরিয়েবলের মধ্যে সোজা সম্পর্ক নেই।

মডেল:

Polynomial Regression সাধারণত নিম্নলিখিত রূপে হয়:

Y=β0+β1X+β2X2++βnXn+ϵ

এখানে:

  • X2,X3,,Xn হলো পলিনোমিয়াল বৈশিষ্ট্য।

উদাহরণ: Polynomial Linear Regression

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt

# উদাহরণ ডেটাসেট
data = {'YearsExperience': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
        'Salary': [40000, 45000, 50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000]}

df = pd.DataFrame(data)

# স্বাধীন এবং নির্ভরশীল ভেরিয়েবল নির্ধারণ
X = df[['YearsExperience']]  # স্বাধীন ভেরিয়েবল
y = df['Salary']  # নির্ভরশীল ভেরিয়েবল

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

# Polynomial Features তৈরি করা (2nd degree polynomial)
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X_train)

# মডেল তৈরি এবং প্রশিক্ষণ
model = LinearRegression()
model.fit(X_poly, y_train)

# Polynomial regression এর জন্য prediction
X_poly_test = poly.transform(X_test)
predictions_poly = model.predict(X_poly_test)

# ফলাফল দেখানো
plt.scatter(X_test, y_test, color='blue')
plt.plot(X_test, predictions_poly, color='red')
plt.title('Polynomial Linear Regression - Salary Prediction')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

# মডেলের কোঅফিসিয়েন্ট ও ইনটারসেপ্ট
print(f'Intercept: {model.intercept_}')
print(f'Coefficient: {model.coef_}')

ব্যাখ্যা:

  • এখানে PolynomialFeatures() ব্যবহার করে 2nd-degree পলিনোমিয়াল তৈরি করা হয়েছে, অর্থাৎ X2 এর উপর ভিত্তি করে পলিনোমিয়াল মডেল তৈরি করা হয়েছে।
  • LinearRegression() ফাংশন ব্যবহার করে পলিনোমিয়াল মডেল ট্রেনিং এবং টেস্ট ডেটাতে পূর্বাভাস করা হয়েছে।

সারাংশ

  • Multiple Linear Regression একটি সাধারণ রিগ্রেশন মডেল যেখানে একাধিক স্বাধীন ভেরিয়েবল ব্যবহার করা হয় নির্ভরশীল ভেরিয়েবলের পূর্বাভাস দিতে।
  • Polynomial Linear Regression হল একটি উন্নত রিগ্রেশন মডেল, যেখানে এক বা একাধিক বৈশিষ্ট্যকে পলিনোমিয়াল ফাংশনে রূপান্তর করা হয়, যা non-linear সম্পর্কের জন্য উপযুক্ত।

এই মডেলগুলির সাহায্যে আপনি বিভিন্ন ধরনের ডেটা বিশ্লেষণ এবং ভবিষ্যদ্বাণী করতে পারেন।

Content added By

Logistic Regression এর ব্যবহার

94
94

Logistic Regression একটি মেশিন লার্নিং অ্যালগরিদম যা মূলত ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। এটি বাইনারি ক্লাসিফিকেশন (যেমন, হ্যাঁ/না, ০/১) বা মাল্টিক্লাস ক্লাসিফিকেশন (যেমন, একাধিক শ্রেণী নির্বাচন) সমস্যার সমাধান করতে সক্ষম। Logistic Regression ডেটার উপর ভিত্তি করে একটি লজিস্টিক সিগময়েড ফাংশন ব্যবহার করে সম্ভাবনা হিসাব করে, যা পরে একটি ক্লাস বা ক্যাটাগরি চয়ন করতে সহায়ক হয়।

Logistic Regression এর মূল বৈশিষ্ট্য:

  • এটি একটি লিনিয়ার ক্লাসিফায়ার। অর্থাৎ এটি ডেটার শ্রেণী নির্ধারণ করতে লিনিয়ার সম্পর্ক ব্যবহার করে।
  • তবে, এটি সিগময়েড ফাংশন ব্যবহার করে ফলাফলকে ০ থেকে ১ এর মধ্যে সীমাবদ্ধ রাখে, যা ক্লাসিফিকেশন সমস্যায় সহায়ক।

Logistic Regression কীভাবে কাজ করে?

Logistic Regression একটি সিগময়েড (sigmoid) ফাংশন ব্যবহার করে যেটি একটি সোজা রেখার সমীকরণকে আউটপুটের সম্ভাবনা (probability) ফর্ম্যাটে রূপান্তরিত করে। সিগময়েড ফাংশনটি ০ থেকে ১ এর মধ্যে একটি মান প্রদান করে, যা মূলত ক্লাস ১ অথবা ক্লাস ০ হিসেবে চিহ্নিত করা হয়।

Logistic Regression Formula:

Logistic Regression-এ ব্যবহৃত sigmoid function এর গাণিতিক রূপ:

P(y=1X)=11+ez

যেখানে,

  • z: লিনিয়ার কম্বিনেশন (বা স্কোর), যা হল z=b+w1x1+w2x2+...+wnxn
  • e: ন্যাচারাল লগারিদমের ভিত্তি (প্রায় ২.৭১৮)

Sigmoid Function:

সিগময়েড ফাংশন হল একটি লজিস্টিক ফাংশন যা ০ থেকে ১ এর মধ্যে আউটপুট প্রদান করে।

Logistic Regression এর ব্যবহার ক্ষেত্র:


১. বাইনরি ক্লাসিফিকেশন (Binary Classification)

Logistic Regression সবচেয়ে বেশি ব্যবহৃত হয় বাইনরি ক্লাসিফিকেশন সমস্যা সমাধানে, যেখানে দুইটি ক্যাটাগরি থাকে। যেমন, ইমেইল স্প্যাম শনাক্তকরণ, রোগী সুস্থ কিনা বা অন্য রোগে আক্রান্ত কিনা ইত্যাদি।

উদাহরণ:

  • স্প্যাম বা নন-স্প্যাম ইমেইল শনাক্তকরণ: একটি ইমেইল স্প্যাম কিনা তা পূর্বাভাস দিতে ব্যবহার করা যায়।
  • ডিফল্ট হওয়া: ঋণগ্রহীতা দেউলিয়া হবে কিনা সেটা পূর্বাভাস দিতে ব্যবহার করা হয়।

উদাহরণ কোড (Python):

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

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

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

# Logistic Regression মডেল তৈরি করা
model = LogisticRegression(max_iter=10000)
model.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred = model.predict(X_test)

# সঠিকতা (accuracy) নির্ণয় করা
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

২. মাল্টিক্লাস ক্লাসিফিকেশন (Multiclass Classification)

যখন আপনার আউটপুট ক্যাটাগরি দুইটির বেশি থাকে, তখন Logistic Regression-কে মাল্টিক্লাস ক্লাসিফিকেশনের জন্যও ব্যবহার করা যেতে পারে। এখানে, one-vs-rest বা one-vs-one পদ্ধতি ব্যবহার করা হয়।

উদাহরণ:

  • ডিজিট চিহ্নিতকরণ: Handwritten digits recognition (যেমন MNIST dataset)।
  • বিভিন্ন প্রজাতির ফুল চিহ্নিতকরণ: Iris dataset-এ বিভিন্ন ধরনের ফুলের শ্রেণী চিহ্নিতকরণ।

উদাহরণ কোড (Python):

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

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

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

# Logistic Regression মডেল তৈরি করা
model = LogisticRegression(max_iter=10000)
model.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred = model.predict(X_test)

# সঠিকতা (accuracy) নির্ণয় করা
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

৩. সিকুয়েন্সের আউটপুট (Sequence Output)

Logistic Regression আউটপুট হিসেবে প্রবাবিলিটি প্রদান করে, যা তখন বিভিন্ন ক্লাসে রূপান্তরিত হয়। এই প্রবাবিলিটি ব্যবহার করে decision threshold নির্ধারণ করা যেতে পারে, যেমন, 0.5 বা অন্য কোনো মানের উপর ভিত্তি করে।


৪. বায়াস এবং বৈশিষ্ট্য বিশ্লেষণ (Bias and Feature Analysis)

Logistic Regression মডেল সাধারণত আপনার বৈশিষ্ট্যগুলো এবং তাদের সম্পর্কের সাথে সিদ্ধান্ত নেয়। এটি coefficients বা weights প্রদান করে, যা প্রতিটি বৈশিষ্ট্যের গুরুত্ব নির্দেশ করে। আপনি মডেলের এই ওজন বিশ্লেষণ করতে পারেন।


৫. চিকিৎসা এবং স্বাস্থ্যসেবা (Healthcare)

Logistic Regression স্বাস্থ্যসেবায় রোগী ডায়াগনোসিস, ক্যান্সার শনাক্তকরণ, হার্ট ডিজিজের পূর্বাভাস, ইত্যাদির জন্য ব্যবহার করা হয়। এটি রোগীকে ২টি ক্যাটাগরিতে বিভক্ত করতে সাহায্য করতে পারে: স্বাস্থ্যবান এবং অসুস্থ।


৬. অর্থনীতি এবং ব্যবসা (Finance and Business)

Logistic Regression ক্রেডিট স্কোরিং, বিলিং চিহ্নিতকরণ, ঝুঁকি বিশ্লেষণ ইত্যাদিতে ব্যবহৃত হয়। এটি একটি গুরুত্বপূর্ণ অ্যালগরিদম যেটি বিভিন্ন ফিনান্সিয়াল ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়।


৭. মার্কেটিং এবং বিজ্ঞাপন (Marketing and Advertising)

Logistic Regression গ্রাহক চাহিদা পূর্বাভাস, চুয়ার্ন প্রেডিকশন, গ্রাহক শ্রেণীবিভাগ এবং বিজ্ঞাপন কনভার্সন রেট বিশ্লেষণ করার জন্য ব্যবহার করা হয়।


সারাংশ

Logistic Regression একটি শক্তিশালী মেশিন লার্নিং অ্যালগরিদম যা ক্লাসিফিকেশন সমস্যার সমাধানে ব্যবহৃত হয়। এটি বাইনারি এবং মাল্টিক্লাস ক্লাসিফিকেশন উভয় ক্ষেত্রেই কার্যকরী। বিভিন্ন ক্ষেত্রে যেমন স্বাস্থ্যসেবা, অর্থনীতি, ব্যবসা, বিজ্ঞাপন ইত্যাদিতে এটি ব্যাপকভাবে ব্যবহৃত হয়। Logistic Regression ব্যবহারে প্রবাবিলিটি নির্ধারণ করা সম্ভব, যা গ্রাহক চিহ্নিতকরণ এবং ডেটা বিশ্লেষণে সহায়ক হয়।

Content added By

Model Evaluation (R-squared, Confusion Matrix, ROC-AUC)

105
105

Model Evaluation হল একটি প্রক্রিয়া যার মাধ্যমে আপনি আপনার মডেলের কার্যকারিতা বা দক্ষতা যাচাই করেন। এটি মডেলের প্রকৃত পারফরম্যান্স পরিমাপের জন্য গুরুত্বপূর্ণ। মডেল ইভালুয়েশন ব্যবহৃত বিভিন্ন মেট্রিক্সের মধ্যে R-squared, Confusion Matrix, এবং ROC-AUC অন্যতম। এই মেট্রিকগুলি আপনাকে মডেলের সঠিকতা, ত্রুটি এবং অন্যান্য গুরুত্বপূর্ণ দিক পরিমাপ করতে সহায়ক।

নিচে আমরা এই তিনটি জনপ্রিয় ইভালুয়েশন মেট্রিক্স সম্পর্কে বিস্তারিত আলোচনা করব:


১. R-squared (R²)

R-squared বা Coefficient of Determination হল একটি পরিমাপ যা মডেলের ফিটনেস বা সামঞ্জস্য নির্ধারণ করে। এটি বোঝায় কতটুকু ইনপুট ভেরিয়েবল (features) আউটপুট ভেরিয়েবলের পরিবর্তন ব্যাখ্যা করতে সক্ষম। সাধারণত এটি Regression Models এর জন্য ব্যবহৃত হয়।

R-squared এর মান:

  • R² মান ১ হলে, মডেলটি ডেটার সমস্ত পরিবর্তন ব্যাখ্যা করতে সক্ষম।
  • R² মান ০ হলে, মডেলটি ডেটার পরিবর্তন ব্যাখ্যা করতে পারেনি।

গণনা:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score

# ডেটা প্রস্তুত
X = [[1], [2], [3], [4], [5]]
y = [1, 2, 3, 4, 5]

# ট্রেন-টেস্ট ডেটাতে বিভক্ত
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# মডেল তৈরি
model = LinearRegression()
model.fit(X_train, y_train)

# পূর্বাভাস করা
y_pred = model.predict(X_test)

# R-squared মান
r2 = r2_score(y_test, y_pred)
print(f'R-squared: {r2}')

ব্যাখ্যা:

  • r2_score() ফাংশনটি মডেলের R² মান হিসাব করে, যা আউটপুট পরিবর্তনের ব্যাখ্যা করার ক্ষমতা পরিমাপ করে।

২. Confusion Matrix

Confusion Matrix হল একটি টেবিল যা কেবলমাত্র শ্রেণীবিভাজন মডেলের জন্য ব্যবহার হয় (যেমন Logistic Regression, SVM, Naive Bayes)। এটি প্রকৃত এবং পূর্বাভাসিত শ্রেণির মধ্যে সম্পর্ক দেখায় এবং মডেলের সঠিকতা, ভুল শ্রেণী, এবং অন্যান্য মেট্রিক পরিমাপ করতে সহায়ক।

Confusion Matrix এর উপাদান:

  1. True Positive (TP): মডেলটি সঠিকভাবে পজিটিভ শ্রেণী পূর্বাভাস দিয়েছে।
  2. True Negative (TN): মডেলটি সঠিকভাবে নেগেটিভ শ্রেণী পূর্বাভাস দিয়েছে।
  3. False Positive (FP): মডেলটি ভুলভাবে পজিটিভ শ্রেণী পূর্বাভাস দিয়েছে।
  4. False Negative (FN): মডেলটি ভুলভাবে নেগেটিভ শ্রেণী পূর্বাভাস দিয়েছে।

গণনা:

from sklearn.metrics import confusion_matrix

# প্রকৃত এবং পূর্বাভাসিত মান
y_true = [0, 1, 1, 0, 1, 0, 1]
y_pred = [0, 1, 1, 0, 0, 0, 1]

# কনফিউশন ম্যাট্রিক্স তৈরি
cm = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:\n", cm)

ব্যাখ্যা:

  • confusion_matrix() ফাংশনটি প্রকৃত এবং পূর্বাভাসিত মানের মধ্যে সঠিক এবং ভুল শ্রেণীবিভাগ প্রদর্শন করে।
  • কনফিউশন ম্যাট্রিক্সের মাধ্যমে আপনি Accuracy, Precision, Recall, F1-score ইত্যাদি মেট্রিক পরিমাপ করতে পারেন।

৩. ROC-AUC (Receiver Operating Characteristic - Area Under Curve)

ROC Curve হল একটি গ্রাফ যা True Positive Rate (TPR) এবং False Positive Rate (FPR) এর মধ্যে সম্পর্ক দেখায়। AUC (Area Under the Curve) হল ROC কাতারের নিচে থাকা এলাকা, যা মডেলের পারফরম্যান্সের সামগ্রিক পরিমাপ।

AUC ব্যাখ্যা:

  • AUC = 0.5: মডেলটি র্যান্ডম অনুমান করছে (এমনকি মডেল কোন ভাল পারফরম্যান্স দিচ্ছে না)।
  • AUC = 1.0: মডেলটি পুরোপুরি সঠিকভাবে শ্রেণী নির্ধারণ করছে।

গণনা:

from sklearn.metrics import roc_auc_score, roc_curve
import matplotlib.pyplot as plt

# প্রকৃত এবং পূর্বাভাসিত স্কোর
y_true = [0, 1, 1, 0, 1, 0, 1]
y_scores = [0.1, 0.4, 0.35, 0.8, 0.7, 0.2, 0.6]

# ROC AUC হিসাব করা
roc_auc = roc_auc_score(y_true, y_scores)
print(f'AUC: {roc_auc}')

# ROC Curve তৈরি
fpr, tpr, thresholds = roc_curve(y_true, y_scores)
plt.figure()
plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='gray', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc='lower right')
plt.show()

ব্যাখ্যা:

  • roc_auc_score(): এটি প্রকৃত মান এবং পূর্বাভাসিত স্কোরের উপর ভিত্তি করে AUC মান পরিমাপ করে।
  • roc_curve(): এটি False Positive Rate (FPR) এবং True Positive Rate (TPR) এর জন্য বিভিন্ন থ্রেশহোল্ড ব্যবহার করে ROC কাতার তৈরি করে।

সারাংশ

  • R-squared (R²) হল একটি মেট্রিক যা রিগ্রেশন মডেলের ব্যাখ্যা ক্ষমতা পরিমাপ করে, যা ইনপুট পরিবর্তন আউটপুটে কতটা প্রভাব ফেলেছে।
  • Confusion Matrix শ্রেণীবিভাজন মডেলের পারফরম্যান্স পরিমাপের জন্য ব্যবহার করা হয়, যা সঠিক এবং ভুল শ্রেণী বিভাগ দেখায়।
  • ROC-AUC একটি শক্তিশালী পরিমাপ যা মডেলের পারফরম্যান্স দেখানোর জন্য True Positive Rate এবং False Positive Rate এর সম্পর্ক তৈরি করে, এবং AUC এর মাধ্যমে আপনি মডেলের সামগ্রিক পারফরম্যান্স বুঝতে পারেন।

এই মেট্রিকগুলি ব্যবহারের মাধ্যমে আপনি আপনার মডেলের কার্যকারিতা আরও ভালোভাবে মূল্যায়ন করতে পারবেন।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion