X
تبلیغات
کالج کارآفرینی تیوان

IDS: Intrusion Detection System

ارزیابی دسته بندی ها ( Classifier Evaluation )

اگر شما با مسائل مربوط به تجزیه و تحلیل داده ها سر و کار دارید احتمالا با دسته بندی های مختلف classifier ، مجموعه های ویژگی مختلف و حتی شاید مجموعه های پارامتر متفاوت دست و پنجه نرم می کنید و در نهایت به جایی می رسید که باید درباره ارزیابی کارهای خود فکر کنید.دسته بندی که من ایجاد کرده ام چقدر خوب کار می کند ؟ چیزی که قرار است به آن بپردازیم این عبارت است که چگونه باید کارایی دسته بندی خود را اندازه گیری کنیم
یک جواب آشکار برای این سوال استفاده از صحت و درستی accuracy دسته بندی ماست.تعداد نمونه هایی که به درستی دسته بندی شده اند.ما یک دسته بند داریم که نمونه هایی آزمایشی را دریافت می کند و یک دسته را برای هر کدام از نمونه ها فرض می کند(قرار می دهد) در واقع به هر یک از داده هایی که داریم یک دسته در نظر می گیرد و آنها را در یک گروه قرار می دهد.در هر نمونه آزمایشی حدسی که دسته بند زده است یا صحیح است یا اشتباه.ما به سادگی تعداد تصمیمات صحیحی که دسته بند مان گرفته است را شماره می کنیم و بر تعداد کل نمونه های آزمایشی تقسیم می کنیم و نتیجه حاصل دقت دسته بند ما خواهد بود.این خیلی ساده است ، اکثر غریب به اتفاق نتایج تحقیقاتی دقت accuracy را گزارش می دهند و بسیار از پروژه های عملی نیز به همین صورت عمل می کند.این یک رویه و معیار پیش فرض است.
اشتباه این روش کجاست ؟ دقت و کارایی یکی از ساده ترین روش های اندازه گیری است که باعث سردرگرمی و اشتباه در بسیاری از مسائل دنیای واقعی است.در حقیقت بهترین راه حل استفاده از دقت و کارایی و یک معیار فراگیری برای ارزیابی است.

اشتباه روش دقت و کارایی در کجاست ؟
برای نشان دادن مسائل ، اجازه بدهید با یک مثال با دو کلاس و دسته شروع کنیم.هر دسته بند برای  حوزه این مسائله نمونه ایی از دو کلاس را مشاهده میک ند و خروجی نیز یکی از دو امکان Y یا N است صرف نظر از مجموعه آزمایشی و دسته بندی خاص مسائله شما می توانید هر یک از تصمیمات زیر را بگیرید :
۱- نمونه های مثبتی که به عنوان مثبت دسته بندی شده اند( نمونه های صحیحی که به درستی دسته بندی شده اند ) که true positive نامیده می شوند
۲- نمونه های مثبتی که به اشتباه ، منفی دسته بندی شده اند(نمونه های صحیحی که به اشتباه به صورت اشتباه دسته بندی شده اند) false negative
۳-یک نمونه  منفی که به عنوان منفی دسته بندی شده  ( نمونه های اشتباهی که به درستی به صورت اشتباه دسته بندی شده اند)
true negative
۴-یک نمونه منفی به صورت نادرست به عنوان مثبت دسته بندی شده است( نمونه اشتباهی که به اشتباه به عنوان صحیح  دسته بندی شده است)false  positive
 می توانیم یک ماتریکس ۲×۲ با ستونهای با عنوان دسته های صحیح ( واقعی) و سطرحهایی به عنوان دسته های فرض شده ( آنهایی که حد زده ایم و به نمونه آزمایشی نسبت داده ایم)ایجاد کنیم.این ماترکیس معروف به confusion matrix یا contingency table (جدول احتمال) می باشد.نمونه آن ار در زیر می بینیم :بدنه ماریکس شامل شمارش تعداد دسته بندی های صحیح و شمارش تعداد دسته بندی های ناصحیح می باشد.
از طریق این جدول دقت و کارایی به راحتی با جمع قطرها و تقسیم آن بر کل مقادیر جدول  بدست می آید :
Accuracy=True Positive+true negative/True Positive+True Negative+False positive+False Negative


