লিনিয়ার রিগ্রেশন (Linear Regression)

Machine Learning - পাইথন কৃত্রিম বুদ্ধিমত্তা (Artificial Intelligence with Python) - Supervised Learning মডেল
410

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

লিনিয়ার রিগ্রেশন মূলত রিগ্রেশন অ্যালগরিদম হিসেবে পরিচিত যা সোজা একটি রেখা (straight line) ব্যবহার করে ডেটার মধ্যে সম্পর্ক তৈরি করে এবং ভবিষ্যৎ মান পূর্বানুমান করার জন্য একটি সূত্র তৈরি করে।

লিনিয়ার রিগ্রেশন সূত্র:

লিনিয়ার রিগ্রেশনের সাধারণ ফর্ম হলো:

Y=mX+bY = mX + b

এখানে,

  • YY হল নির্ভরশীল পরিবর্তনশীল (dependent variable)।
  • XX হল স্বাধীন পরিবর্তনশীল (independent variable)।
  • mm হল স্লোপ (slope), যা X-এর প্রতি Y-র পরিবর্তনকে প্রতিনিধিত্ব করে।
  • bb হল ইন্টারসেপ্ট (intercept), যা রেখা Y অক্ষের সাথে কোথায় ছেদ করে তা নির্দেশ করে।

লিনিয়ার রিগ্রেশনের ধাপগুলি:

  1. ডেটা সংগ্রহ:
    • প্রথমে ডেটা সংগ্রহ করতে হয়, যা X (স্বাধীন ভেরিয়েবল) এবং Y (নির্ভরশীল ভেরিয়েবল) এর মধ্যে সম্পর্ক বোঝায়।
  2. ডেটা প্রক্রিয়াকরণ:
    • মিসিং ডেটা পরিষ্কার করা, ডেটা ফিল্টার এবং রূপান্তর করা।
  3. মডেল তৈরি:
    • মডেল তৈরি করতে স্কikit-learn এর LinearRegression ক্লাস ব্যবহার করা হয়।
  4. মডেল প্রশিক্ষণ:
    • X এবং Y এর ওপর ভিত্তি করে মডেলটি প্রশিক্ষণ দেওয়া হয়।
  5. পূর্বাভাস করা:
    • প্রশিক্ষিত মডেল ব্যবহার করে নতুন ডেটার ওপর পূর্বাভাস করা হয়।
  6. মডেল মূল্যায়ন:
    • মডেলের কার্যকারিতা মূল্যায়ন করতে Mean Squared Error (MSE) বা R-squared ব্যবহার করা হয়।

লিনিয়ার রিগ্রেশন মডেল তৈরি করা:

ধরা যাক, আমরা একটি উদাহরণ নিয়ে কাজ করছি যেখানে গাড়ির দাম (Y) নির্ভর করে গাড়ির বয়স (X)-এর ওপর।

উদাহরণ:

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

# উদাহরণ ডেটা: গাড়ির বয়স (X) এবং দাম (Y)
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)  # গাড়ির বয়স (1, 2, 3, 4, 5 বছর)
Y = np.array([10000, 9000, 8000, 6000, 5000])  # দাম (ডলার)

# ডেটা ভাগ করা (train ও test)
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)

# মডেল ইন্টারসেপ্ট ও স্লোপ
print(f'ইন্টারসেপ্ট (b): {model.intercept_}')
print(f'স্লোপ (m): {model.coef_}')

# গ্রাফে মডেলটি প্রদর্শন
plt.scatter(X, Y, color='blue')  # প্রকৃত ডেটা
plt.plot(X, model.predict(X), color='red')  # লিনিয়ার রিগ্রেশন রেখা
plt.xlabel('গাড়ির বয়স (বছর)')
plt.ylabel('গাড়ির দাম (ডলার)')
plt.title('লিনিয়ার রিগ্রেশন: গাড়ির দাম পূর্বাভাস')
plt.show()

