برنامه نویسی و IT

آموزش یادگیری ماشین لرنینگ با پایتون

یادگیری ماشین لرنینگ با پایتون

مقدمه

عصر تکنولوژی در حالی روز به روز پیشرفت می کند که دیگر جایی برای ایده های قدیمی نمانده است مردم روز به روز بیشتر درگیر تکنولوژی می شوند و در این میان یکی از شاخه های هوش مصنوعی به نام یادگیری ماشین به عنوان یک علم جدید آمده است تا زحمت ما را باز کم تر کند و به همه وسایل تکنولوژی و نرم افزارها قدرتی را بدهد که خود بتوانند پیشرفت کنند(منظور از پیشرفت یادگیری از طریق داده های ماست).

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

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

 

آشنایی با ماشین لرنینگ با پایتون

آشنایی با ماشین لرنینگ با پایتون

قبل از هرچیز بهتر است بدانیم که در کل زبان برنامه نویسی پایتون چیست؟ آیا گوگل کلماتی که زیاد جستجو می شوند را در خود نگه نمی دارد؟ جواب تمام این سوالات مثبت است و اینکه باید بدانید که موتور جستجوی گوگل بی نهایت باهوش است و از تمام رفتار های کاربرانش مواردی را یاد می گیرد و از طریق این داده ها که گوگل آنها را گرفته و تحلیل کرده یاد می گیرد که استفاده کند (گوگل برند دوم جهان است و این فقط از طریق یک موتور جستجو است که به این موفقیت رسیده است)

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

یعنی با استفاده از زبان برنامه نویسی پایتون نرم افزار ها یا تکنولوژی هایی بسازیم که قابلیت یادگیری از داده های ما دارند درست مانند انسان که با استفاده از اطلاعاتی که دریافت می کند مسائلی را یاد می گیرد با ما همراه باشید تا آموزش یادگیری ماشین لرنینگ با پایتون را کامل کنیم (معرفی زبان پایتون، معرفی ماشین لرنینگ و در پایان آموزش یادگیری ماشین لرنینگ با پایتون).

پایتون چیست؟

آموزش یادگیری ماشین لرنینگ با پایتون را اینگونه آغاز می کنیم:

  • معرفی کامل زبان برنامه نویسی پایتون
  • پایتون یک زبان همه منظوره، شی گرا سطح بالا
  • متن باز و اسکریپتی است امروزه با زبان پایتون می توانید هر نوع برنامه ای توسعه دهید چه اپلیکیشن های تحت وب وبسایت ها
  • اپلیکیشن های موبایل
  • رباتیک و برنامه های مک ( سیستم عامل مخصوص رایانه های اپل ) و ویندوز ( سیستم عامل مخصوص اکثر رایانه ها در دنیا ).

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

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

مبحث آموزش یادگیری ماشین لرنینگ با پایتون مبحث مهمی است، چرا که یکی از اولین انتخاب ها برای ماشین لرنینگ این زبان است دیگر ویژگی مهم زبان برنامه نویسی پایتون متن باز بودن آن است.

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

این ویژگی بی نهایت مهم است چرا که باعث پیشرفت همه جانبه ی پایتون خواهد شد (تمام توسعه دهندگان جهان می توانند به پیشرفت پایتون کمک کنند).

 

آموزش یادگیری ماشین لرنینگ با پایتون؛ پایتون چیست؟

ویژگی های مهم پایتون

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

دیگر ویژگی مهم پایتون که شاید مهم ترین ویژگی آن باشید ساده بودن پایتون است. اگر می خواهید برای اولین بار یک زبان برنامه نویسی را یاد بگیرید پایتون یکی از بهترین گزینه هاست سادگی پایتون فقط مناسب تازه کاران نیست بلکه اگر نحو یک زبان ساده باشد، کدهای آن خوانا باشند و نزدیک به زبان انسان باشد (به این ویژگی زبان سطح بالا می گویند).

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

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

مزایای استفاده از پایتون

