به نام خدا

۱. مقدمه

مبنای این پروژه بر اساس مسابقه‌‌ای است که در سایت Kaggle.com قرار داده شده است. برای مشاهده صفحه اصلی این مسابقه اینجا را کلیک کنید. در این مسابقه از ما خواسته شده است که برنامه با یادگیری سابقه ۱۲ ساله جرم و جنایت در شهر سان‌فرانسیسکو، بتواند نوع جرم را برای هر جنایت جدیدی که به وقوع می‌پیوندد پیش‌بینی کند. لیست اطلاعات این داده های ۱۲ ساله عبارتند از

  • تاریخ و ساعت وقوع جرم

  • نوع جرم ( موضوعی که قرار است توسط برنامه در دیتا ست های آزمون ، تشخیص داده شود)

  • توضیحات بیشتر در باره ی جرم ( که این توضیحات فقط در داده های واقعی موجود است)

  • روز هفته ی وقوع جرم

  • نام دپارتمان پلیس مسئول رسیدگی به پرونده

  • نتیجه ی بررسی پرونده ( که این توضیحات فقط در داده های واقعی موجود است)

  • آدرس محل وقوع جرم

  • طول جغرافیایی محل وقوع جرم

  • عرض جغرافیایی محل وقوع جرم

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

تصویر ۱ - نما هایی از نقشه-زمانبندی وقوع جرم در شهر سانفرانسیسکو

این صفحه در واقع به ما یک دید و شهود کلی در باره ی ذات دسته ای بودن جرائم می دهد و این که چگونه در واقعیت یک سری الگوی خاص در انجام آن ها وجود دارد. این دید ما را به سمت الگوریتم های دسته بندی قابل مشاهده سوق میدهد

۲. کارهای مرتبط

یکی دیگر از صفحات مرتبطی که خود سایت Kaggle.com به ما برای آشنایی بیشتر با مسئله معرفی میکند نقشه ی جرائم در شهر سانفرانسیسکو میباشد که حالت جزئی تری از چیزیست که در مقدمه دیدید.


در اینجا دو الگورتیم برای پیاده سازی یک مدل که از طریق یادگیری مجموعه داده بتواند به داده های جدید پاسخ دهد مطرح میشود[1].

  1. الگوریتم بیزین

الگوریتم دسته بندی بیز که بر اساس قاعده ی بیز در احتمالات مطرح میشود. قاعده ی بیز با معادله اصلی زیر مطرح میکند که فرض می‌کنیم B_1,... ,B_k] یک افراز برای فضای نمونه‌ایS تشکیل دهند. طوری که به ازای هر j=1,... ,k داشته باشیمP(B_j)>0] و فرض کنید A پیشامدی با فرضP(A)>0 باشد، در اینصورت به ازای i=1,... ,k داریم:

برای نمونه یک میوه ممکن است پرتغال باشد. اگر نارنجی و کروی با شعاع حدود ده سانتی‌متر باشد. اگر این احتمالات به درستی به همدیگر وابسته باشند نایو بیز در تشخیص اینکه این میوه پرتغال است یا نه بدرستی عمل خواهد کرد.
الگوریتم بیزین ساده به دلیل سرعت بالا و سادگی پیاده سازی در بسیاری از کاربردها مورد استفاده گسترده قراره گرفته اند . فرض کنیم تعداد سابتی کلاس در اختیار داریم ، برای هر کلاس cِ بردار احتمال Θ که در آن n نشان دهنده تعداد کل داده ها و تتای ci بیانگر احتماد رخداد داده ی i ام در کلاس c است به این ترتیب برچسب هر مجموعه بنا بر رابطه ی زیر تعیین خواهد شد

  1. درخت تصمیم


    ساختار درخت تصمیم در یادگیری ماشین، یک مدل پیش بینی کننده می باشد که حقایق مشاهده شده در مورد یک پدیده را به استنتاج هایی در مورد مقدار هدف آن پدیده نقش می کند. تکنیک یادگیری ماشین برای استنتاج یک درخت تصمیم از داده ها، یادگیری درخت تصمیم نامیده می شود که یکی از رایج ترین روش های داده کاوی است.
    این ساختار تصمیم گیری می تواند به شکل تکنیک های ریاضی و محاسباتی که به توصیف، دسته بندی و عام سازی یک مجموعه از داده ها کمک می کنند نیز معرفی شوند. داده ها در رکوردهایی به شکل (x, y) = (x, x, x3…, x, y) داده می شوند. با استفاده از متغیرهای x,x,..,x سعی در درک، دسته بندی یا عام سازی متغیر وابستهء Y داریم.

  2. مقایسه بین دو الگوریتم
    بعد از پیاده سازی هر دو الگوریتم روی مسئله ی مطرح شده مقایسه بین میزان کارایی و صحت برنامه ها به این صورت بوده است