# মডেল মূল্যায়ন (R-squared)
print(f'R-squared: {model.score(X_test, Y_test)}')

বিশ্লেষণ:

  1. স্লোপ (m): স্লোপ নির্দেশ করে, গাড়ির বয়স এক বছর বাড়লে গাড়ির দাম কতটা পরিবর্তিত হয়।
  2. ইন্টারসেপ্ট (b): ইন্টারসেপ্ট হল Y অক্ষের সাথে রেখার ছেদ।
  3. R-squared: এটি মডেলের কার্যকারিতা পরিমাপ করার জন্য ব্যবহৃত হয়। R-squared মান যত বেশি, মডেলটি তত ভাল পূর্বাভাস দেয়।

লিনিয়ার রিগ্রেশন মডেলের মূল্যায়ন

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

  1. Mean Squared Error (MSE):
    • MSE হল পূর্বাভাস এবং প্রকৃত মানের মধ্যে গড় বিচ্যুতি। কম MSE মানে ভাল মডেল।
  2. R-squared:
    • R-squared হল মডেলটির পারফরম্যান্স পরিমাপের একটি মাধ্যম। এটি বলে দেয় মডেলটি কতটা ডেটাকে ব্যাখ্যা করতে সক্ষম।

উদাহরণ:

from sklearn.metrics import mean_squared_error

# Mean Squared Error (MSE)
mse = mean_squared_error(Y_test, Y_pred)
print(f'Mean Squared Error (MSE): {mse}')

সারাংশ

লিনিয়ার রিগ্রেশন একটি শক্তিশালী এবং সহজ পদ্ধতি যা দুইটি বা তার বেশি ভেরিয়েবলের মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। এটি মূলত ডেটার একটি সরল রেখা তৈরি করে এবং সেই রেখার মাধ্যমে ভবিষ্যতের মান পূর্বাভাস করে। মেশিন লার্নিং এবং পরিসংখ্যান গবেষণায় এটি অত্যন্ত জনপ্রিয় এবং গুরুত্বপূর্ণ।

Content added By

লিনিয়ার রিগ্রেশন কি?

636

লিনিয়ার রিগ্রেশন একটি পরিসংখ্যানগত পদ্ধতি যা দুটি ভেরিয়েবলের মধ্যে সম্পর্কের বিশ্লেষণ করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট সামঞ্জস্যপূর্ণ সম্পর্ক (linear relationship) খুঁজে বের করতে সাহায্য করে, যেখানে একটি ভেরিয়েবল অন্য একটি ভেরিয়েবলের ওপর নির্ভরশীল থাকে। সাধারণভাবে, এটি একটি সরল রেখা আঁকার মাধ্যমে দুটি ভেরিয়েবলের মধ্যে সম্পর্ক প্রকাশ করে।

লিনিয়ার রিগ্রেশন সাধারণত ডিপেনডেন্ট ভেরিয়েবল (Dependent Variable বা Y) এবং ইন্ডিপেনডেন্ট ভেরিয়েবল (Independent Variable বা X) এর মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি কোম্পানির বিজ্ঞাপন ব্যয় (X) এবং বিক্রির পরিমাণ (Y) এর মধ্যে সম্পর্ক বিশ্লেষণ।


লিনিয়ার রিগ্রেশন সূত্র

লিনিয়ার রিগ্রেশন সাধারণত সরাসরি সম্পর্ক (linear relationship) প্রকাশ করতে একটি সরল রেখার (straight line) ব্যবহার করে, যার সূত্রটি এই রকম:

Y=a+bXY = a + bX

  • Y: নির্ভরশীল ভেরিয়েবল (Dependent Variable)
  • X: স্বাধীন ভেরিয়েবল (Independent Variable)
  • a: রেখার শুরুর পয়েন্ট (Intercept)
  • b: স্লোপ বা ঢাল (Slope), যা X-এর প্রতি Y এর প্রতিক্রিয়া বা সম্পর্কের পরিমাপ।

