এটি সাইকিট গ্রেডিয়েন্ট বুস্টিংয়ের দ্বিপদী বিচ্যুতি ক্ষতি ফাংশন,
def __call__(self, y, pred, sample_weight=None):
"""Compute the deviance (= 2 * negative log-likelihood). """
# logaddexp(0, v) == log(1.0 + exp(v))
pred = pred.ravel()
if sample_weight is None:
return -2.0 * np.mean((y * pred) - np.logaddexp(0.0, pred))
else:
return (-2.0 / sample_weight.sum() *
np.sum(sample_weight * ((y * pred) - np.logaddexp(0.0, pred))))
এই ক্ষতির ফাংশন 0 এবং 1 শ্রেণীর সাথে শ্রেণীর মধ্যে সমান নয় anyone যে কেউ এটি কীভাবে ঠিক বলে বিবেচিত হয় তা ব্যাখ্যা করতে পারে।
উদাহরণস্বরূপ, কোনও নমুনা ওজন ছাড়াই, ক্লাস 1 এর ক্ষতির ফাংশনটি
-2(pred - log(1 + exp(pred))
বনাম 0 এর জন্য বনাম
-2(-log(1+exp(pred))
এই দুটির জন্য প্লট ব্যয়ের ক্ষেত্রে একই রকম নয়। আমাকে বুঝতে কেউ সাহায্য করতে পারে?
pred
লগ প্রতিক্রিয়াগুলির সাথে প্রতিস্থাপন করি তবে ক্ষতির ফাংশন উভয় শ্রেণীর জন্য অভিন্ন।