برنامه تشخیص تقلب در آزمون:

فرض میکنیم که سیستمی که میخواهیم بر روی آن کار کنیم برای یک آزمون آنلاین طراحی شده ما دیتا هایی از آزمون های قبلی خود داریم و هدف آن است که با پردازش دیتاهای خام و دادن آنها به یک برای حل این مسئله از مقاله

The Detection of Cheating on E-Exams in Higher Education—The Performance of Several Old and Some New Indicators و
Supplementary Material

استفاده شده است دیتاستها شامل داده های خامی مشتکل از خاصیت های زیر هستند

تقلب کردن زمان پاسخ پاسخ اصلی پاسخ کاربر کاربر سوال
bool int int int int int

در این مسئله از دیتاست به اندازه ۱۰۰۰ ردیف برای آموزش الگوریتم و از دیتاست دیگری به اندازه ۱۰۰۰ ردیف برای تست استفاده شده است

در ابتدا یک سری اندیکاتور در نظر میگیریم که توضیحات تکمیلی در مورد هر کدام از آنها در مقالات نام برده شده موجود است سپس الگوریتم یادگیری خود را بر اساس ایندیکیتور های زیر آموزش میدهیم:

  • U3 Statistic:

    • ایندیکتوری که بدست میاورد هر آزمون دهنده چقدر به سوالات به صورت رندوم جواب داده است همچنین وزن سوالات سخت و آسان تر ( که بر اساس تعداد جواب های آزمون دهنده ها این وزن ها مشخص می شود) در محاسبه این اندیکاتور تاثیر میگذارد هر چقدر بزرگتر باشد به معنی پاسخ های رندوم تر است.
  • KL statistic:

    • در این ایندیکیتور زمان پاسخ یک کاربر به هر کدام از سوال ها بررسی می شود و نسبت به زمان کل پاسخ کاربر در نظر گرفته میشود عدد های بزرگتر به معنی احتمال تقلب بیشتر است.

پس از تبدیل داده های خام به این اندیکاتور ها دیتاستی شامل ستون های ایجاد میکنیم :

تقلب کردن kl statistic U3 Static
bool int int

در نهایت با استفاده از لاجستیک رگرشن مدل خود را آموزش دهیم

داده ها در پوشه دیتا موجود هستند که هر کدام شامل دو فایل هستن یک فایل پاسخنامه و در فایل دیگر چواب های دانش آموزان قرار دارد

در دیتای پاسخنامه ها هر ۳ ردیف نمایانگر یک توالی از دیتا ها برای هر کاربر است

  • در دریف اول تقلب کردن دانش آموز
  • در ردیف دوم جواب دانش آموز به ترتیب از سوال اول تا آخر
  • در ردیف سوم زمان جواب دادن به سوال نسبت به شروع آزمون

بر اساس تحلیل های انجام شده مدل ساخته شده قابلیت تشخیص صحیح ۹۷ درصد کسانی که تقلب نکرده اند و ۸۸ درصد کسانی که تقلب کرده اند میباشد