লিনিয়ার রিগ্রেশন-এর উদ্দেশ্য

লিনিয়ার রিগ্রেশন মূলত দুটি ভেরিয়েবলের মধ্যে সম্পর্কের সরাসরি সম্পর্ক খুঁজে বের করতে ব্যবহৃত হয়। এটি পরবর্তী সময়ে ভবিষ্যদ্বাণী করতে সহায়ক হয়।

  1. সহজ সম্পর্ক নির্ধারণ: দুটি ভেরিয়েবলের মধ্যে সরল সম্পর্ক খুঁজে বের করার জন্য।
  2. ভবিষ্যদ্বাণী: X-এর মান জানলে Y এর মান কেমন হতে পারে, এটি অনুমান করার জন্য।
  3. ডেটার প্যাটার্ন বুঝতে: ডেটার মধ্যে যে সম্পর্ক কাজ করছে তা বোঝার জন্য।

লিনিয়ার রিগ্রেশন এর কাজের প্রক্রিয়া

লিনিয়ার রিগ্রেশন চলাকালে মডেলটি ডেটার জন্য একটি রেখা আঁকে, যা সর্বনিম্ন বর্গফল পদ্ধতি (Least Squares Method) ব্যবহার করে সরল রেখা আঁকার চেষ্টা করে। এর মানে হল যে, মডেলটি লক্ষ্য করে যে, রেখার কাছাকাছি ডেটা পয়েন্টগুলির সংখ্যা সর্বাধিক হবে এবং এইভাবে রিগ্রেশন মডেলটির অনুমান সঠিক হবে।


লিনিয়ার রিগ্রেশন এর প্রকার

১. একটি ভেরিয়েবলের জন্য লিনিয়ার রিগ্রেশন (Simple Linear Regression):

  • এই পদ্ধতিতে একটি নির্ভরশীল ভেরিয়েবল (Y) এবং একটি স্বাধীন ভেরিয়েবল (X) এর মধ্যে সরল সম্পর্ক বিশ্লেষণ করা হয়।
  • উদাহরণ: বিজ্ঞাপন ব্যয় এবং বিক্রির মধ্যে সম্পর্ক।

ফর্মুলা:

Y=a+bXY = a + bX

২. একাধিক ভেরিয়েবলের জন্য লিনিয়ার রিগ্রেশন (Multiple Linear Regression):

  • এখানে একটি নির্ভরশীল ভেরিয়েবলের (Y) সঙ্গে একাধিক স্বাধীন ভেরিয়েবল (X1, X2, ..., Xn) এর সম্পর্ক বিশ্লেষণ করা হয়।
  • উদাহরণ: বিক্রির উপর বিজ্ঞাপন ব্যয়, মূল্য, এবং প্রচারের সংখ্যা এর প্রভাব।

ফর্মুলা:

Y=a+b1X1+b2X2+...+bnXnY = a + b_1X_1 + b_2X_2 + ... + b_nX_n


লিনিয়ার রিগ্রেশন এর ব্যবহার

  1. ব্যবসায়িক সিদ্ধান্ত গ্রহণ:
    • লিনিয়ার রিগ্রেশন ব্যবসায়িক ক্ষেত্রে ব্যবহৃত হয় ভবিষ্যদ্বাণী এবং সিদ্ধান্ত গ্রহণের জন্য, যেমন বিক্রির পরিমাণ ভবিষ্যদ্বাণী করা।
  2. অর্থনৈতিক বিশ্লেষণ:
    • অর্থনৈতিক পরিসংখ্যান বিশ্লেষণ এবং ভবিষ্যদ্বাণী করার জন্য ব্যবহৃত হয়, যেমন মুদ্রাস্ফীতি এবং জিডিপির মধ্যে সম্পর্ক।
  3. বিজ্ঞান এবং প্রকৌশল:
    • বিজ্ঞান ও প্রকৌশল ক্ষেত্রেও একাধিক ভেরিয়েবলের মধ্যে সম্পর্ক বিশ্লেষণ করতে এবং বিভিন্ন পরিমাপের ভবিষ্যদ্বাণী করতে লিনিয়ার রিগ্রেশন ব্যবহার করা হয়।