وقتی شما می خواهید یک عبارت را در پایتون نشان دهید، فقط بنویسید (“print Hello”) مزایای پایتون بی شمار هستند. اما فقط در این حد بدانید که پایتون به طور گسترده در یادگیری ماشین لرنینگ مورد استفاده قرار می گیرد.

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

“زبان های برنامه نویسی دو دسته هستند: دسته اول کسی از آنها استفاده نمی کند دسته دوم طرفدارانی دارد که مدام از آن شکایت می کنند”

 

 

پایتون در حال حاظر از مهمترین زبان های برنامه نویسی دنیاست

 

پایتون در حال حاضر از مهمترین زبان های برنامه نویسی دنیاست

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

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

بیشتر این استارت اپ ها نیاز به کارمندان تازه دارند و حتی اگر در هیچکدام از این شهرها نمی توانید به کار مشغول شوید، باز هم برای پایتون کارهای خوب در شهر های دیگر هم کار وجود دارد (در خارج از کشور نیاز به برنامه نویسان پایتون بسیار بیشتر است.

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

طبق اعلام StackOverFlow، زبان پایتون بیشترین درخواست تقاضا را در سال ۲۰۱۸ داشته است. در آمریکا نیز پایتون پردرآمدترین زبان برنامه نویسی دنیا بوده است (چون در حال حاضر پایتون در ایران همه گیر نیست این حقوق بسته به بسیاری از عوامل بین ۱ تا ۸ میلیون است). در ادامه بد نیست نگاهی به مقاله ی حلقه تکرار for در پایتون نیز داشته باشیم.

 

ویدیو پییشنهادی : آموزش زبان پایتون
آموزش زبان پایتون

 

ماشین لرنینگ

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

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

بازار کار ماشین لرنینگ

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

طبق اعلام وبسایت لینکدین شغل مهندسی حوزه یادگیری ماشین بین سالهای ۲۰۱۲ تا ۲۰۱۸ رشد ۱۰ برابری داشته است. یعنی حوزه یادگیری ماشین پررونق ترین شغل در سال ۲۰۱۷ به شمار می آید.

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

 

آموزش یادگیری ماشین لرنینگ با پایتون؛ بازار کار ماشین لرنینگ

صنعت خودرو با ماشین لرنینگ

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

آموزش قدم به قدم یادگیری ماشین لرنینگ با پایتون

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

  1. جمع آوری داده ها
  2. دسته بندی کردن داده ها
  3. تحلیل داده ها
  4. توسعه ی الگوریتم
  5. .بررسی الگوریتم تولید شده
  6. استفاده از الگوریتم جهت نتیجه گیری بهتر

در یادگیری ماشین لرنینگ به طور کلی سه نوع یادگیری وجود دارد که برای شروع باید آنها را بشناسید.

یادگیری ماشین، نظارت نشده

اولین روش برای یادگیری ماشین لرنینگ، یادگیری نظارت شده است. در این روش داده ها برچسب گذاری نمی شوند (مثلا اگر داده ها مجموعه ای عکس هستند ما با یک برچسب نشان نمی دهیم که این عکس یک ماشین است).

یعنی مجموعه ها داده ها فقط شامل ورودی است و خروجی متناسبی با ورودی ها وجود نخواهد داشت در واقع در این روش ماشین لرنینگ بر داده ها ناظری وجود ندارد و هدف برقرار کردن ارتباط بین ورودی و خروجی نیست.

یادگیری نظارت نشده روشی است برای پیدا کردن الگوهای (Patterns) میان داده ها، با یادگیری نظارت نشده قادر خواهیم بود که ساختار ها و الگو های پنهان میان داده ها را پیدا کنیم (برای اینکه بتوانید یادگیری ماشین لرنینگ به خوبی دنبال کنید باید انواع آن را بشناسید).

 

آموزش یادگیری ماشین لرنینگ با پایتون؛ یادگیری ماشین، نظارت نشده

یادگیری ماشین، نظارت شده

دومین روش جهت یادگیری ماشین لرنینگ روش نظارت شده است در این روش یادگیری ماشین برروی داده ها برچسب گذاری می شود و نظارت بر روی آنها انجام می شود.

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

یادگیری نیمه نظارت شده

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

قدم بعدی تقویت ریاضی است شما بدون دانش ریاضی بالا مسلما در یادگیری ماشین به مشکل خواهید خورد. از موارد مهمی که باید بدانید جبر خطی و تحلیل ریاضی (آنالیز ریاضی شامل مفاهیمی مثل حد، مشتق، توابع و …) است که می توانید از وب سایت مکتب خونه آموزش های جبر خطی را برای یادگیری شروع کنید.

یا اگر انگلیسی شما بسیار خوب است وبسایت  های خان آکادمی و MIT OpenCourseWare بسیار دوره های خوبی در این زمینه دارند.

اولی در زمینه تحلیل ریاضی و جبر خطی و دومی در زمینه ریاضی مورد نیاز یادگیری ماشین که می توانید روی آن حساب کنید (اگر می خواهید در مبحث یادگیری ماشین لرنینگ با پایتون خوب پیش بروید لطفا به ترتیب موارد را یاد بگیرید و عجله نکنید)

 

یادگیری نیمه نظارت شده

 

یادگیری ماشین لرنینگ با یادگیری ریاضیات است

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

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

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

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

 

از موارد مهم در شروع یادگیری ماشین لرنینگ با پایتون یادگیری ریاضیات است

 

کتابخانه Pandas

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

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

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

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

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

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

 

کتابخانه Pandas در یادگیری ماشین لرنینگ با پایتون

 

کتابخانه سایکیت لرن(Scikit-Learn)

مشهورترین کتابخانه برای شروع یادگیری سایکیت لرن است. این کتابخانه ابزارهای زیادی برای تحلیل داده ها و داده کاوی در اختیارتان قرار می دهد و شما می توانید از توابعی مثل regression clustering, model selection, preprocessing, classification در آن استفاده کنید. از ویژگی های فوق العاده SKlearn، سرعت بالای کار با آن است.

دیگر جای تعجب ندارد که چرا پلتفرم هایی شبیه به اسپاتیفای، Booking.com و J.P.Morgan از آن استفاده می کنند. منابع زیادی برای یادگیری سایکیت لرن در سطح وب وجود دارد که یکی از بهترین آنها خود وبسایت سایکیت لرن است.

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

 

کتابخانه سایکیت لرن(Scikit-Learn)

 

کتابخانه پای براین Pybrain

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

همچنین گفته می شود که این کتابخانه بسیار قدرتمند در جهت وظایف مربوط به یادگیری ماشین عمل می کند.

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

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

کتابخانه کراس(Keras)

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

اگر می خواهید در کمترین زمان ممکن ایده ی خود را عملی سازید حتما به فکر استفاده از کراس باشید همچنین کراس این قابلیت را دارد که روی تنسورفلو، Theano و CNTK اجرا شود.

جهت یادگیری ماشین لرنینگ با کمک کتابخانه کراس می توانید از کتب و مقالات یا وبسایت کراس کمک بگیرید (با سرعت بسیار زیاد به نتیجه دست یابید).

کتابخانه نام پای(NumPy)

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

 

 >>> B = arange(3)
>>> B
array([0, 1, 2])
>>> exp(B)
array([ 1. , 2.71828183, 7.3890561 ])
>>> sqrt(B)
array([ 0. , 1. , 1.41421356])
>>> C = array([2., -1., 4.])
>>> add(B, C)
array([ 2., 0., 6.])

 

در این مثال کار خاصی انجام نشده است. فقط نحوه فراخوانی برخی از توابع ریاضی سراسری (مانند سینوس، کسینوس یا …) NumPy و تعریف یا انتصاب آرایه در پایتون آورده شده است.

کتابخانه ایکس جی بوست(XGBoost)

پنجمین ابزار یادگیری، XGboot نام دارد. در واقع یک الگوریتم است که هم برای زبان R و هم برای زبان برنامه نویسی پایتون بصورت یک کتابخانه مجزا توسعه داده شده است.

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

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

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

 

ویدیو پییشنهادی : دوره ی دانشگاهی یادگیری ماشین
یادگیری-ماشین

مت پلات لیپ(matplotlib)

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

بعد برای درک بهتر داده ها با استفاده مت پلات لیپ داده ها را بصری سازی کنیم. در ادامه یک طرح را با استفاده از پایتون و مت پلات لیپ برنامه نویسی می کنیم(می توانید با توجه به مثال ها اندکی با نحو و استفاده از برخی کتابخانه ها در پایتون آشنا شوید).

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

import numpy as np
import matplotlib.pyplot as plt


t = np.arange)0.0, 1.0 + 0.01, 0.01)
s = np.cos)2 * 2*np.pi * t)
t[41:60] = np.nan


