Linear Regression এবং Logistic Regression মেশিন লার্নিং-এর দুটি গুরুত্বপূর্ণ অ্যালগরিদম, তবে তাদের কাজ করার পদ্ধতি এবং উদ্দেশ্য একে অপর থেকে আলাদা।
Linear Regression একটি পরিসংখ্যানগত পদ্ধতি যা দুইটি বা তার বেশি ভেরিয়েবলের মধ্যে সম্পর্ক নির্ধারণ করে। এটি ডেটা পয়েন্টগুলির মধ্যে সরল রেখার (লিনিয়ার) সম্পর্ক মডেল করে, যা একটি নির্দিষ্ট নির্ভরশীল ভেরিয়েবলের (Y) মান পূর্বাভাস করতে সাহায্য করে, যখন অন্য ভেরিয়েবল (X) গুলি স্বাধীন ভেরিয়েবল হিসেবে কাজ করে।
Linear regression মূলত ধ্রুবক (continuous) ভেরিয়েবলের জন্য ব্যবহৃত হয়, অর্থাৎ যখন আমাদের পূর্বাভাস করতে হয় একটি সংখ্যা (যেমন, ঘর ভাড়া, স্টক দাম ইত্যাদি)।
রৈখিক প্রতিক্রিয়ার সাধারণ ফর্ম:
Y=β0+β1X+ϵ
এখানে,
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 সাধারণত ক্যাটেগোরিক্যাল (categorical) ডেটার জন্য ব্যবহৃত হয়, যেখানে আউটপুট দুটি শ্রেণি থাকে, যেমন গ্রাহক এক্সক্লুসিভ হতে পারে বা না হতে পারে।
লজিস্টিক প্রতিক্রিয়া মডেল সাধারণত সিগময়েড ফাংশন ব্যবহার করে:
p=11+e−(β0+β1X)
এখানে:
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 Regression | Logistic Regression |
---|---|---|
ধরন | রিগ্রেশন (Continuous output) | ক্লাসিফিকেশন (Categorical output) |
আউটপুট | একাধিক ধারাবাহিক মান | দুটি শ্রেণি (0 বা 1, True বা False) |
ফর্মুলা | Y=β0+β1X+ϵ | সিগময়েড ফাংশন: p=11+e−(β0+β1X) |
ব্যবহার | সংখ্যা পূর্বাভাস (যেমন, মূল্য, পরিমাণ) | শ্রেণী নির্ধারণ (যেমন, পাস/ফেল, রোগী/সুস্থ) |
উদাহরণ | বাড়ির দাম পূর্বাভাস, স্টক দাম পূর্বাভাস | স্প্যাম ইমেইল শনাক্তকরণ, রোগের পূর্বাভাস |
Linear Regression একটি পরিসংখ্যানগত পদ্ধতি যা একটি চলকের (dependent variable) সাথে এক বা একাধিক স্বাধীন চলকের (independent variables) সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়। এটি একটি সরল রেখার মাধ্যমে ডেটার মধ্যে সম্পর্কের মডেল তৈরি করে, যা ভবিষ্যদ্বাণী (prediction) এবং বিশ্লেষণের জন্য ব্যবহৃত হয়।
Linear Regression-এ, একটি চলক (Y) কে অন্য একটি বা একাধিক চলক (X) এর উপর নির্ভরশীল হিসেবে ধরা হয়। এর মাধ্যমে আমরা একটি straight line (রেখা) বের করার চেষ্টা করি, যেটি ডেটার সাথে সবচেয়ে ভালোভাবে মেলে।
Linear Regression-এ, সাধারণত Y = β₀ + β₁X + ε ফর্মুলা ব্যবহৃত হয়, যেখানে:
Linear Regression এর প্রধান লক্ষ্য হলো β₀ এবং β₁ এর মান বের করা, যা রেখার জন্য সর্বোত্তম ফিট তৈরি করবে। এটি Least Squares Method ব্যবহার করে করা হয়, যা ডেটার প্রতি সীমাবদ্ধতার (residuals) মোট বর্গফল (sum of squares) কমাতে সহায়ক।
Linear Regression একটি শক্তিশালী মডেল এবং অনেক ক্ষেত্রে ব্যবহৃত হয়:
ব্যবসায়িক পূর্বাভাস (Business Forecasting):
উদাহরণ:
এখানে একটি Simple Linear Regression উদাহরণ দেখানো হচ্ছে, যেখানে আমরা একটি ছাত্রের পরীক্ষার ফলাফল পূর্বাভাস করতে তার অধ্যয়ন সময়ের উপর ভিত্তি করে কাজ করছি:
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)
# মডেল তৈরি
model = LinearRegression()
# মডেল প্রশিক্ষণ
model.fit(study_hours, scores)
# নতুন ডেটা পয়েন্টের জন্য পূর্বাভাস
new_study_hours = np.array([11]).reshape(-1, 1) # 11 ঘন্টা অধ্যয়ন
predicted_score = model.predict(new_study_hours)
print(f"যদি 11 ঘণ্টা অধ্যয়ন করা হয়, তবে পরীক্ষায় প্রাপ্ত স্কোর হবে: {predicted_score[0]}")
# রৈখিক সম্পর্ক দেখানোর জন্য প্লট
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-এর বিভিন্ন প্রয়োগ ক্ষেত্র রয়েছে, যেমন ব্যবসা, স্বাস্থ্যসেবা, অর্থনীতি এবং মেশিন লার্নিং।
Multiple Linear Regression এবং Polynomial Linear Regression দুটি জনপ্রিয় পরিসংখ্যানিক মডেল যা ডেটা সায়েন্স এবং মেশিন লার্নিংয়ে ব্যবহৃত হয়। এগুলি মূলত Regression Analysis-এর অংশ এবং ডেটা থেকে ভবিষ্যদ্বাণী করার জন্য ব্যবহৃত হয়।
Multiple Linear Regression (MLR) একটি রিগ্রেশন মডেল যা একাধিক বৈশিষ্ট্য (independent variables) এর উপর নির্ভরশীল (dependent variable) এর সম্পর্ক মডেল করে। এটি একাধিক বৈশিষ্ট্য ব্যবহার করে একটি একক রিগ্রেশন লাইনের মাধ্যমে ভবিষ্যদ্বাণী করে।
Multiple Linear Regression মডেলটি সাধারণত নিচের সূত্র অনুসরণ করে:
Y=β0+β1X1+β2X2+⋯+βnXn+ϵ
এখানে:
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_}')
ব্যাখ্যা:
YearsExperience
(স্বাধীন ভেরিয়েবল) এর ভিত্তিতে Salary
(নির্ভরশীল ভেরিয়েবল) পূর্বাভাস করা হয়েছে।LinearRegression()
ফাংশন ব্যবহার করে মডেল ট্রেনিং করা হয়েছে এবং টেস্ট ডেটাতে ভবিষ্যদ্বাণী করা হয়েছে।Polynomial Linear Regression হলো একটি রিগ্রেশন মডেল যেখানে এক বা একাধিক বৈশিষ্ট্য (independent variable) কে পাওয়ার ফাংশনে রূপান্তর করা হয় (যেমন X2,X3,…)। এটি সাধারণত non-linear সম্পর্কগুলির জন্য ব্যবহৃত হয় যেখানে বৈশিষ্ট্য এবং লক্ষ্য ভেরিয়েবলের মধ্যে সোজা সম্পর্ক নেই।
Polynomial Regression সাধারণত নিম্নলিখিত রূপে হয়:
Y=β0+β1X+β2X2+⋯+βnXn+ϵ
এখানে:
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()
ফাংশন ব্যবহার করে পলিনোমিয়াল মডেল ট্রেনিং এবং টেস্ট ডেটাতে পূর্বাভাস করা হয়েছে।এই মডেলগুলির সাহায্যে আপনি বিভিন্ন ধরনের ডেটা বিশ্লেষণ এবং ভবিষ্যদ্বাণী করতে পারেন।
Logistic Regression একটি মেশিন লার্নিং অ্যালগরিদম যা মূলত ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। এটি বাইনারি ক্লাসিফিকেশন (যেমন, হ্যাঁ/না, ০/১) বা মাল্টিক্লাস ক্লাসিফিকেশন (যেমন, একাধিক শ্রেণী নির্বাচন) সমস্যার সমাধান করতে সক্ষম। Logistic Regression ডেটার উপর ভিত্তি করে একটি লজিস্টিক সিগময়েড ফাংশন ব্যবহার করে সম্ভাবনা হিসাব করে, যা পরে একটি ক্লাস বা ক্যাটাগরি চয়ন করতে সহায়ক হয়।
Logistic Regression একটি সিগময়েড (sigmoid) ফাংশন ব্যবহার করে যেটি একটি সোজা রেখার সমীকরণকে আউটপুটের সম্ভাবনা (probability) ফর্ম্যাটে রূপান্তরিত করে। সিগময়েড ফাংশনটি ০ থেকে ১ এর মধ্যে একটি মান প্রদান করে, যা মূলত ক্লাস ১ অথবা ক্লাস ০ হিসেবে চিহ্নিত করা হয়।
Logistic Regression-এ ব্যবহৃত sigmoid function এর গাণিতিক রূপ:
P(y=1∣X)=11+e−z
যেখানে,
সিগময়েড ফাংশন হল একটি লজিস্টিক ফাংশন যা ০ থেকে ১ এর মধ্যে আউটপুট প্রদান করে।
Logistic Regression সবচেয়ে বেশি ব্যবহৃত হয় বাইনরি ক্লাসিফিকেশন সমস্যা সমাধানে, যেখানে দুইটি ক্যাটাগরি থাকে। যেমন, ইমেইল স্প্যাম শনাক্তকরণ, রোগী সুস্থ কিনা বা অন্য রোগে আক্রান্ত কিনা ইত্যাদি।
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)
যখন আপনার আউটপুট ক্যাটাগরি দুইটির বেশি থাকে, তখন Logistic Regression-কে মাল্টিক্লাস ক্লাসিফিকেশনের জন্যও ব্যবহার করা যেতে পারে। এখানে, one-vs-rest বা one-vs-one পদ্ধতি ব্যবহার করা হয়।
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)
Logistic Regression আউটপুট হিসেবে প্রবাবিলিটি প্রদান করে, যা তখন বিভিন্ন ক্লাসে রূপান্তরিত হয়। এই প্রবাবিলিটি ব্যবহার করে decision threshold নির্ধারণ করা যেতে পারে, যেমন, 0.5 বা অন্য কোনো মানের উপর ভিত্তি করে।
Logistic Regression মডেল সাধারণত আপনার বৈশিষ্ট্যগুলো এবং তাদের সম্পর্কের সাথে সিদ্ধান্ত নেয়। এটি coefficients বা weights প্রদান করে, যা প্রতিটি বৈশিষ্ট্যের গুরুত্ব নির্দেশ করে। আপনি মডেলের এই ওজন বিশ্লেষণ করতে পারেন।
Logistic Regression স্বাস্থ্যসেবায় রোগী ডায়াগনোসিস, ক্যান্সার শনাক্তকরণ, হার্ট ডিজিজের পূর্বাভাস, ইত্যাদির জন্য ব্যবহার করা হয়। এটি রোগীকে ২টি ক্যাটাগরিতে বিভক্ত করতে সাহায্য করতে পারে: স্বাস্থ্যবান এবং অসুস্থ।
Logistic Regression ক্রেডিট স্কোরিং, বিলিং চিহ্নিতকরণ, ঝুঁকি বিশ্লেষণ ইত্যাদিতে ব্যবহৃত হয়। এটি একটি গুরুত্বপূর্ণ অ্যালগরিদম যেটি বিভিন্ন ফিনান্সিয়াল ডেটা বিশ্লেষণ করতে ব্যবহৃত হয়।
Logistic Regression গ্রাহক চাহিদা পূর্বাভাস, চুয়ার্ন প্রেডিকশন, গ্রাহক শ্রেণীবিভাগ এবং বিজ্ঞাপন কনভার্সন রেট বিশ্লেষণ করার জন্য ব্যবহার করা হয়।
Logistic Regression একটি শক্তিশালী মেশিন লার্নিং অ্যালগরিদম যা ক্লাসিফিকেশন সমস্যার সমাধানে ব্যবহৃত হয়। এটি বাইনারি এবং মাল্টিক্লাস ক্লাসিফিকেশন উভয় ক্ষেত্রেই কার্যকরী। বিভিন্ন ক্ষেত্রে যেমন স্বাস্থ্যসেবা, অর্থনীতি, ব্যবসা, বিজ্ঞাপন ইত্যাদিতে এটি ব্যাপকভাবে ব্যবহৃত হয়। Logistic Regression ব্যবহারে প্রবাবিলিটি নির্ধারণ করা সম্ভব, যা গ্রাহক চিহ্নিতকরণ এবং ডেটা বিশ্লেষণে সহায়ক হয়।
Model Evaluation হল একটি প্রক্রিয়া যার মাধ্যমে আপনি আপনার মডেলের কার্যকারিতা বা দক্ষতা যাচাই করেন। এটি মডেলের প্রকৃত পারফরম্যান্স পরিমাপের জন্য গুরুত্বপূর্ণ। মডেল ইভালুয়েশন ব্যবহৃত বিভিন্ন মেট্রিক্সের মধ্যে R-squared, Confusion Matrix, এবং ROC-AUC অন্যতম। এই মেট্রিকগুলি আপনাকে মডেলের সঠিকতা, ত্রুটি এবং অন্যান্য গুরুত্বপূর্ণ দিক পরিমাপ করতে সহায়ক।
নিচে আমরা এই তিনটি জনপ্রিয় ইভালুয়েশন মেট্রিক্স সম্পর্কে বিস্তারিত আলোচনা করব:
R-squared বা Coefficient of Determination হল একটি পরিমাপ যা মডেলের ফিটনেস বা সামঞ্জস্য নির্ধারণ করে। এটি বোঝায় কতটুকু ইনপুট ভেরিয়েবল (features) আউটপুট ভেরিয়েবলের পরিবর্তন ব্যাখ্যা করতে সক্ষম। সাধারণত এটি Regression Models এর জন্য ব্যবহৃত হয়।
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}')
Confusion Matrix হল একটি টেবিল যা কেবলমাত্র শ্রেণীবিভাজন মডেলের জন্য ব্যবহার হয় (যেমন Logistic Regression, SVM, Naive Bayes)। এটি প্রকৃত এবং পূর্বাভাসিত শ্রেণির মধ্যে সম্পর্ক দেখায় এবং মডেলের সঠিকতা, ভুল শ্রেণী, এবং অন্যান্য মেট্রিক পরিমাপ করতে সহায়ক।
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)
ROC Curve হল একটি গ্রাফ যা True Positive Rate (TPR) এবং False Positive Rate (FPR) এর মধ্যে সম্পর্ক দেখায়। AUC (Area Under the Curve) হল ROC কাতারের নিচে থাকা এলাকা, যা মডেলের পারফরম্যান্সের সামগ্রিক পরিমাপ।
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()
এই মেট্রিকগুলি ব্যবহারের মাধ্যমে আপনি আপনার মডেলের কার্যকারিতা আরও ভালোভাবে মূল্যায়ন করতে পারবেন।
Read more