লিনিয়ার রিগ্রেশন উদাহরণ

ধরা যাক, আমাদের কাছে একটি ডেটাসেট রয়েছে যেখানে বিজ্ঞাপন ব্যয়ের পরিমাণ (X) এবং বিক্রির পরিমাণ (Y) দেওয়া আছে, এবং আমরা জানি যে তাদের মধ্যে একটি সরল সম্পর্ক রয়েছে। এই ডেটার ওপর লিনিয়ার রিগ্রেশন প্রয়োগ করলে আমরা বিজ্ঞাপন ব্যয়ের ওপর বিক্রির পরিমাণের ভবিষ্যদ্বাণী করতে সক্ষম হবো।

উদাহরণ কোড (Python with Scikit-learn):

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

# ডেটা
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)  # বিজ্ঞাপন ব্যয়
Y = np.array([1, 2, 2.8, 4.1, 5.2])  # বিক্রি

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

# ভবিষ্যদ্বাণী
Y_pred = model.predict(X)

# প্লট
plt.scatter(X, Y, color='blue', label='ডেটা পয়েন্ট')
plt.plot(X, Y_pred, color='red', label='রিগ্রেশন রেখা')
plt.xlabel('বিজ্ঞাপন ব্যয়')
plt.ylabel('বিক্রি')
plt.title('লিনিয়ার রিগ্রেশন')
plt.legend()
plt.show()

এই কোডটি একটি সরল লিনিয়ার রিগ্রেশন মডেল তৈরি করবে এবং বিজ্ঞাপন ব্যয়ের উপর বিক্রির পরিমাণের সম্পর্ক দেখাবে।


সারাংশ

লিনিয়ার রিগ্রেশন একটি সরল পরিসংখ্যান পদ্ধতি যা দুটি ভেরিয়েবলের মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। এটি একটি সরল রেখার মাধ্যমে সম্পর্কের উপর ভিত্তি করে ভবিষ্যদ্বাণী করার জন্য ব্যবহৃত হয়। এটি ব্যবসা, অর্থনীতি, বিজ্ঞান, প্রকৌশল এবং অন্যান্য ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By

Python দিয়ে লিনিয়ার রিগ্রেশন তৈরি

367

লিনিয়ার রিগ্রেশন হল একটি পরিসংখ্যানগত পদ্ধতি যা একটি নির্ভরশীল পরিবর্তনশীল (dependent variable) এবং একটি বা একাধিক স্বাধীন পরিবর্তনশীল (independent variable) এর মধ্যে সম্পর্ক খুঁজে বের করতে ব্যবহৃত হয়। এটি সাধারণত ভবিষ্যদ্বাণী বা প্রবণতা বিশ্লেষণ করার জন্য ব্যবহৃত হয়।

এখানে আমরা একটি সাধারণ লিনিয়ার রিগ্রেশন মডেল তৈরি করবো যা একটি নির্ভরশীল এবং একটি স্বাধীন ভেরিয়েবল নিয়ে কাজ করবে। এর জন্য আমরা Scikit-learn লাইব্রেরি ব্যবহার করব, যা মেশিন লার্নিং মডেল তৈরির জন্য একটি জনপ্রিয় পাইথন লাইব্রেরি।


১. লাইব্রেরি ইনস্টল করা

প্রথমে নিশ্চিত করুন যে আপনি Scikit-learn লাইব্রেরিটি ইনস্টল করেছেন। যদি না থাকে, তাহলে এটি ইনস্টল করতে পারেন:

pip install scikit-learn

২. লিনিয়ার রিগ্রেশন মডেল তৈরি করা