plt.subplot)2, 1, 1)
plt.plot)t, s, '-', lw=2)


plt.xlabel('time)s)')
plt.ylabel('voltage (mV)')
plt.title('A sine wave with a gap of NaNs between 0.4 and 0.6')
plt.grid)True)


plt.subplot(2, 1, 2)
t[0] = np.nan
t[-1] = np.nan
plt.plot(t, s, '-', lw=2)
plt.title('Also with NaN in first and last point')


plt.xlabel('time (s)')
plt.ylabel('more nans')
plt.grid(True)


plt.tight_layout()
plt.show()

 

مت پلات لیپ(matplotlib)

کتابخانه الی فایو(Eli5)

هفتمین کتابخانه جهت یادگیری ماشین لرنینگ کتابخانه الی فایو است. الی فایو در حقیقت یک پکیچ است برای زبان برنامه نویسی پایتون که از فریمورک ها و بسته های SKlearn, XGboot, lightning, Kreas, Catboot sklearn-crfsuite پشتیبانی می کند.

در واقع Eli5 یک بسته از زبان پایتون است که جهت دیباگ کردن کدها (بررسی خطاها و اجرای برنامه)، دسته بندی های یادگیری ماشین و تشریح پیش بینی های موجود در یادگیری ماشین به کار می آید.