| تابع |دسته بندی درست| دسته بندی غلط | دقت | فراخوانی |F-Measure 1 |
|:-----------------|:---------:|:-------------:|:----------:|:---------:|:---------:|
| الگوریتم بیزین | 70.8124% | 29.1876% | 0.664 | 0.708 | 0.675 |
| درخت تصمیم گیری | 83.9519% | 16.0481% | 0.835 | 0.84 | 0.826 |

نتایج حاصل از بررسی کار های مرتبط با این پروژه نشان میدهد راه حل یادگیری درخت تصمیم گیری مناسب ترین برای ادامه ی پروژه میباشد

۳. آزمایش‌ها

۴. کارهای آینده

۵. مراجع

[1] Rizwan Iqba ,Masrah Azrifah Azmi Murad, Aida Mustapha,Payam Hassany Shariat Panahy, and Nasim Khanahmadliravi, "An Experimental Study of Classification Algorithms for Crime Prediction"

۵.۱. پیوندهای مفید


  1. محاسبه ای از ترکیب دقت و فراخوانی

وحید خرازی

سلام
به نظر می‌رسه درک نسبی و خوبی از کلیت روش حل مساله خودتون دارین و یک کار مشابه رو مطالعه کردین. البته انتظار ما در این فاز کمی بیش‌ از این بوده است؛ ما انتظار داشتیم که شما جستجوی عمیق‌تری درباره‌ی مساله‌ای که انتخاب کرده‌اید داشته باشید و به شناخت بهتری از مساله برسید؛ بهتر بود چندین روش مختلف را می‌دیدید و در این‌جا توضیح می‌دادید. سعی کنید قبل از شروع فاز بعدی منابع و مقالات جدید و بروزتری را مطالعه کنید و در لیست مراجع خودتان بیاورید. چند نکته کلی در مورد متنی که نوشتید هم به نظرم می‌رسه که لیست‌وار عرض می‌کنم:

  • هیچ‌کجا توضیح ندادید که چرا روش‌های بیز و درخت تصمیم برای مساله‌ی شما راه حل خوبی هستند. لطفا این موضوع را بعدا توضیح دهید.

  • سعی کنید قواعد نگارش رو دقیق‌تر رعایت کنید؛ رعایت نیم‌فاصله‌ها، نشانه‌گذاری‌ها، جمله‌بندی مناسب، درست‌نویسی(مثلا ثابت نه سابت!) و فرمول‌نویسی بهتر خواندن متن شما را راحت‌تر می‌کنه.

  • شکل‌ها حتما باید توضیح و شماره داشته باشند.

  • در هر متنی که می‌نویسید اگر جایی از متن برداشتی از مقاله یا متنی بوده است یا مستقیما ترجمه و نقل قول عبارات است حتما و حتما و حتما باید همان‌جا به آن مطلب ارجاع بدهید وگرنه کار شما مصداق دزدی! می‌شه حتی اگر در مراجعتون اسم اون مطلب رو آورده باشید.

  • مراجع را با فرمت کامل بیاورید.(ذکر نام نویسنده، مجله، سال انتشار و ...)

  • برخی از توضیحاتتان گنگ است. سعی کنید در فاز بعد مطالب را دقیق‌تر و قابل فهم کنید. مثلا مثال پرتغالی که در توضیح بیز آورده‌اید. روش‌ها و الگوریتم‌ها را دقیق‌تر توضیح دهید و همانطور که گفتم بگویید که چرا این روش‌ها برای حل مساله شما مناسب هستند.

موفق باشید