এখন আমরা একটি সাধারণ উদাহরণ দিয়ে দেখাবো যেখানে আমরা একটি নির্ভরশীল (y) এবং একটি স্বাধীন (x) ভেরিয়েবল ব্যবহার করবো।

কোড উদাহরণ:

# প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# ডেটা তৈরি করা (x এবং y)
# ধরুন, x হলো বিজ্ঞাপনে ব্যয়, এবং y হলো বিক্রয়
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]).reshape(-1, 1)  # বিজ্ঞাপনে ব্যয়
y = np.array([1, 2, 1.3, 3.75, 2.25, 4.3, 4.8, 5.2, 6.3, 7.8])  # বিক্রয়

# ডেটা ট্রেনিং এবং টেস্টিং সেটে ভাগ করা
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)

# মডেলের পারফরম্যান্স মূল্যায়ন
print("Mean squared error:", mean_squared_error(y_test, y_pred))
print("R^2 score:", r2_score(y_test, y_pred))

# মডেল কোএফিসিয়েন্ট এবং ইন্টারসেপ্ট
print("Slope (Coefficient):", model.coef_)
print("Intercept:", model.intercept_)

# মডেলটির লাইন প্লট করা
plt.scatter(x, y, color='blue', label='Actual data')  # আসল ডেটা
plt.plot(x, model.predict(x), color='red', label='Regression line')  # রিগ্রেশন লাইন
plt.xlabel('Advertising Spend')
plt.ylabel('Sales')
plt.title('Linear Regression Example')
plt.legend()
plt.show()

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

  1. ডেটা তৈরি: এখানে আমরা একটি সিমুলেটেড ডেটাসেট তৈরি করেছি, যেখানে x হলো বিজ্ঞাপনে ব্যয় এবং y হলো বিক্রয়।
  2. ডেটা ভাগ করা: train_test_split() ফাংশনটি ডেটাকে প্রশিক্ষণ (training) এবং পরীক্ষণ (testing) সেটে ভাগ করে, যাতে আমরা প্রশিক্ষণ ডেটা দিয়ে মডেল ট্রেনিং করতে পারি এবং টেস্ট ডেটার উপর তার কার্যকারিতা যাচাই করতে পারি।
  3. মডেল প্রশিক্ষণ: LinearRegression() মডেল তৈরি করা হয় এবং fit() মেথড দিয়ে মডেলটি প্রশিক্ষিত হয়।
  4. পূর্বাভাস: মডেলটি predict() মেথড দিয়ে টেস্ট ডেটার উপর পূর্বাভাস প্রদান করে।
  5. মডেল মূল্যায়ন: mean_squared_error() এবং r2_score() মেথড দ্বারা মডেলটির কার্যকারিতা মূল্যায়ন করা হয়। r2_score() হলো মডেলটির পারফরম্যান্স মূল্যায়নের জন্য ব্যবহৃত স্কোর।
  6. গ্রাফ তৈরি: মডেলটির আসল ডেটা এবং রিগ্রেশন লাইনের সাথে একটি scatter plot তৈরি করা হয় যাতে আমরা আসল ডেটা এবং মডেল থেকে প্রাপ্ত রিগ্রেশন লাইনের তুলনা করতে পারি।

আউটপুট:

আপনি যখন এই কোডটি চালাবেন, তখন নিচের তথ্যগুলো দেখতে পাবেন:

  • Mean squared error: এটি মডেলটির পূর্বাভাসের গড় ত্রুটির মাপ।
  • R² score: এটি মডেলটির বৈশিষ্ট্যের মাপ, যেখানে ১ মানে পুরোপুরি সঠিক এবং ০ মানে মডেলটি কোনো তথ্যের সাথে সম্পর্কিত নয়।
  • Slope (Coefficient): এটি রিগ্রেশন লাইনের ঢাল, অর্থাৎ, প্রতি একক পরিবর্তনে y-মান কত পরিবর্তিত হয়।
  • Intercept: এটি রিগ্রেশন লাইনের ইন্টারসেপ্ট, অর্থাৎ, x = 0 হলে y-মান কী হবে।