کتابخانه کت بوست(Catboost)

کت بوست یک الگوریتم است برای تقویت گرادیان برپایه ی درخت تصمیم. به زبان ساده تر، این کتابخانه توسط مهندسان و محقیقن یاندکس (Yandex) توسعه داده شده است رایگان و متن باز است.

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

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

آموزش یادگیری ماشین لرنینگ با پایتون و تحلیل رگرسیون

تحلیل رگرسیون یک فرآیند آماری موجود در مدل های آماری برای تخمین روابط بین متغیر هاست و در یادگیری ماشین بی نهایت کاربردی است.

اگر مقداری گیج شده اید نگران نباشید با مطالعه ی علوم پایه و شروع برنامه نویسی از سطح مبتدی به ترتیب با همه مفاهیم برای یادگیری ماشین لرنینگ با پایتون آشنا خواهید شد)

from catboost import CatBoostRegressor
# Initialize data


train_data = [[1, 4, 5, 6],
              [۴, ۵, ۶, ۷],
              [۳۰, ۴۰, ۵۰, ۶۰]]


eval_data = [[2, 4, 6, 8],
             [۱, ۴, ۵۰, ۶۰]]


train_labels = [10, 20, 30]
# Initialize CatBoostRegressor
model = CatBoostRegressor(iterations=2,
                          learning_rate=1,
                          depth=2)
# Fit model
model.fit)train_data, train_labels)
# Get predictions
preds = model.predict)eval_data)

اعمال یک مدل طبقه بندی برروی GPU

( از دیگر موارد بسیار مهم در یادگیری ماشین لرنینگ طبقه بندی کردن داده ها است به این دلیل که با کتابخانه ی کت بوست کدها ساده تر خواهد بود مثال های بیشتری از یادگیری ماشین لرنینگ در پایتون در این جا نوشته شده است )

 

from catboost import CatBoostClassifier
 train_data = [[0, 3],
 [۴, ۱],
 [۸, ۱],
 [۹, ۱]]
