منحنی rocو دو اصطلاح false positive rateو true rositive rate - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

منحنی rocو دو اصطلاح false positive rateو true rositive rate

0 امتیاز
سلام

توضیحاتی در مورد منحنی rocو دو اصطلاح false positive rateو true rositive rate  می خواستم .

و اینکه جطوری میشه از روی confusion matrix اینا رو به دست آورد؟

                                                                                                                 ممنون.
سوال شده تیر 21, 1393  بوسیله ی porsan (امتیاز 77)   9 12 17
دوباره تگ گذاری شد تیر 21, 1393

1 پاسخ

+1 امتیاز

فرض کنید ما یک دیتاست داریم که قراره  کلاسیفایر را آموزش بدیم که تصاویر چهره را تشخیص بده.کلاسیفایر احتمال چهره بودن هر تصویر را در بازه [0,1] میده فرض می کنیم تصاویری که دارای احتمال 0.5 هستند به عنوان چهره و مابقی به عنوان غیر چهره در نظر بگیریم.

حال پس از تست کلاسیفایر بر روی کل دیتاست از نظر کارایی کلاسیفایر چهار تا پارامتر را محاسبه می کنیم.

True Positive :تعداد تصاویری که چهره تشخیص داده شده و واقعاً تصاویر چهره هستند.

True Negative:تعداد تصاویری که چهره تشخیص داده نشده و واقعاً تصاویری غیر از چهره هستند.

False Positive:تعداد تصاویری که چهره تشخیص داده شده در صورتیکه واقعاً تصویر چهره نیستند.

False Negative:تعداد تصاویری که چهره تشخیص داده نشده در صورتیکه واقعاً تصویر چهره هستند.

confusion matrix

 

confusion matrix یک ماتریس مربعیه که در مثال بالا برای یک binary classification استفاده شده که برای multiclass classiication ابعاد بجای 2 میشه n تعداد کلاس ها.

پس از محاسبه confusion matrix می تونیم true positive rate و false positive rate را محاسبه کنیم که در ترسیم ROC استفاده میشن

True positive rate( Hit rate) = true positives/(true positives + false negatives)

False positive rate( False alarm rate) = false positives/(false positives + true negatives)

نمودار ROC در واقع تاثیر تغییرات threshold را محاسبه به صورت نمودار به ما نشان میده.threshold در واقع نقطه ای هست که با آن داده های را به دو بخش positive و negative بخش بندی کردیم همانطور که مشاهده می کنید در مثال بالا ما threshold=0.5 فرض کردیم و confusion matrix را نمایش دادیم.

نمونه ای نمودار ROC را در شکل زیر ببینید.

ROC curve

 

ROC به صورت نمودار دو بعدی است که در محور x مربوط به False positive rate و محور y مربوط به true positive rate هستش نقطه سمت چپ بالا نقطه

ایده ال این نمودار است جائیکه بالاترین true positive و پایین ترین false positive را داریم.ما با هر دقتی می تونیم ROC را رسم کنیم مثلا 0.1و 0.01 و یا 0.001 رسم کنیم و با توجه به مسئله خودمون می تونیم مناسب ترین threshold را انتخاب کنیم.

مورد آخر در مورد ROC باید ذکر کنم بحث مساحت زیر نمودار ROC که تحت عنوان AUC است وقتی که شما مسئله خود را با چندین مدل بررسی می کنید مثلا KDTree و SVM شما برای هر دو مدل AUC را محاسبه می کنید مدلی که دارای AUC بالاتر باشه آن مدل دقت بالاتری داره.

پاسخ داده شده آذر 26, 1396 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده آذر 26, 1396 بوسیله ی مصطفی ساتکی
سلام ممنون بابت پاسخ مفیدتون می شه درباره نحوه پر کردن ماتریس درهم ریختگی توضیح بدید چه جوری اون چهارتا خونه رو محاسبه می کنند. یه نمونه من تو این لینک دیدم نمی دونم درسته یا نه
https://en.wikipedia.org/wiki/Classification_rule
تو این لینک هم یه مثال زده ولی من هر چه تلاش می کنم نمی فهمم چه جوری ماتریس رو پر کرده
https://www.slideshare.net/pierluca.lanzi/machine-learning-and-data-mining-12-classification-rules
ممنون می شم توضیح بدید
(چون تازه عضو شدم نمی دونم سوالم رو جای درستی پرسیدم یا نه)
سلام خوش آمدید.
کجاشو متوجه نشدید من توضیح بدم در مورد نحوه پر کردنش در بالای همان جدول با مثال توضیح دادن.
ممنون.
به عنوان مثال در سطر اول ماتریس چه جوری حساب کرده که از 541تا نمونه که چهره هستند 516 تا رو به درستی تشخیص داده چهره اند و 25 تا رو به اشتباه گفته چهره نیستند. به دست آوردن این اعداد رو نمی دونم چه جوری انجام می شه
سپاس
فرض کردن که همچین چیزی باشه.فرض کنید یه دیتاست فرضی دارید و کلاسیفایری که طراحی کردید صد در صد که تمامی موارد را درست تشخیص نمیده بالاخره اشتباهاتی هم داره مثلاً یک عکس که تصویر چهره است کلاسیفایر شما اون را چهره تشخیص نمیده و بالعکس همه این موارد درست و غلط که چهار حالت هست را شمارش می کنیم و در confusion matrix قرار می دیم.
...