এছাড়া, আপনি একটি গ্রাফ দেখতে পাবেন যেখানে আপনার আসল ডেটা এবং রিগ্রেশন লাইন একত্রে প্রদর্শিত হবে।


সারাংশ

এই উদাহরণে আমরা দেখলাম কীভাবে পাইথন দিয়ে একটি লিনিয়ার রিগ্রেশন মডেল তৈরি করতে হয়, যেখানে আমরা ডেটা বিশ্লেষণ করতে Scikit-learn লাইব্রেরি ব্যবহার করেছি। লিনিয়ার রিগ্রেশন মডেলটি ভবিষ্যদ্বাণী (prediction) করতে এবং ডেটার মধ্যে সম্পর্ক বুঝতে একটি খুবই শক্তিশালী উপায়।

Content added By

Model Evaluation: Mean Squared Error, R-Squared

363

কৃত্রিম বুদ্ধিমত্তা (AI) এবং মেশিন লার্নিং (ML) মডেল তৈরির পর, সেগুলির কার্যকারিতা বা পারফরম্যান্স মূল্যায়ন করা অত্যন্ত গুরুত্বপূর্ণ। Mean Squared Error (MSE) এবং R-Squared (R²) হল দুটি জনপ্রিয় পরিমাপক যা রিগ্রেশন মডেলের কার্যকারিতা মূল্যায়ন করতে ব্যবহৃত হয়।


১. Mean Squared Error (MSE)

Mean Squared Error (MSE) হল একটি পরিমাপক যা রিগ্রেশন মডেলের ত্রুটি বা Error (অথবা ভুল পূর্বাভাস) পরিমাপ করে। এটি প্রকৃত মান এবং পূর্বাভাস করা মানের মধ্যে পার্থক্যের বর্গের গড়। ছোট MSE মান ভাল মডেল নির্দেশ করে, কারণ এর মান যত কম হবে, মডেলটির পূর্বাভাস তত সঠিক হবে।

সূত্র:

MSE=1ni=1n(yiyi^)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y_i})^2

যেখানে:

  • yiy_i হলো প্রকৃত মান (Actual value),
  • yi^\hat{y_i} হলো পূর্বাভাস (Predicted value),
  • nn হলো ডেটার সংখ্যা।

বৈশিষ্ট্য:

  • MSE সব সময় ধনাত্মক মান (positive value) হয়।
  • এর মান যত ছোট হবে, মডেল তত ভালো।
  • MSE আউটলায়ারের জন্য খুবই সংবেদনশীল (sensitive)।

উদাহরণ:

from sklearn.metrics import mean_squared_error

# প্রকৃত মান (Actual values)
y_actual = [3, -0.5, 2, 7]

# পূর্বাভাস মান (Predicted values)
y_pred = [2.5, 0.0, 2, 8]

# MSE গণনা করা
mse = mean_squared_error(y_actual, y_pred)
print(f'Mean Squared Error: {mse}')

২. R-Squared (R²)

R-Squared (R²) বা কোঅফিসিয়েন্ট অব ডetermination হলো একটি পরিমাপক যা মডেলটির পূর্বাভাসের সাথে প্রকৃত মানের কতটা সম্পর্ক রয়েছে তা পরিমাপ করে। R² পরিমাপক ০ এবং ১ এর মধ্যে থাকে:

  • R² = 1: এটি নির্দেশ করে যে মডেলটি পুরোপুরি সঠিক, অর্থাৎ মডেল দ্বারা পূর্বাভাস করা মান এবং প্রকৃত মানের মধ্যে পূর্ণ সাদৃশ্য রয়েছে।
  • R² = 0: এটি নির্দেশ করে যে মডেলটি ডেটার মধ্যে কোনো সম্পর্ক ব্যাখ্যা করতে পারছে না।