مشکل با عدم تعادل دسته(کلاس ، طبقه )
دقت و کارایی با همه نمونها رفتار مشابهی دارد و تنها درصدی از پاسخ های صحیح را گزارش می دهد. دقت و کارایی زمانی می تواند مفید باشد که ما با مجموعه های داده متعادل ( یا تقریبا متعادل) سر و کار داشته باشیم.چیزی مثل 50/50 و اگر بیشتر از این بود و تعادلی وجود نداشت دقت و کارایی  accuracyما را گمراه می کنند.مجموعه داده ای را فرض می کنیم که با نسبت 99:1 از منفی ها و مثبت ها تشکیل شده است.به سادگی می توان حدس زد که دسته ای را که 99٪ دقت و کارایی را در بر دارد چه دسته است.
در دنیای واقعی ، حوزه مسائل غیر متعادل یک قانون و واقعیت است تا یک استثنا. خارج از محیط آکادمیک هرگز با یک مجموعه داده متعادل برخورد نخواهید کرد.دلیل آن هم بسیار آشکار و سر راست است.در بسیاری از موارد ، یادگیری ماشین برای پردازش جمعیت هایی شامل تعداد زیادی نمونه منفی ( ناخوشایند) و تعداد کمتری نمونه مثبت ( مورد دلخواه خوشایند )مورد استفاده قرار میگیرد.نمونه ای برای چنین حوزه هایی تشخیص تقلب هستند  ( ۱٪ تقلب یک مسائله و مشکل خیلی بزرگ است ) ، غربالگری HIV (در آمریکا حدود 0.4٪ است) ، پیش بینی تشخیص خرابی دیسک درایو (تقریبا 1٪ در سال )، نرخ خرابی دستگاه ههای یک کارخانه ( 0.1٪) و موارد بسیاری دیگر که در اینجا آورده نشده است.همانطور که در مثال ها می بینید عدم تعادل در هر کجا وجود دارد پس تقریبا با هیچ مجموعه داده ای روبه رو نخواهیم بود که در آن تعادل وجود داشته باشد .
چگونه این عدم تعادل در مجموعه های داده ارزیابی دسته بندی ما را پیچیده می کند. در ادامه با یک مثال مسائله را روشنتر می نماییم. می خواهیم کدام بدانیم که احتمالا کدام یک از مشتریان به زودی قرارداد خود را کنسل می نماید. نیمه بالایی دیاگرام جمعیت آموزشی Training population را نشان می دهد.ما جمعیت را به دو نیمه یکی مثبت و دیگری منفی متعادل نموده ایم و در نهایت دو دسته A و B را آموزش می دهیم.هر کدام از آنها میزان درصد خطای مشابهی را ایجاد می کند ، بنابراین در این مجموعه داده خاص دقت و کارایی آنها یکسان است، همانگونه که بوسیله ناحیه قرمز در نیمه بالایی نمایش داده شده است.
دیاگرام نیمه پایینی دو دسته مشابه در محیط آزمایشی testing را نمایش می دهد که در آن جمعیت از مردم که انصراف می دهند ۱۰ ٪ و جمعیتی که انصراف نمی دهند ۹۰٪ می باشد.این نمونه بسیار به واقعیت نزدیک تر است.توجه کنید که حالا A از وضعیت بسیار بدتری برخوردار است زیرا خطاهای مربوط به آن False Positive هستند.( مقادیری که صحیح نیستند ولی به اشتباه مثبت ارزیابی شده اند).دو درس از این مثال می توان گرفت.اول اینکه باید در مورد دسته بندی خود بیشتر از آنچه دقت accuracy به ما می گوید بدانیم و دوم اینکه صرف نظر از جمعیتی که شما عملیات آموزش را در آن انجام داده اید ، باید همیشه در یک جمعیت واقعی نیز آزمایش انجام داده و دسته بندی های خود را مورد امتجان قرار دهید.
مسائله با هزینه های خطا ( اشتباه ) :
مسائله دومی نیز وجود دارد.فرض کنید بر روی دامنه مسائله کلیک بر روی آگهی های تبلیغاتی مطالعه انجام می دهیم. نرخ مورد اتظار ( دسته پیشین class prior ) کلیک تقریبا 0.09٪ است. این بدان معناست که دسته بندی که بدون قید شرط می گوید نه کاربر کلیک نخواهد کرد دارای دقت 99.91٪ است.چه چیزی در خصوص این تفسیر اشتباه است. به طور جدی هیچ چیز .این کارایی بسیار عالی است البته اگر دقت و کارایی accuracy همان چیز باشد که گفته شد و مورد توجه ماست.اما مسائله این است که ما به بعضی از کلاس ها توجه بیشتری نسبت به بقیه داریم.در این مورد به آن 0.09٪ درصدی از مردمی که روی پیام های تبلیغی کلیک می کنند خیلی بیشتر از آن 99.91٪ درصدی که کلیک نمی کنند توجه داریم. برای اینکه در خصوص این موضوع دقیقتر شویم در خصوص اشتباهاتی که ممکن است انجام دهیم بیشتر دقت می کنیم.یک پیام تبلیغاتی را به مردمی نمایش می دهیم که روی آن کلیک نمی کنند  ( False Positive در ماتریکس بالا ) خیلی بد نیست اما نمایش تبلیغات به مردمی که روی آن کلیک خواهند کرد (False Negative ) خیلی بدتر است.هدف قرار دادن صحیح مردم برای یک پیام تبلیغاتی هدف نهایی ما برای ساخت یک دسته بند در اولین قدم است.
هزینه های خطای مختلف در اغلب حوزه ها وجود دارد.در تشخیص دارو ، هزینه تشخیص سرطان هنگامی که موجود نبودن آن( واقعی نبودن آن) نسبت به از دست دادن یک نمونه درست متفاوت است.در دسته بندی اسناد ، هزینه بازیابی یک سند غیر ضروری از هزینه از دست دادن یک سند مرتبط و مورد نظر ما متفاوت است.
در مورد مجموعه های داده عمومی چطور ؟ ( مجموعه داده هایی که برای منظور یادگیری ماشین تهیه شده اند)
اگر شما با پایگاه داده هایی شبیه مجموعه داده های UCI کار کنید ،ممکن است متوجه شوید که مجموعه های داده مشکلاتی را که تا کنون ذکر شد را ندارند ، دسته ها معمولا متعادل هستند و ههنگامی که اطلاعات مربوط به هزینه خطا تهیه می شود ، ه نظر می رسد که دقیق و بدون مشکل هستند.در حالی که این مجموعه های داده از مسائل واقعی بدست آمده اند و تولید شده اند ، در اغلب اوقات قبل از نهایی شدن پاک سازی شده اند و به طور مصنوعی متعادل گردیده و دارای هزینه های خطای دقیق هستند.
معیار های ارزیابی دیگر
در این نقطه قانع شده ایم که بدست آوردن دقت و کارایی دسته بندی با روش های ساده ای که ذکر شد معیار اندازه گیری ضعیفی برای حوزه ها مسائل  در دنیای واقعی هستند پس به همین دلیل معیارهای ارزیابی دیگری بدین منظور توسعه داده شد و این نکته مهم را به خاطر می سپاریم که همه چیز به سادی روشی که در confusion matrix گفته شد نیست.
در ذیل به چند معیار که ممکن است با آن برخورد داشته باشیم ذکر می شود :
true positive rate = TP/(TP+FN) = 1 − false negative rate
false positive rate = FP/(FP+TN) = 1 − true negative rate
sensitivity = true positive rate
specificity = true negative rate
positive predictive value = TP/(TP+FP)
recall = TP / (TP+FN) = true positive rate
precision = TP / (TP+FP)
F-score (میانگین هارمونیک)precision and recall -
F=2*( precision * recall / precision + recall)
G-score (میانگین هندسی-گئومتریک)precision and recall -
در این قسمت مثال هایی از false positive و false negative می آوریم.
امنیت فرودگاه : یک false poitive هنگامی رخ می دهد که تعدادی آیتم مثل کلید و یا سکه به اشتباه به عنوان سلاح در نظر گرفته شد و دستگاه امنیتی شروع به بوق زدن می کند.
کنترل کیفیت : false positive زمانی رخ می هد که یک آیتم با کیفیت خوب دور انداخته شود و false negative هنگامی است که آیتم با کیفیت پایین پذیرش شود
یک نرم افزار آنتی ویروس : false positive زمانی رخ می دهد که فایل های نرمال به عنوان ویروس در نظر گرفته شوند
غربالگری پژشکی : انجام یک تست پزشکی کم هزینه برای گروه بزرگی ازمردم می تواند false positive های بسیاری را رقم بزند ( به شما بگوید بیمار هستید در صورتی که نیستید ) و از شما بخواهد که تست های بیشتری را انجام بدهید.

آنها می گویند که شما انجام داده اید آنها می گویند که شما انجام داده اید
False Negativeآنها صحیح می گویندشما واقعا انجام داده اید
آنها صحیح می گویندfalse positiveشما واقعا انجام نداده اید
نظرات (0)
نام :
ایمیل : [پنهان میماند]
وب/وبلاگ :
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)