ROC-AUC এবং Log Loss এর ব্যবহার

মডেল ইভ্যালুয়েশন এবং Performance Metrics - এক্সজিবুস্ট (XGBoost) - Latest Technologies

285

XGBoost এ মডেল ইভ্যালুয়েশনের জন্য ROC-AUC এবং Log Loss দুটি গুরুত্বপূর্ণ মেট্রিক্স। এগুলি ক্লাসিফিকেশন মডেলের পারফরম্যান্স নির্ধারণ করতে ব্যাপকভাবে ব্যবহৃত হয়। এখানে এই দুটি মেট্রিক্সের ব্যবহার, তাদের সংজ্ঞা এবং XGBoost এ কীভাবে সেগুলো ব্যবহার করা হয় তা নিয়ে আলোচনা করা হলো।

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

ROC-AUC হল ক্লাসিফিকেশন মডেলের কার্যকারিতা নির্ধারণের জন্য ব্যবহৃত একটি মেট্রিক। এটি মডেলের প্রেডিকশনগুলোর সঠিকতা এবং তাদের কার্যকারিতা প্রকাশ করে।

  • ROC (Receiver Operating Characteristic): এটি একটি গ্রাফ যা True Positive Rate (TPR) এবং False Positive Rate (FPR) এর মধ্যে সম্পর্ক প্রদর্শন করে।
  • AUC (Area Under Curve): ROC গ্রাফের নিচের এরিয়া। এটি 0 এবং 1 এর মধ্যে একটি মান দেয়, যেখানে 1 মানে মডেল পারফেক্ট এবং 0.5 মানে মডেল এলোমেলো অনুমান করছে।

XGBoost এ ROC-AUC ব্যবহারের উদাহরণ

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score

# ডেটা লোড এবং বিভাজন
X, y = ...  # আপনার ডেটা লোড করুন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# XGBoost মডেল ট্রেনিং
model = xgb.XGBClassifier(eval_metric='auc')
model.fit(X_train, y_train)

# প্রেডিকশন
y_pred_proba = model.predict_proba(X_test)[:, 1]  # প্রেডিকশন প্রোবাবিলিটি বের করা

# ROC-AUC হিসাব
roc_auc = roc_auc_score(y_test, y_pred_proba)
print(f'ROC-AUC Score: {roc_auc}')

উপরের উদাহরণে, আমরা মডেলটি ট্রেনিং করেছি এবং প্রেডিকশন প্রোবাবিলিটি ব্যবহার করে ROC-AUC স্কোর বের করেছি। একটি উচ্চ ROC-AUC স্কোর মডেলের ভাল পারফরম্যান্স নির্দেশ করে।

২. Log Loss

Log Loss, যা Logarithmic Loss নামেও পরিচিত, ক্লাসিফিকেশন মডেলের পারফরম্যান্স নির্ধারণে ব্যবহৃত একটি মেট্রিক। এটি প্রেডিকটেড প্রোবাবিলিটি এবং আসল লেবেলের মধ্যে পার্থক্য পরিমাপ করে। Log Loss মেট্রিক্সটি নিম্নলিখিত উপায়ে কাজ করে:

  • মডেলের প্রেডিকশন যদি আসল লেবেল থেকে দূরে থাকে তবে Log Loss মান বড় হয়।
  • মডেল যদি সঠিকভাবে প্রেডিকশন করে, Log Loss মান ছোট হয়।
  • কম Log Loss মান ভাল মডেল নির্দেশ করে।

Log Loss এর গণনা:

XGBoost এ Log Loss ব্যবহারের উদাহরণ

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import log_loss

# ডেটা লোড এবং বিভাজন
X, y = ...  # আপনার ডেটা লোড করুন
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# XGBoost মডেল ট্রেনিং
model = xgb.XGBClassifier(eval_metric='logloss')
model.fit(X_train, y_train)

# প্রেডিকশন
y_pred_proba = model.predict_proba(X_test)[:, 1]  # প্রেডিকশন প্রোবাবিলিটি বের করা

# Log Loss হিসাব
logloss_value = log_loss(y_test, y_pred_proba)
print(f'Log Loss: {logloss_value}')

XGBoost এ মেট্রিক সেট করা

XGBoost এ, আপনি eval_metric প্যারামিটার ব্যবহার করে ইভ্যালুয়েশন মেট্রিক্স নির্ধারণ করতে পারেন। উদাহরণস্বরূপ:

  • 'auc' ব্যবহার করে ROC-AUC সেট করতে পারেন।
  • 'logloss' ব্যবহার করে Log Loss সেট করতে পারেন।
model = xgb.XGBClassifier(eval_metric='logloss')  # অথবা 'auc'

সারসংক্ষেপ

  • ROC-AUC মডেলের কার্যকারিতা নির্ধারণ করে এবং এটি প্রেডিকশনগুলোর আস্থার উপর ভিত্তি করে গ্রাফ তৈরি করে।
  • Log Loss মেট্রিক্স মডেলের প্রেডিকশন এবং আসল ভ্যালুর মধ্যে পার্থক্য নির্ধারণ করে, এবং কম Log Loss মান মানে মডেল ভাল কাজ করছে।
  • XGBoost এ eval_metric প্যারামিটার ব্যবহার করে আপনি ইচ্ছামতো মেট্রিক নির্ধারণ করতে পারেন এবং মডেলের কার্যকারিতা পরিমাপ করতে পারেন।

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

Promotion

Are you sure to start over?

Loading...