train_labels = [0, 0, 1, 1]
 model = CatBoostClassifier(iterations=1000,
 task_type="GPU",
 devices='0:1')
 model.fit(train_data,
 train_labels,
 verbose=False)

 

قدم آخر در آموزش یادگیری ماشین لرنینگ با پایتون

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

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

 

ویدیو پییشنهادی : آموزش پیشرفته برنامه نویسی پایتون
آموزش پیشرفته برنامه نویسی پایتون

 

معرفی کتاب های آموزش یادگیری ماشین با پایتون

در رابطه با هر کدام از زبان های برنامه نویسی مختلف و تکنولوژی ها کتاب های زیادی چاپ شده اند(توجه داشته باشید که کتاب ها معمولا جامع تر و بهتر از ویدیو آموزشی هستند) ما در ادامه ی مبحث آموزش یادگیری ماشین لرنینگ با پایتون کتاب هایی را معرفی می کنیم که می توانید جهت یادگیری ماشین لرنینگ در پایتون آنها را بخوانید.

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

می توانید از یک دیکشنری استفاده کنید(لغات تخصصی زیادی را خواهید یافت مسلما اگر رشته شما کامپیوتر است) و نکته ی دوم اینکه زبان این کتاب ها بسیار ساده است پس آشنایی متوسط شما با زبان انگلیسی نیز می تواند کارآمد باشد برای درک کتاب های یادگیری ماشین لرنینگ در پایتون.

راهنمایی برای دانشمندان داده

یکی از بهترین کتاب های یادگیری ماشین لرنینگ، این کتاب توسط انتشاراتMedia  O’reilly عرضه شده است و می توانید نسخه ی الکترونیکی آن را نیز بخوانید تعداد صفحات کتاب ۴۰۰ صفحه است و توسط آندرس سی مویلر و سارا گویدو نوشته شده است درباره ی محتویات کتاب می توان گفت که اگر شما از زبان برنامه نویسی پایتون استفاده می کنید.

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

با استفاده از زبان پایتون و کتابخانه محبوب SKlearn نویسندگان کتاب برروی جنبه های علمی استفاده از الگوریتم های ماشین لرنینگ بجای ریاضی پشت آنها تمرکز کرده اند. اگر با کتابخانه های NumPy و matplotlib آشنایی داشته باشید مطالب بیشتری از کتاب دستگیرتان می شود با این کتاب شما این موارد را می آموزید:

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

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

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

 

کتاب یادگیری ماشین همراه با تفکر در پایتون(با رویکردی تست محور)

دومین کتاب برای شروع یادگیری ماشین لرنینگ باز هم کتابی از انتشارات O’reilly Media است با ۲۲۰ صفحه نویسنده ی کتاب متیو کیرک است. در این کتاب بدون اینکه ذره ای گیج شوید بصورت کاربردی یادگیری ماشین را فرا می گیرید.

در این کتاب با کتابخانه ها و تکنولوژی های NumPy, Pandas, SckitLearn, SciPy کار خواهید شد یک فصل از محتویات کتاب نیز به شبکه های عصبی اختصاص دارد از مواردی که در این کتاب می آموزید:

  1. مثال هایی از دنیای واقعی برای یادگیری ماشین لرنینگ و تست هر الگوریتم پیش رو
  2. قبل از شروع برنامه نویسی ، توسعه محور آزمون (TDD) برای نوشتن و اجرای تست ها اعمال شده است
  3. آموزش تکنیک هایی برای بهبود مدل های یادگیری ماشین با استخراج داده ها و توسعه ویژگی ها آورده شده است.
  4. در این کتاب جهت یادگیری بهتر ماشین لرنینگ با انواع الگوریتم ها نظیر K-Nearest Neighbors, neural network, clustering و … کار شده است.
  5. همچنین در این کتاب نگاهی به خطرات یادگیری ماشین مانند underfitting یا overfitting شده است.
  6. بنظر می رسد این کتاب با شیوه ی ساده تر و البته کاربردی تر از کتاب اول بدون اینکه شما را درگیر مطالعات آکادمیک کند کار یادگیری ماشین لرنینگ را بر عهده گرفته است می توانید نسخه ی الکترونیکی کتاب را دانلود کنید یا نسخه ی چاپی این کتاب را سفارش دهید(فعلا ترجمه ای از کتاب منتشر نشده است و فقط به زبان انگلیسی در دسترس است).