সূত্র:

R2=1i=1n(yiyi^)2i=1n(yiyˉ)2R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y_i})^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}

যেখানে:

  • yiy_i হলো প্রকৃত মান,
  • yi^\hat{y_i} হলো পূর্বাভাস মান,
  • yˉ\bar{y} হলো প্রকৃত মানের গড়।

বৈশিষ্ট্য:

  • R² এর মান ০ থেকে ১ এর মধ্যে থাকে।
  • যত বেশি হবে, মডেলটি তত ভাল হবে, কারণ তা বেশি বৈশিষ্ট্যযুক্ত ডেটার ভ্যারিয়েন্স (variance) ব্যাখ্যা করে।
  • এটি সাধারণত রিগ্রেশন মডেলের কার্যকারিতা মূল্যায়নে ব্যবহৃত হয়।

উদাহরণ:

from sklearn.metrics import r2_score

# প্রকৃত মান (Actual values)
y_actual = [3, -0.5, 2, 7]

# পূর্বাভাস মান (Predicted values)
y_pred = [2.5, 0.0, 2, 8]

# R² গণনা করা
r_squared = r2_score(y_actual, y_pred)
print(f'R-Squared: {r_squared}')

MSE এবং R² এর মধ্যে পার্থক্য

বৈশিষ্ট্যMean Squared Error (MSE)R-Squared (R²)
মূল্য পরিসর০ থেকে ∞ পর্যন্ত (সবসময় ধনাত্মক)০ থেকে ১ পর্যন্ত, কখনও কখনও নেতিবাচকও হতে পারে
কী পরিমাপ করেমডেল দ্বারা পূর্বাভাসের ত্রুটি (error) পরিমাপ করেমডেলটি কতটা সঠিকভাবে ডেটার ভ্যারিয়েন্স ব্যাখ্যা করে
তথ্য ভরসাযোগ্যতাআউটলায়ারের প্রতি সংবেদনশীল (Sensitive to outliers)আউটলায়ারের প্রতি কম সংবেদনশীল (Less sensitive)
বড় মানের অর্থত্রুটি বেশি, মডেল ভালো নয়R² মান ছোট হলে মডেল কম সঠিক
ছোট মানের অর্থমডেল অধিক সঠিক এবং ছোট ত্রুটি (বেশি মানের পার্থক্য না থাকলে)R² মান বড় হলে মডেল ভালো

MSE এবং R² উভয় ব্যবহার করার সুবিধা

  • MSE সাধারণত ত্রুটির আকার এবং ভ্যালিডিটি মূল্যায়ন করতে ব্যবহার করা হয়, তবে এটি আউটলায়ারের প্রতি সংবেদনশীল এবং শুধুমাত্র ত্রুটির মান দেয়।
  • মডেলটির সামগ্রিক কার্যকারিতা এবং প্রকৃত মানের সাথে সম্পর্কের স্তর পরিমাপ করতে সাহায্য করে। R² এর সাহায্যে আপনি মডেলের ক্ষমতা বুঝতে পারেন এবং এর ভিত্তিতে সিদ্ধান্ত নিতে পারেন।

সারাংশ

Mean Squared Error (MSE) এবং R-Squared (R²) হল দুটি গুরুত্বপূর্ণ মেট্রিক যা রিগ্রেশন মডেলগুলির কার্যকারিতা পরিমাপ করতে ব্যবহৃত হয়। MSE ত্রুটি পরিমাপ করে এবং ছোট মানে ভাল মডেল নির্দেশ করে, যখন R² মডেলটির কতটা সঠিকভাবে ডেটার ভ্যারিয়েন্স ব্যাখ্যা করছে তা পরিমাপ করে, এবং উচ্চ R² মান ভাল মডেল নির্দেশ করে। দুইটি মেট্রিক একসাথে ব্যবহার করলে মডেলের উন্নয়ন এবং মূল্যায়ন সহজ হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...