মডেল মূল্যায়ন (Model Evaluation)
মডেল মূল্যায়ন হলো একটি গুরুত্বপূর্ণ পদক্ষেপ যেখানে মডেলটি কতটা কার্যকর তা পরিমাপ করা হয়। মডেল ট্রেনিংয়ের পর, এটি বিভিন্ন মেট্রিক্স দ্বারা মূল্যায়িত হয় যাতে আমরা তার পারফরম্যান্স বুঝতে পারি এবং তার পরবর্তী উন্নতির জন্য সিদ্ধান্ত নিতে পারি। মডেল মূল্যায়নের সময় যে প্রধান মেট্রিক্সগুলো ব্যবহার করা হয় তা বিভিন্ন ধরনের সমস্যা, যেমন রিগ্রেশন, ক্লাসিফিকেশন, বা টাইম সিরিজ প্রেডিকশন অনুযায়ী পরিবর্তিত হয়।
ক্লাসিফিকেশন মডেল মূল্যায়ন
ক্লাসিফিকেশন মডেলগুলোর জন্য বিভিন্ন ধরনের মূল্যায়ন মেট্রিক্স রয়েছে, যেগুলি মডেলের পারফরম্যান্স মূল্যায়ন করতে সহায়ক। এই মেট্রিক্সগুলির মধ্যে অন্যতম হল:
অ্যাকিউরেসি (Accuracy):
এটি মডেলের সঠিকতা পরিমাপ করে, বা সঠিকভাবে পূর্বাভাস করা ক্লাসের শতাংশ।প্রিসিশন (Precision):
এটি পরিমাপ করে কত শতাংশ পূর্বাভাস সঠিকভাবে পজিটিভ ছিল।রিকল (Recall):
এটি পরিমাপ করে কত শতাংশ বাস্তব পজিটিভ ক্লাস সঠিকভাবে পূর্বাভাস করা হয়েছে।ফ-স্কোর (F1 Score):
এটি প্রিসিশন এবং রিকলের হার্মনিক গড়।- কনফিউশন ম্যাট্রিক্স (Confusion Matrix):
এটি একটি টেবিল যা ক্লাসিফিকেশন মডেলের পূর্বাভাস এবং প্রকৃত আউটপুটের মধ্যে সম্পর্ক প্রদর্শন করে।
উদাহরণ: কনফিউশন ম্যাট্রিক্স এবং মেট্রিক্স পরিমাপ
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix
# প্রকৃত আউটপুট এবং পূর্বাভাসের তুলনা
y_true = [0, 1, 0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 0, 1, 1]
# কনফিউশন ম্যাট্রিক্স
conf_matrix = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:\n", conf_matrix)
# মেট্রিক্স পরিমাপ
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
print(f"Accuracy: {accuracy}")
print(f"Precision: {precision}")
print(f"Recall: {recall}")
print(f"F1 Score: {f1}")
রিগ্রেশন মডেল মূল্যায়ন
রিগ্রেশন মডেলগুলোতে আউটপুট ধারাবাহিক বা কন্টিনিউয়াস থাকে, সুতরাং তাদের মূল্যায়ন করার জন্য বেশ কিছু বিশেষ মেট্রিক্স ব্যবহার করা হয়:
মিন স্কোয়ারড এরর (Mean Squared Error - MSE):
এটি একটি সাধারণ মেট্রিক যা পূর্বাভাস এবং প্রকৃত মানের মধ্যে ত্রুটির বর্গের গড়।যেখানে হলো প্রকৃত মান এবং হলো পূর্বাভাস করা মান।
রুট মিন স্কোয়ারড এরর (Root Mean Squared Error - RMSE):
এটি MSE এর স্কোয়ার রুট, যা সাধারণত আরও ব্যাখ্যাযোগ্য কারণ এটি একই এককগুলিতে ফলাফল দেয়।মিন অ্যাবসলিউট এরর (Mean Absolute Error - MAE):
এটি পূর্বাভাস এবং প্রকৃত মানের মধ্যে গড় অ্যাবসলিউট ত্রুটি পরিমাপ করে।R² স্কোর (R-squared):
এটি একটি পরিমাপ যা মডেলের সঠিকতা বোঝায়, এবং এটি ১-এর কাছাকাছি থাকলে মডেলটি খুব ভালো।যেখানে হলো প্রকৃত মানের গড়।
উদাহরণ: রিগ্রেশন মেট্রিক্স পরিমাপ
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import numpy as np
# প্রকৃত আউটপুট এবং পূর্বাভাস
y_true = [3.5, 2.1, 4.2, 5.5, 6.3]
y_pred = [3.4, 2.0, 4.1, 5.6, 6.2]
# MSE, MAE, RMSE এবং R2 Score
mse = mean_squared_error(y_true, y_pred)
mae = mean_absolute_error(y_true, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_true, y_pred)
print(f"MSE: {mse}")
print(f"MAE: {mae}")
print(f"RMSE: {rmse}")
print(f"R² Score: {r2}")
ফোরকাস্টিং একিউরেসি (Forecasting Accuracy)
ফোরকাস্টিং বা টাইম সিরিজ প্রেডিকশনে, মডেলের সঠিকতা পরিমাপ করা একটি বিশেষ চ্যালেঞ্জ হতে পারে। এখানে আমরা কিছু সাধারণ মেট্রিক্স ব্যবহার করি, যা ভবিষ্যতের মূল্য পূর্বাভাস করার জন্য কার্যকরী।
মিন অ্যাবসলিউট পারসেন্টেজ এরর (MAPE): এটি একটি জনপ্রিয় মেট্রিক যা পূর্বাভাস এবং প্রকৃত মানের মধ্যে গড় পারসেন্টেজ ত্রুটি পরিমাপ করে।
Symmetric MAPE (sMAPE):
এটি MAPE এর আরও উন্নত সংস্করণ যেখানে উভয় প্রকৃত এবং পূর্বাভাস মানের গড়ের সাথে ভাগ করা হয়।
উদাহরণ: ফোরকাস্টিং একিউরেসি
def mape(y_true, y_pred):
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
# প্রকৃত এবং পূর্বাভাস
y_true = [200, 220, 250, 270, 300]
y_pred = [210, 215, 240, 265, 295]
# MAPE
forecast_accuracy = mape(y_true, y_pred)
print(f"MAPE: {forecast_accuracy}%")
সারাংশ
- মডেল মূল্যায়ন: মডেল মূল্যায়নের জন্য বিভিন্ন মেট্রিক্স ব্যবহার করা হয়, যেমন Accuracy, Precision, Recall, F1 Score, MSE, RMSE, R² Score এবং আরও অনেক।
- ফোরকাস্টিং একিউরেসি: টাইম সিরিজ বা ফোরকাস্টিং প্রেডিকশনের জন্য MAPE এবং sMAPE মেট্রিক্স ব্যবহৃত হয়।
- মডেল পারফরম্যান্স উন্নত করা: এই মেট্রিক্সগুলির মাধ্যমে আমরা মডেলের পারফরম্যান্স মূল্যায়ন করতে পারি এবং মডেলটিকে আরও কার্যকরী করার জন্য পদক্ষেপ নিতে পারি।
Read more