خانه / برنامه نویسی / پایتون / تشخیص اعداد دست نویس با استفاده از شبکه عصبی (بخش دوم)

تشخیص اعداد دست نویس با استفاده از شبکه عصبی (بخش دوم)

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

در کد بالا ما می اییم دیتا را به دو قسمت داده اموزشی و تست تقسیم بندی میکنیم اگه یادتون باشه در پست قبلی در مورد این که چرا این کار میکنیم صحبت کردیم داده های من برچست دار یعنی الگوریتم یادگیری که من استفاده میکنم باناظر الگوریتمهای با ناظر خروجی انها مشخص در زمان اموزش در digits.data داده ها قرار دارند که این داده ها بخشی از انها مربوط میشود به x_train و بخشی هم اختصاص میدیم به x_test و data.target برچسبهای هر داده مشخص شده که اختصاص داده شده به y_train و y_test در تابع train_test_spilit ما اومدیم ۲۰ درصد از داده ها دادیم به test یا ۰٫۲ و بقیه دادیم به train برای این که داده ها از یک جا انتخاب نشه اومدیم تصادفی انتخاب کردیم برای اختصاص داده به داده های اموزشی و داده های تست

بخشهایی که اهمیتی نداره ازش میگذریم این تیکه کد میاد نمایی از دیتا ست دست نویس به شما با اندازه ایی که براش مشخص کریدم برامون مشخص میکنه

اگه یادتون باشه گفتم برای بیشتر datasetها باید پیش پردازش انجام بدیم تا از نویز و دادههای پرت و اولویت داده به بعضی دادهها خود داری کنیم

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

در بخش scaler.transform میاییم داده ها را scale و normalize میکنیم تا دادههای تمیزی داشته باشیم در فرایند اموزش و تست

در کد بالا میاییم ساختار شبکه را میشخص میکنیم در این تمرین اومدیم از شبکه mlp استفاده کردیم که در این شبکه ما سه لایه داریم ورودی و لایه مخفی و خروجی در این کتابخانه فقط نیاز لایه مخفی مشخص کنیم که در این شبکه ما لایه مخفی ۲۰۰ در نظر گرفتیم و انتخاب دادهایی که به شبکه میدهیم تصادفی است که مقدار shuffle برابر با true مشخص کنید از لیست خودش تصادفی انتخاب میکند چون در این شبکه برای بخش خطا میاییم از mse استفاده میکنیم و احتمال داره در بهینه محلی گیر کنه میاییم از ترمی استفاده میکنیم تحت عنوان term momentum تابع فعال سازی که در نظر گرفتیم تابع لوجستیک و تعداد تکرار ۱۰۰۰ در نکر گرفتیم و نرخ اموزش ۰٫۰۰۱ بعد از مشخص کردم شبکه فرایند اموزش را انجام میدهیم که در فرایند اموزش دادههایی که پیش پردازش شده را برای فرایند اموزش میدهیم به شبکه

بعد از فرایند اموزش میرویم سراغ فرایند تست و داده هایی که شبکه ما ندیده را میدیم به شبکه و پیش بینی میکنیم که هر عکس که دادیم چه عددی است

تابع plot_confusion_matrix می اید برای شما ماتریس درهم ریختگی یا confusion_matrix براتون میکشه

تابع classification_reportمی اید براتون وضعیت کلاس بندی مشخص میکنه داده هایی که درست کلاس بندی شده یا اشتباه که به صورت ویژوال نمایش میدیم

 

 

در اخرین مرحله هم باید دقت شبکه بررسی کنیم

کد برنامه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *