LOGIN
ثبت نام یا ورود
Avatar
هنوز ثبت نام نکرده اید؟

هم اکنون عضو پلاک آبی شوید .و به اطلاعات وب سایت ما دسترسی داشته باشید

تنظیم مجدد کلمه عبور - نام کاربری را فراموش کرده ام

نام کاربری
کلمه عبور
مرا به خاطر بسپار

placabi articles

اجرای پروژه رده بندی در پایتون با الگوریتم شبکه عصبی اجرای پروژه رده بندی درپایتون با به‌کارگیری الگوریتم شبکه عصبی

اجرای پروژه رده بندی در پایتون با الگوریتم شبکه عصبی

  • این مورد را ارزیابی کنید
    (13 رای‌ها)

معرفی الگوریتم شبکه عصبی ، مزایای کاربرد زبان برنامه نویسی پایتون در داده کاوی ، و اجرای یک نمونه پروژه داده کاوی با الگوریتم شبکه عصبی در Python برای رده بندی و تعیین کلاس داده ها

شبکه عصبی مصنوعی یا Artificial Neural Networks

شبکه عصبی مصنوعی یا ANN، یک سامانه پردازشی داده ها است که از مغز انسان ایده گرفته و پردازش داده ها را به عهده پردازنده‌های کوچک و بسیار زیادی سپرده که به صورت شبکه‌ای به هم پیوسته و موازی با یکدیگر رفتار می‌کنند تا یک مساله را حل نمایند. شبکه عصبی مصنوعی سیستم‌ها و روش‌های محاسباتی نوینی هستند که برای یادگیری ماشینی، نمایش دانش، و در انتها اعمال دانش به دست آمده در جهت بیش‌بینی پاسخ‌های خروجی از سامانه‌های پیچیده مورد استفاده قرار می‌گیرند.

در این شبکه‌ها به کمک دانش برنامه نویسی، ساختار داده ای طراحی می‌شود که می‌تواند همانند نورون عمل کند. به این ساختارداده، نورون گفته می‌شود. سپس با ایجاد شبکه بین این نورون‌ها و اعمال یک الگوریتم آموزشی به آن، شبکه آموزش داده می‌شود.

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

وقتی که ارتباطات پیچیده بین ورودی‌ها و خروجی‌ها مدلسازی می‌شوند و یا الگوهایی پدیدار می‌شوند، شبکه های عصبی به‌عنوان ابزاری برای مدلسازی داده‌های آماری غیرخطی به‌کار گرفته می‌شوند.

قابلیت‌های شبکه عصبی مصنوعی یا ANN

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

 

ویژگی‌های شبکه های عصبی

1- قابلیت یادگیری و تطبیق پذیری ANN

قابلیت یادگیری یعنی توانایی تنظیم پارامترهای شبکه عصبی. برای این منظور نمونه‌های اولیه را به شبکه اعمال می‌کنند. شبکه، پارامترها را بر اساس این نمونه ها تنظیم می کند. اگر نمونه های جدید به این شبکه که به این طریق آموزش دیده، اعمال شود، مي‌توان خروجی مناسب را با درصد خطای کوچک به‌دست آورد. به این ترتیب شبکه های عصبی می توانند با تغییر شرایط به صورت هوشمندانه، خود را تطبیق يا اصلاح نمايند.

2- قابلیت تعمیم پذیری شبکه های عصبی

پس از آن که نمونه‌های اولیه به شبکه آموزش داده شد، شبکه می تواند در مقابل ورودی‌های آموزش داده نشده (ورودی‌های جدید) قرار گیرد و یک خروجی مناسب تولید نماید. این خروجی بر اساس مکانیسم تعمیم، که چیزی جز فرایند درون‌یایی نیست، به دست می‌آید.

3- پردازش موازی

هنگامی که شبکه عصبی در قالب سخت افزار پیاده می‌شود، سلول‌هایی که در یک تراز قرار می‌گیرند، می‌توانند به طور هم‌زمان به ورودی‌های آن تراز پاسخ دهند. این ویژگی باعث افزایش سرعت پردازش مي‌شود. در واقع در چنین سیستمی، وظیفه کلی پردازش بین پردازنده‌های کوچک‌تر مستقل از یکدیگر توزیع می‌گردد.

4- مقاوم بودن

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

5- قابلیت تقریب عمومی در شبکه های عصبی

شبکه های عصبی چند لایه، با یک یا چند لایه مخفی به شرط آن که تعداد نرون‌های لایه‌های مخفی کافی داشته باشند، می توانند هر تابع غیرخطی پیوسته‌ای را در فضای ترکیبی تخمین بزنند.

مغز انسان، هوش، و ایده‌ی شبکه عصبی

با توجه به اینکه محققان تاکنون نتوانسته‌اند درباره‌ی عملکرد مغز انسان که در واقع محل تجزیه و تحلیل (اتاق فرمان) ماشین بیولوژیکی موجودات زنده است تعریف واقعی ارائه نمایند، لذا پاسخ به این سوال که «هوش چیست؟» به سادگی امکان پذیر نیست و نمی توان پاسخی روشن و شفاف ارائه نمود.

با این حال، ماشین بیولوژیکي را می‌توان با قابلیت‌های زیر مورد بررسی قرار داد:

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

در کانال تلگرامی ما بخوانید
در کانال تلگرامی ما بخوانیدشبکه عصبی - @placabi

 

الگوریتم شبکه عصبی در داده کاوی

در بحث داده کاوی الگوریتم های بسیاری به منظور دسته بندی، رده بندی و پیش بینی به‌کارگرفته می‌شوند که در این بین، الگوریتم شبکه عصبی یکی از الگوریتم های مطرح و پرکاربرد به شمار می‌رود. از جمله کاربردهای شبکه عصبی در بازشناسی الگو از طریق رده بندی یا Classification می‌باشد.

یک شبکه‌ی عصبی بر خلاف کامپیوترهای رقمی که نیازمند دستورات کاملا صریح و مشخص است، به مدل‌های ریاضی محض نیازی ندارد! بلکه مانند انسان، قابلیت یادگیری توسط تعدادی مثال مشخص را دارد. یک شبکه‌ی عصبی مصنوعی باید به‌صورتی پیکره بندی شود که از مجموعه‌ای از ورودی‌ها، مجموعه‌ای از خروجی‌های مورد نظر را ایجاد کند.

ساختار این الگوریتم بدین شکل است که بین داده های ورودی و داده های خروجی، یک و یا تعدادی لایه‌ی فرضی که به آن Hidden Layers گفته می‌شود در نظر گرفته می‌شود. این لایه های مخفی شامل تعدادی Node می‌باشند که هریک از این Node ها به‌وسیله‌ی اتصال‌های وزن‌دار به یکدیگر متصل می‌شوند تا ساختار عصبی مشابه ساختار شکل زیر را به وجود بیاورند.

روش‌های مختلفی برای تعیین نقاط قوت اتصال وجود دارد. یکی از این روش‌ها، تعیین وزن به‌صورت مستقیم با استفاده از دانش قبلی است. راه دیگر، آموزش شبکه عصبی به‌وسیله‌ی تغذیه با الگوهای آموزشی و اجازه داده به آن برای تغییر وزن‌ها بر اساس قوانین آموزشی می‌باشد.

شبکه در حین یادگیری با تنظیم این وزن‌ها قادر است برچسب درست را برای کلاس داده چندتایی‌های ورودی پیشگویی کند. در این الگوریتم، با تکرار، مجموعه‌ای از وزن ها آموزش دیده می‌شوند تا برچسب کلاس داده چندتایی‌های ورودی را پیش گویی کنند. البته یک شبکه عصبی می‌تواند شامل چند لایه‌ی نهان نیز باشد و خروجی هر لایه، بعد از وزن دهی و به صورت هم‌زمان به عنوان ورودی لایه بعد از خود عمل کند.

رده بندی درپایتون با به‌کارگیری الگوریتم شبکه عصبی

به‌کارگیری زبان برنامه نویسی پایتون در داده کاوی

زبان برنامه نویسی پایتون در چند سال گذشته دارای سیر صعودی از لحاظ استفاده در بین متخصصین علم داده و یادگیری ماشین در جهان بوده است. دلایل زیر در محبوبیت این زبان برنامه نویسی جهت استفاده در داده کاوی موثر بوده‌اند:

  • Python جامعه‌ی بسیار فعالی برای توسعه دارد، جامعه‌ی کاربری بزرگی که نه تنها پاسخ به سوالات و مشکلات ‌را تضمین می‌کند، بلکه این اطمینان‌را به وجود می‌آورد که ابزارهای فعلی نیز توسعه داده خواهد شد.

  • پایتون اسپانسرهای قدرتمندی همچون Google دارد، که می‌توان با خیالی آسوده به آن‌ها اطمینان کرد.

  • پایتون کاربردهای زیادی در بیگ دیتا و داده کاوی دارد.

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

  • سرعت، اطمینان و بهینگی این زبان برنامه سازی در اجرای برنامه ها باعث اطمینان برنامه نویس از عملکرد در دنیای واقعی می شود.

  • یادگیری پایتون آسان است و منابع رایگان فراوانی برای آموزش زبان برنامه نویسی Python وجود دارد.

 

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

بیاموزیم

درباره‌ی کاربرد پایتون در داده کاوی بیشتر بدانیم

مقایسه زبان های برنامه نویسی R و Python
بیاموزیم

 

اجرای پروژه رده بندی در Python با به‌کارگیری الگوریتم شبکه عصبی برای تعیین کلاس داده ها

در ویدئوی زیر، علیرضا قره داغی با به‌کارگیری الگوریتم شبکه عصبی روی یک دیتاست ساده، بالاترین دقت این الگوریتم را برای رده بندی یا Classification، و تعیین کلاس داده محصولاتی با ویژگی‌های مختلف در نرم افزار پایتون به‌دست می‌آورد:

توسعه مهارت با حل تمرین

با بکارگیری مدل شبکه عصبی (MLP) و دیتاست Car Evaluation و تغییر پارامترهای این مدل، به بهترین config تنظیمات شبکه عصبی برسید. دقت کنید که منظور از این تغییرات بکارگیری حلقه های for تودرتو می‌باشد تا بتوانید مقادیر مختلفی را برای مدل در نظر گرفته و مدل را به ازای آن مقادیر بررسی کنید.

راهنمایی: خروجی این تمرین بهترین دقت حاصله از مدل شبکه عصبی و مقادیر پارامترهایی است که بهترین دقت به ازای آن ها تحقق می‌یابد. بازه پیشنهادی مقادیر:

  • تعداد سطح (بین 5 تا 20)
  • هر 4 مقدار ممکن Activation
  • مقدار learning_rate_init (بین 0.01 تا 0.2 با گام پرش 0.05)
  • مقدار Max_iter (بین 100 تا 1000 با گام پرش 50)

در فیلمک زیر، علیرضا قره داغی به حل تمرین بالا پرداخته است:

رده بندی در پایتون با الگوریتم شبکه عصبی

 

<p>

دانلود دیتاست برای انجام پروژه

File name: Car_Evaluation.xlsx

5924 514
</p>

خواندن 6103 دفعه آخرین ویرایش در دوشنبه, 07 اسفند 1396 22:36
علیرضا قره داغی

کارشناس صنایع شرکت پلاک آبی

 

 

عضو تیم تولید محتوای وب سایت و شبکه‌های اجتماعی شرکت پلاک آبی

دانشجوی کارشناسی مهندسی صنایع دانشگاه صنعتی شریف

 

کاربرانی که در این گفتگو شرکت کرده اند

  • مهمان - سمانه

    سلام. چطوری می تونیم توی دوره آموزش داده کاوی با پایتون شما شرکت کنیم؟ آیا در این دوره متن کاوی در پایتون رو هم آموزش می دین؟

  • مهمان - saraj

    سلام. ممنون از این ویدیوی مفید. یک سوال داشتم. من کد رو اجرا کردم ولی هر بار که کد رو run می کنم نتیجه متفاوتی میگیرم. میشه راهنمایی کنید چرا هر بار مقدار پارامترا تغییر میکنه؟

  • سلام،
    در ارتباط با جواب های متغیر شبکه عصبی، دلیل این هست که الگوریتم های داده کاوی برای مدلسازی خود، از یکسری رشته اعداد تصادفی استفاده میکنن که در هربار اجرا این رشته ی تصادفی از اعداد تغییر میکند. برای اینکه بتوانید چند الگوریتم رو با هم مقایسه کنید و در هر اجرا جواب ثابتی بگیرید. باید در ابتدای کدتون، با دستور زیر مشخص کنید تا از یک رشته ثابت برای مدلسازی استفاده بشه:

    np.random.seed (number)

    عبارت بالا را در ابتدای کدتون و بعد از کتابخانه numpy قرار بدید و به جای عبارت number یک عدد دلخواه وارد کنید.
    باتشکر از لطف شما

نظر خود را اضافه کنید.

ارسال نظر به عنوان مهمان

0
نظر شما به دست مدیر خواهد رسید
 تماس با ما

تلفن: 09211437289
پست الکترونیک:
info @ p l a c a b i . com

 

We use cookies to improve our website. By continuing to use this website, you are giving consent to cookies being used. More details…