یادگیری ماشین لرنینگ با پایتون

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

ویژگی های کلیدی کتاب جهت آموزش یادگیری ماشین لرنینگ با پایتون:

برای ایجاد اقدامات شناختی هوشمندانه برای پروژه های خود از کتابخانه های پایتون مانند TensorFlow و Keras کتاب استفاده کرده است

به کار بردن الگوریتم های ماشین لرنینگ برای حل چالش هایی که امروزه دانشمندان داده با آنها روبرو می شوند

از قدرت پایتون برای کشف دنیای داده کاوی و آنالیز داده استفاده کرده است.

یادگیری ماشین لرنینگ با پایتون

 

چیزهایی که در این کتاب فراخواهید گرفت:

درک اجزای مهم در یادگیری ماشین لرنینگ و علوم داده

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

الگوریتم های ML را از ابتدا در Python ، TensorFlow و scikit-Learn اجرا کنید

این کتاب مناسب چه کسانی است

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

سعید هابطی

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

نوشته های مشابه

‫37 دیدگاه ها

  1. سلام. چقد مقاله خوب و کاربردی و کاملی بود. یه چند وقتی بود که داشتم درباره هوش مصنوعی و شاخه هاش تحقیق میکردم که بتونم یکیشو انتخاب کنم. واقعا متشکرم

  2. از نظر علمی مقاله خوبیه ولی پر از اشکالات نگارشی و املایی بود
    حاظر—< حاضر
    شاید باید!!! در قسمت مزایای پایتون

    1. سلام ..مشکلات برطرف شد.
      ممنون از اینکه مکتوب را دنبال می کنید و از توجه شما سپاسگزاریم.

  3. ضمن عرض سلام و خسته نباشید
    من میخوام داده کاوی با پایتون رو به صورت تخصصی یاد بگیرم. منتهی یادگیری خود زبان پایتون امری زمان بر و تموم نشدنی! هستش. برای شروع یادگیری ماشین و یا داده کاوی با پایتون، یادگیری کدوم بخش ها از زبان پایتون رو ضروری می دونید (تا من فقط همون ها رو بخونم و کار کنم)؟

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

    2. سلام.ممنون از راهنماییتون.
      در پردازش تصویر برنامه هایی نوشته میشه اما درصد خطایی دارن.که همون برنانه با یادگیری ماشین یا یادگیری عمیق بهتر از opencv عمل میکنه.
      بنظرتون پردازش تصویر به تنهایی به درد میخوره یادگرفتنش؟

  4. سلام خسته نباشید.ممنون از مقاله خوبتون.
    من به پردازش تصویر و یادگیری ماشین با پایتون علاقه دارم ولی به این نتیجه رسیدم تو ایران اکثر پروژه هایی که سفارش میدن مربوط به وب هس.
    آیا آینده شغلی بهتری برای یادگیری ماشین تو ایران مهیا خواهد شد بنظرتون؟؟
    ممنون

  5. ممنون بابت مطالب با جزئیات، خوبی که گذاشتین. کاملترین راهنمایی که برای شروع یادگیری ماشین به زبان فارسی خوندم.

  6. سلام با تشکر از مطالباین مفیدتونم میخواستم بپرسم این ماشین لرنینگ در حوزه ی زیست و شاخه هاش هم کاربرد داره یا فقط برای بچه های مهندسی؟

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

  7. سلام
    ممنونم از این اطلاعات خوبی که به اشتراک گذاشتین دوست عزیز فقط من یکم گیج شدم برای یادپیری ماشین لرنینگ ابتدا باید پایتون رو یاد گرفت؟ که یکی از دوستان گفتن زبان پایتون خیلی وقت گیر هست و شما گفتین مقدماتی رو بخونن یعنی همون کافیه ؟ دوم اینکه ایا لازمه SQL هم باید یاد گرفت ؟

    1. سلام
      پایتون یکی از بهترین و قوی ترین زبان ها می باشد که اتفاقا یادگیری آن بسیار آسان است و برخلاف موردی که بهتون گفتن که وقت گیره بسیار ساده است و زود میتوان یاد گرفت. بلد بودن sql در ماشین لرنینگ لزومی ندارد ولی آشنایی با دیتابیس و کوئری نویسی ممکن است در مواقعی به شما کمک کند ولی یادگیری آن لزومی ندارد. در واقع در کنار زبان پایتون، مفاهیم اولیه و تعاریف پایه ای ماشین لرنینگ برای استفاده از الگوریتم های مختلف ضروری می باشد.

  8. سلام
    من ليسانس عمران و كارداني رياضي كاربردي دارم تو واحدهايي كه در دانشگاه رگذروندم به برنامه نويسي خيلي علاقه داشتم و زبان c++ و مختصر متلب كار كردم و در حال حاضر خيلي دوست دارم تو زمينه ماشين لرنينگ و هوش مصنوعي براي ارشد ادامه بدم اما چون رشته ام تا حدودي مرتبط نيست و طبق تجربه ام دروس دانشگاهي خيلي بر معلومات براي بازار كار اضافه نميكنه مردد شدم به نظر شما اگر اكادميك ياد نگيرم و كلاس هاي بيرون شركت كنم از لحاظ زماني و بازدهي بهتر هستش؟

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

  9. سلام
    من دانشجوی زیست هستم و تقریبا چیزی از ML بلد نیستم،قصدم اینه که بتونم با ماشین لرنینگ یک ورودی بدم و اون رو از لحاظ وجود ویژگی هایی با امتیازی که خودم مشخص می کنم بررسی کنه و در نهایت به من یک امتیاز کلی بده. از کجا باید شروع کنم؟ یادگیری پایتون؟ و کلا چه مسیری رو باید دنبال کنم؟ چه مدت طول میکشه تا بتونم این کار رو انجام بدم؟

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

  10. سلام. من رشته ام اقتصاد هست و با توجه به دادههای گذشته باید داده های آینده رو پیش بینی کنم . آیا ماشین لرنینگ بکارم میاد؟؟

    1. سلام
      بله میتونید از ماشین لرنینگ استفاده کنید. وظیفه ماشین لرنینگ استخراج داده های گذشته برای تخمین در مورد داده‌های جدید می‌باشد

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

    1. سلام
      بستگی به کاری داره که قصد دارید با سیستمتون انجام بدین ولی پیشنهاد ما رو بخواین بهتره که سیستم حداقلی با هشت هسته سی پی یو و ۱۲ گیگ رم داشته باشین

  12. عرض سلام و احترام
    من تصمیم به یادگیری انجام پردازش تصویر با deep learning دارم، با توجه به اینکه تا حالا با پایتون کار نکردم خیلی ممنون میشم مسیر یادگیری صفر تا صد این موضوع را بهم نشان دهید. که بتوانم در سریع ترین زمان ممکن این کار را انجام دهم.
    با تشکر از شما

  13. سلام من یه سوالی داشتم من الان ۱۶ سالم است و خیلی به ساخت هوش مصنوعی علاقه دارم می خوساتم بدونم ایا من هم می تونم هوش مصنوعی یاد بگیرم یا زود هست؟؟؟؟

  14. سلام مقاله ی بسیار عالی بود. بازهم اگر ممکنه در همین وادی موضوع، مقاله ای منتشر کنید. باتشکر

  15. سلام . ممنون از سایت خوبتون.
    من برای یادگیری ماشین از آموزش دکتر فرشید شیرافکن استفاده کردم که بسیار عالی بود. پایتون هم به کمک آموزش ایشان یاد گرفتم.

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

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

دکمه بازگشت به بالا