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 এর উপাদান:
- True Positive (TP): মডেলটি সঠিকভাবে পজিটিভ শ্রেণী পূর্বাভাস দিয়েছে।
- True Negative (TN): মডেলটি সঠিকভাবে নেগেটিভ শ্রেণী পূর্বাভাস দিয়েছে।
- False Positive (FP): মডেলটি ভুলভাবে পজিটিভ শ্রেণী পূর্বাভাস দিয়েছে।
- 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 এর মাধ্যমে আপনি মডেলের সামগ্রিক পারফরম্যান্স বুঝতে পারেন।
এই মেট্রিকগুলি ব্যবহারের মাধ্যমে আপনি আপনার মডেলের কার্যকারিতা আরও ভালোভাবে মূল্যায়ন করতে পারবেন।
Read more