تصحیح تعاملی ورودی و جایگزینی history در Python
آنچه که در این مقاله به آن خواهیم پرداخت:

- پایتون برای حل چالش های علم داده و یادگیری ماشین
- معرفی کتابخانه های محبوب مانند Pandas ،numPy ،matplotlib ،SKLearn و…
- معرفی مدل های اولیه علم داده و ماشین لرنینگ با استفاده از پایتون و نحوه عملکرد آنها
- در یادگیری ماشین و هوش مصنوعی
علم داده و ماشین لرنینگ دو حوزه مرتبط هستند که در کنار هم مورد استفاده قرار می گیرند. علم داده به مفهوم استخراج اطلاعات از داده ها و استفاده از روش های متنوع برای تحلیل داده ها و به دست آوردن دانش جدید است. یادگیری ماشین به عنوان یکی از حوزه های اصلی علم داده، به استفاده از الگوریتم ها و روش های مختلفی برای پیش بینی و تحلیل داده ها اشاره دارد. همچنین یادگیری ماشین به شیوه ای خودکار و بدون نیاز به برنامه نویسی از داده ها آموزش می بیند و براساس آن ها، پیش بینی هایی را ارائه می دهد. در واقع، یادگیری ماشین می تواند به عنوان یکی از روش های پیشرفته علم داده برای به دست آوردن دانش جدید و بهبود فرآیند های کسب و کار استفاده شود. همچنین استفاده از یادگیری ماشین در علم داده در موارد مختلفی نظیر پردازش زبان طبیعی، تشخیص تصویر، تحلیل احساسات، پیشبینی رفتار مشتری، تشخیص بیماری های پزشکی و بهبود روش های تصمیم گیری در صنایع و سازمان ها مورد استفاده قرار می گیرد. به طور کلی، علم داده و ماشین لرنینگ به عنوان دو حوزه مهم در زمینه تحلیل داده ها و بهره برداری از داده ها، باعث شدهاند که امکانات بسیاری برای بهبود فرآیند ها و افزایش کارایی در سازمان ها و صنایع فراهم شود.
ماشین لرنینگ نیز یک شاخه از هوش مصنوعی است که در آن الگوریتم ها و مدل های ریاضیاتی آموزش داده می شوند تا بتوانند از داده های ورودی خود با استفاده از آمار و احتمالات قویترین پتانسیل را به دست آورند و پس از آموزش، بتوانند برای داده های جدید پیش بینی کنند و یا تصمیم هایی را بر اساس اطلاعات دریافتی بگیرند.
از کاربرد های ماشین لرنینگ می توان به تشخیص چهره، تشخیص اشیاء، تحلیل دادههای بزرگ، پیشبینی خطاها و مشکلات در صنایع، تحلیل ارتباطات و پیش بینی خطرات در بیماری های قلبی و غیره اشاره کرد. بطور کلی علم داده و ماشین لرنینگ دو حوزه مرتبط در علوم کامپیوتر هستند که به صورت همزمان در کنار هم مورد استفاده قرار می گیرند. علم داده در واقع به بررسی و تحلیل دادههای ساختار یافته و بدون ساختار میپردازد و درک بهتری از الگو ها و روابط موجود در داده ها فراهم می کند. به عبارت دیگر، علم داده برای استخراج اطلاعات مفید و بهبود تصمیمگیری استفاده می شود. از سوی دیگر نیز، یادگیری ماشین یک روش کاربردی برای به دست آوردن دانش از داده ها است که بر روی الگوریتم ها و مدل های ریاضی کار می کند. با استفاده از ماشین لرنینگ، می توان الگو ها و روابطی که بین داده ها وجود دارد را شناسایی کرد. از این رو بهترین تصمیم ها را برای مسائلی که بر اساس داده ها قابل حل هستند پیشنهاد داد. در واقع، علم داده و یادگیری ماشین در کنار هم برای حل مسائل پیچیده و بهترین بهره از داده ها، استفاده می شوند.
آموزشگاه های برنامه نویسی در اصفهان نسبتاً زیاد هستند اما بهترین آموزشگاه پایتون در اصفهان به تعداد انگشتان دست است.
علت مشهور شدن علم داده و یادگیری ماشین چیست؟
در دنیای امروز، داده های تولید شده در محیط های مختلفی مانند شبکه های اجتماعی، سایت های خرید آنلاین، بانک ها، شرکت ها و سایر منابع، به حجم عظیمی رسیده است. این حجم بالای داده ها به دلیل پیشرفت فناوری و افزایش استفاده از دستگاههای الکترونیکی، به صورت چشمگیری افزایش یافته است. در این شرایط، توانایی بررسی و تحلیل داده هایی با این حجم بالا، برای شرکت ها و سازمان ها اهمیت بسیاری دارد. این امر باعث شده است که علم داده به عنوان یکی از مهمترین زمینه های فعالیت در دنیای فناوری و صنعت، مورد توجه قرار گیرد و در بسیاری از صنایع و بخشهای مختلف کاربرد داشته باشد. به طور سنتی، داده هایی که ما در دست داشتیم بیشتر دارای ساختار و اندازه کوچک بودند که خب به راحتی با استفاده از ابزار های ساده BI قابل تحلیل بودند. برخلاف داده ها در سیستم های سنتی که بیشتر ساختار داشتند، امروزه بیشتر داده ها بدون ساختار یا نیمه ساختاری هستند. این داده ها از منابع مختلف مانند لاگ های مربوط به پرونده های مالی، پرونده های متنی، فرم های چندرسانه ای، حسگر ها و ابزار ها تولید می شوند. ابزار های ساده BI قادر به پردازش این حجم عظیم از داده های متنوع نیستند. به همین دلیل است که برای پردازش، تجزیه و تحلیل معنا دار به ابزار ها و الگوریتم های تحلیلی پیچیده و پیشرفته تری نیاز داریم. در ادامه بیایید سناریویی متفاوت برای درک نقش علم داده در تصمیم گیری در نظر بگیریم. به این سوال فکر کنید اگر ماشین شما از هوش لازم برای رسیدن شما، به خانه برخوردار باشد چه می شود؟ شاید جواب شما این باشد که این اتفاق هیجان انگیز خواهد بود! اتومبیل های خودران، داده ها را از طریق رادار ها، دوربین ها و لیزر ها برای ایجاد نقشه از محیط اطراف خود جمع آوری میکنند و سپس بر اساس این داده هایی که جمع آوری می شوند، تصمیماتی مانند زمان افزایش سرعت، کاهش سرعت، زمان سبقت و … گرفته میشود. در واقع این سیستم با استفاده از الگوریتم های پیشرفته یادگیری ماشین، کمک بسیار بزرگی به بشریت می کنند. حال برای روشن تر شدن کاربرد علم داده بررسی خواهیم کرد که چگونه می توان از علم داده در تجزیه و تحلیل پیشبینی استفاده کرد. بیایید پیشبینی هوا را به عنوان مثال در نظر بگیریم. داده های کشتی ها، هواپیماها، رادارها، ماهوارهها را میتوان جمع آوری و برای ساخت مدل، تجزیه و تحلیل کرد. این مدل ها نه تنها آب و هوا را پیش بینی می کنند بلکه به پیشبینی وقوع هرگونه بلایای طبیعی نیز کمک میکنند. این امر به شما کمک میکند از قبل، اقدامات مناسب را انجام دهید و جان بسیاری از افراد گرانبها را نجات دهید.
همچنین از دیگر علت هایی که علم داده و ماشین لرنینگ را جذاب میکند میتوان به موارد زیر اشاره کرد:
- پر تقاضا است: علم داده و یادگیری ماشین بسیار مورد تقاضا هستند و فرصت های شغلی زیادی برای متقاضیان کار در این حوزه وجود دارد. این شغل سریعترین رشد را در Linkedin داشته و پیشبینی می شود تا سال 2026 حدود 11.5 میلیون شغل ایجاد کند.
- فراوانی موقعیتها: تعداد بسیار کمی از افراد هستند که مجموعه مهارت های لازم برای تبدیل شدن به یک دانشمند داده را بطور کامل داشته باشند. این باعث میشود که علم داده در مقایسه با سایر بخشهای IT اشباع کمتری داشته باشد. بنابراین، علم داده بسیار غنی است و از فرصت های زیادی برخوردار است. رشته علوم داده تقاضای زیادی دارد اما از نظر دانش، متخصصان کمی در این حوزه وجود دارد.
- شغلی بسیار پردرآمد: علم داده یکی از مشاغل پر درآمد است. طبق گفته Glassdoor، دانشمندان داده بطور متوسط سالانه 116،100 دلار درآمد کسب می کنند. این امر علم داده را به گزینه شغلی بسیار پردرآمد تبدیل می کند.
- علم داده همه کاره است: کاربرد های بی شماری از علم داده و یادگیری ماشین وجود دارد. در واقع بطور گسترده ای در صنایع بهداشتی، بانکی، خدمات مشاورهای و تجارت الکترونیکی مورد استفاده قرار می گیرد.
- علوم داده باعث بهتر شدن داده ها میشود: شرکت ها برای پردازش و تحلیل داده های خود به دانشمندان ماهر داده احتیاج دارند. آنها نه تنها داده ها را تجزیه و تحلیل می کنند بلکه کیفیت آنها را نیز بهبود می بخشند. بنابراین، علم داده با غنی سازی داده ها و بهتر کردن آنها نقش بسیار مهمی در شرکت ها و سازمان ها دارد.
- دانشمندان داده بسیار معتبر هستند: دانشمندان داده به شرکت ها اجازه میدهند تصمیمات تجاری دقیق تری بگیرند. شرکت ها به دانشمندان داده اعتماد میکنند و از تخصص آنها برای ارائه نتایج بهتر به مشتریان خود استفاده می کنند. از همین رو دانشمندان داده موقعیت مهمی را در یک شرکت دارند.
- اتمام کارهای خسته کننده: علم داده به صنایع مختلف کمک کردهاست تا وظایف تکراری خود را خودکار کنند. این کار مشاغل طاقت فرسایی را که قبلاً بشر به عهده گرفته بود را ساده کرده است.
- علوم داده و یادگیری ماشین باعث هوشمند سازی محصولات می شود: علم داده شامل استفاده از یادگیری ماشینی است که به صنایع امکان ایجاد محصولات بهتر متناسب با تجارب مشتری را می دهد. به عنوان مثال، سیستم های توصیه شدهای که توسط وب سایت های تجارت الکترونیکی استفاده می شوند، براساس خریدهای گذشته، بینش شخصی را به کاربران ارائه می دهند. این امر کامپیوترها را قادر به درک رفتار انسان و تصمیم گیری مبتنی بر داده کرده است.
- علم داده می تواند زندگی را نجات دهد: علم داده در بخش بهداشت بسیار تاثیرگذار بوده است. با ظهور یادگیری ماشین و علم داده، تشخیص تومور ها در مرحله اولیه آسان تر شده است. همچنین، بسیاری از صنایع بهداشتی دیگر نیز از ابزار های موجود در این حوزه برای کمک به مشتریان خود استفاده می کنند.
- علم داده و یادگیری ماشین می تواند شما را به شخص بهتری تبدیل کند: علم داده نه تنها به شما یک حرفه عالی می بخشد بلکه به شما در رشد شخصی نیز کمک خواهد کرد. شما قادر خواهید بود نگرش حل مسئله داشته باشید.
علم داده یک رشته تخصصی است که در آن از روش های آماری، کامپیوتری و دانش تخصصی صنعتی برای جمع آوری، پردازش، تحلیل و ارائه داده ها استفاده میشود. برخی از ویژگی های علم داده عبارتند از:
- جمعآوری داده ها: در علم داده، جمعآوری داده ها اولین مرحله است که شامل استخراج داده هایی از منابع مختلف مانند پایگاه داده ها، فایل ها، صفحات وب و حتی سنجش های حسگری است.
- پردازش داده ها: پس از جمع آوری دادهها، آنها باید پردازش شوند تا به صورتی قابل استفاده در تحلیل و پیش بینی باشند. این شامل تبدیل داده ها به شکلی است که در تحلیل های بعدی مفید باشد.
- تحلیل داده ها: در این مرحله، از روشهای آماری و دانش متخصصان صنعتی برای تحلیل داده های جمع آوری شده استفاده می شود. این تحلیل می تواند شامل تحلیل روابط و تحلیل پیش بینی باشد.
- پیش بینی و مدل سازی: در این مرحله، از الگوریتم های هوش مصنوعی و ماشین لرنینگ برای پیش بینی رفتار و یا رویداد های آینده استفاده می شود. در این مرحله، مدل های پیش بینی و تصمیم گیری ساخته می شود.
- ارائه داده های مفید: در این مرحله، داده های استخراج شده به صورت گرافیکی یا تصویری ارائه می شوند. ارائه این داده ها می تواند به صورت املایی، جداولی، نمودار ها و یا مدل های پیش بینی باشد که برای کاربرد در صنایع و سازمان ها به کار می روند.
- تصمیم گیری: در این مرحله، تحلیل داده ها به منظور گرفتن تصمیم های بهتر و بازدهی بیشتر در صنایع و سازمان ها استفاده می شود. این تصمیم گیری می تواند شامل بهبود فرآیند های تولید، تحلیل بازار، بهبود روشهای بازاریابی و تحلیل و بهبود عملکرد سازمانی باشد.
- حفظ حریم خصوصی داده ها: در این روز ها، با افزایش جمع آوری و استفاده از داده ها، حفظ حریم خصوصی داده ها نیز مهم شده است. در علم داده، تلاش می شود که از روش هایی برای حفظ حریم خصوصی داده ها استفاده شود. در کل، ویژگی های علم داده شامل جمع آوری، پردازش، تحلیل و پیش بینی داده ها، ارائه داده های مفید، تصمیم گیری و حفظ حریم خصوصی داده ها هستند. این ویژگی ها باعث شدهاند که علم داده به یکی از مهم ترین رشته های تخصصی در دنیای امروز تبدیل شود که در سطوح مختلف از آن استفاده می شود.
چرا یادگیری علم داده و یادگیری ماشین اهمیت دارد و بین افراد پرطرفدار است؟
یادگیری علم داده به دلیل بسیاری از مسائل مختلف اهمیت زیادی دارد و در حال حاضر بین افراد پرطرفدار است. یکی از مهمترین دلایل، تأثیر آن بر روی صنایع و بخش های مختلف اقتصادی و صنعتی است. با استفاده از تحلیل داده، می توان بهترین تصمیمات را برای شرکت ها و سازمان ها گرفت و عملکرد آن ها را بهبود بخشید. همچنین، به دلیل پیشرفت فناوری و افزایش استفاده از دستگاه های الکترونیکی، حجم عظیمی از داده ها تولید شده است. در این شرایط، توانایی بررسی و تحلیل داده های این حجم بالا، برای شرکت ها و سازمان ها اهمیت بسیاری دارد.
علم داده شامل انبوهی از رشته ها و زمینه های تخصصی برای تولید یک نگاه جامع، دقیق و تصفیه شده در داده های خام است. دانشمندان داده باید در همه چیز از مهندسی داده ها، ریاضیات، آمار، محاسبات پیشرفته و تجسم، مهارت داشته باشند تا بتوانند به طور موثر توده های اطلاعاتی درهم را الك كنند و فقط حیاتی ترین بیت ها را كه به ایجاد نوآوری و كارایی كمك می كند، پیدا كنند. دانشمندان داده همچنین برای ایجاد مدل ها و پیش بینی با استفاده از الگوریتم ها و سایر تکنیک ها، به شدت به هوش مصنوعی به ویژه زیرشاخه های ماشین لرنینگ و یادگیری عمیق آن تکیه می کنند. بنابراین، علم داده برای تصمیم گیری و پیش بینی با استفاده از تجزیه و تحلیل و ماشین لرنینگ استفاده می شود و از این جهت بسیار اهمیت دارد. علاوه بر مواردی که گفته شد، با توسعه روش های جدید پردازش داده و الگوریتم های هوشمند، می توان داده ها را به صورت مفید و کاربردی تحلیل کرد و درک بهتری از آن ها داشت. همچنین، به دلیل تأثیر علم داده بر بخشهای مختلفی همچون علوم کامپیوتر، آمار، ریاضیات، بیولوژی، پزشکی، مالی، تجارت و غیره، یادگیری علم داده برای افرادی که به دنبال کسب دانش جدید و پیشرفت در حرفهی خود هستند، بسیار مهم است. یادگیری علم داده و یادگیری ماشین به دلیل داشتن اهمیت وسیعی در صنایع مختلف و همچنین پتانسیل بالا برای تحول و بهبود فرایند ها و خدمات، بین افراد پرطرفدار است. در زمان حال، داده ها به سرعت در حال تولید و جمعآوری شدن هستند و در هر صنعت و حوزه ای، داده های بیشتری به دست می آیند. از این رو، تبدیل داده به اطلاعات مفید و قابل استفاده برای بهبود فرایند ها و افزایش بهره وری، امری بسیار مهم است. همچنین این نکته حائز اهمیت است که یادگیری ماشین به دلیل قابلیت استفاده در زمینه های مختلف از جمله پزشکی، مالی، تولید، بازاریابی، تحقیقات عملیاتی بسیار مورد توجه قرار گرفته است. در نهایت، علاقه و اهمیت بیشتری به یادگیری علم داده و یادگیری ماشین در جامعه وجود دارد.
دوره علم داده و یادگیری ماشین با پایتون برای چه افرادی مناسب است؟
دوره علم داده و یادگیری ماشین با پایتون برای افرادی مناسب است که به دنبال یادگیری تکنیک های پردازش و تحلیل داده و مدل سازی هستند. این دوره برای افرادی که به زمینه های مختلف مانند علم داده، شبکه های عصبی، یادگیری ماشین، یادگیری عمیق و هوش مصنوعی علاقه مند هستند، مناسب است. علاوه بر این، افرادی که به دنبال شغلی در زمینه هایی مانند تحلیل داده، علم داده، مهندسی داده، هوش مصنوعی، وبسایتسازی و موارد مشابه هستند، می توانند با یادگیری پایتون و تکنیک های علم داده و یادگیری ماشین، به اهداف خود برسند. در کل، دوره علم داده و یادگیری ماشین با پایتون برای افرادی مناسب است که به دنبال یادگیری تکنیک های پردازش و تحلیل داده، مدل سازی و حل مسائل با استفاده از داده های موجود هستند.
کلاس های آموزش پایتون در اصفهان شروع شد جهت ثبت نام اینجا کلیک کنید
برای دوره علم داده و یادگیری ماشین با پایتون چه پیشنیازهایی لازم است؟
برای شروع دوره علم داده و یادگیری ماشین با پایتون، باید پیشنیاز های مورد نیاز را داشته باشید. این پیشنیاز ها شامل آشنایی با مفاهیم برنامهنویسی و زبان پایتون، آشنایی با ریاضیات و آمار، آشنایی با مفاهیم علم داده و نصب و راه اندازی محیط پایتون و کتابخانه های مورد نیاز است. آشنایی با مفاهیم برنامهنویسی و زبان پایتون اساسیترین پیشنیاز برای شروع دوره علم داده و یادگیری ماشین با پایتون است. برای مثال، باید بلد باشید شرط ها، حلقه ها، توابع و کلاس ها را بنویسید. آشنایی با ریاضیات و آمار نیز برای درک بهتر مفاهیم یادگیری ماشین مهم است. همچنین با مفاهیمی مانند جبر خطی، آمار و مفاهیم مربوط به آن ها باید برای شروع دوره علم داده و یادگیری ماشین با پایتون آشنا باشید.
چرا از زبان برنامه نویسی پایتون برای دوره علم داده و یادگیری ماشین استفاده می شود؟
پایتون (Python) به دلیل ساختار ساده و قابل فهم خود، برای تحلیل داده ها بسیار محبوب است. با استفاده از این زبان وکتابخانه های مختلف آن، می توانید به راحتی داده های خود را تحلیل کنید و به سادگی الگو ها و روند های مختلف را شناسایی کنید. از این رو پایتون به دلیل ویژگی ها و قابلیت هایی که دارد، بسیار مناسب برای دوره علم داده و یادگیری ماشین است. از جمله این ویژگی ها می توان به سادگی و خوانایی پایتون اشاره کرد. پایتون به عنوان یک زبان برنامه نویسی سطح بالا و شیگرا، دارای سینتکسی ساده و خوانا است. برای نوشتن کد ها، نیازی به تعریف نوع متغیر ها نیست و این امر باعث می شود که نوشتن کد به راحتی و سرعت بیشتری انجام شود.
در ادمه به برخی از دلایل اصلی استفاده گسترده پایتون در حوزه علم داده و یادگیری ماشین اشاره خواهیم کرد:
- یادگیری آسان: پایتون یک دستور ساده و شهودی دارد که یادگیری و خواندن آن آسان است. این امر باعث می شود که زبانی عالی برای مبتدیان برای یادگیری علم داده باشد.
- انجمن بزرگ و فعال: پایتون دارای یک انجمن بزرگ و فعال است که از توسعه کتابخانه ها و ابزارهای مختلف برای علم داده، پشتیبانی می کند. این انجمن، کتابخانه های مفید بسیاری، از جمله Pandas ،NumPy ،Matplotlib ،SciPy و … ایجاد کرده است که به طور گسترده در علم داده استفاده می شود.
- کتابخانههای قدرتمند: پایتون چندین کتابخانه قدرتمند دارد که تجزیه، تحلیل و تجسم داده ها را آسان می کند. بعنوان مثال، Pandas یک کتابخانه برای دستکاری و تجزیه و تحلیل داده ها، NumPy یک کتابخانه برای محاسبات عددی و Matplotlib یک کتابخانه برای تجسم داده ها است.
- کتابخانه های یادگیری ماشین: این زبان برنامه نویسی همچنین چندین کتابخانه محبوب برای یادگیری ماشین دارد، از جملهScikit-learn ،TensorFlow و Keras که ساخت و آموزش مدل های یادگیری ماشین را آسان می کند.
- یکپارچه سازی با زبان های دیگر: پایتون می تواند به راحتی با سایر زبانهای برنامه نویسی مانند R ، و ادغام شود. همچنین این امر باعث می شود که استفاده از پایتون برای علم داده، در تنظیمات مختلف، آسان شود.
به طور خلاصه، پایتون یک زبان محبوب برای علم داده و یادگیری ماشین است به این دلیل که یادگیری آن نسبتا آسان است، جامعه بزرگ و فعالی دارد، کتابخانه های قدرتمندی برای تجزیه و تحلیل و تجسم داده ها ارائه می دهد و کتابخانه های یادگیری ماشین بسیار خوبی دارد. همچنین این زبان برنامه نویسی یک زبان متن باز، تفسیر شده و سطح بالا است و یک رویکرد عالی برای علم داده، یادگیری ماشین و اهداف تحقیقاتی ارائه می دهد. همچنین یکی از بهترین زبان ها برای علم داده است که برای کاربرد ها و پروژه های مختلف، مورد استفاده قرار می گیرد. هنگامی که صحبت از پرداختن به توابع ریاضی، آماری و علمی می شود، پایتون گزینه بسیار مناسبی است. از نظر حوزه های کاربردی، دانشمندان، پایتون را برای تجزیه، تحلیل و تجسم داده ها، یادگیری ماشین، یادگیری عمیق، پردازش تصویر، بینایی کامپیوتر و پردازش زبان طبیعی (NLP) ترجیح می دهند.
مزیت های استفاده از پایتون در دوره علم داده و یادگیری ماشین چیست؟
در این قسمت سعی داریم به بررسی مزایای استفاده از پایتون برای هوش مصنوعی و یادگیری ماشین بپردازیم:
- یک اکوسیستم کتابخانه ای عالی: انتخاب عالی کتابخانه ها یکی از دلایل اصلی پایتون است که محبوب ترین زبان برنامه نویسی مورد استفاده برای هوش مصنوعی است. کتابخانه، یک ماژول یا گروهی از ماژول های منتشر شده توسط منابع مختلف مانند PyPi است که شامل یک قطعه کد از پیش نوشته شده است که به کاربران اجازه می دهد به برخی عملکرد ها دست یابند یا اقدامات مختلفی را انجام دهند. کتابخانههای پایتون آیتم های سطح پایه را ارائه می کنند تا توسعهدهندگان مجبور نباشند هر بار آن ها را از همان ابتدا کدنویسی کنند. ML یا همان ماشین لرنینگ به پردازش مداوم داده ها نیاز دارد و کتابخانه های پایتون به شما امکان دسترسی، مدیریت و تبدیل داده ها را می دهند.
- موانع کم برای ورود: کار در صنعت ML و AI (ماشین لرنینگ و هوش مصنوعی) به معنای پرداختن به مجموعه ای از داده ها است که باید آنها را به راحت ترین و موثرترین روش پردازش کنید. مانع ورود کم، به دانشمندان داده بیشتری اجازه می دهد تا به سرعت پایتون را انتخاب کنند و بدون تلاش زیادی برای یادگیری زبان، از آن برای توسعه هوش مصنوعی استفاده کنند. زبان برنامه نویسی پایتون شبیه زبان انگلیسی روزمره است و این روند یادگیری را آسان تر می کند. دستور ساده آن به شما اجازه می دهد تا به راحتی با سیستم های پیچیده کار کنید و از روابط شفاف بین عناصر سیستم اطمینان حاصل کنید. به همین دلیل است که استفاده از پایتون برای هوش مصنوعی موجه است.
- انعطاف پذیری: پایتون برای یادگیری ماشین یک انتخاب عالی است، زیرا این زبان بسیار انعطاف پذیر است و گزینه ای برای انتخاب یا استفاده از OOPs یا اسکریپت ارائه می دهد. همچنین نیازی به کامپایل مجدد کد منبع نیست، توسعه دهندگان میتوانند هر تغییری را اعمال کنند و به سرعت نتایج را مشاهده کنند. برنامه نویسان میتوانند پایتون و زبان های دیگر را برای رسیدن به اهداف خود ترکیب کنند. سبک امری متشکل از دستوراتی است که نحوه اجرای دستورات را توسط کامپیوتر توضیح می دهد. با این سبک، دنباله ای از محاسبات را تعریف میکنید که مانند تغییر حالت برنامه اتفاق می افتد. سبک عملکردی را دکلراتیو نیز می نامند زیرا بیان می کند که چه عملیاتی باید انجام شود. حالت برنامه را در نظر نمی گیرد، در مقایسه با سبک امری، عبارات را در قالب معادلات ریاضی اعلام می کند. سبک شیگرا بر دو مفهوم است: کلاس و شی که در آن اشیاء مشابه کلاس ها را تشکیل می دهند. این سبک به طور کامل توسط پایتون پشتیبانی نمی شود، زیرا نمی تواند به طور کامل محفوظ سازی را انجام دهد، اما توسعه دهندگان همچنان می توانند از این سبک تا حد محدودی استفاده کنند. سبک رویه ای در میان مبتدیان رایج ترین است؛ زیرا وظایف را گام به گام انجام می دهد. اغلب برای توالی، تکرار، مدولار سازی و انتخاب استفاده می شود. ضریب انعطاف پذیری احتمال خطا را کاهش می دهد؛ زیرا برنامه نویسان این شانس را دارند که شرایط را تحت کنترل درآورند و در یک محیط راحت کار کنند.
- استقلال پلتفرم: مزیت بعدی پایتون برای توسعه هوش مصنوعی و یادگیری ماشین، استقلال پلتفرم است. پایتون نه تنها برای استفاده راحت و آسان برای یادگیری است، بلکه بسیار متنوع هم می باشد. منظور ما این است که پایتون برای توسعه یادگیری ماشین می تواند بر روی هر پلتفرمی از جمله ویندوز، MacOS، لینوکس، یونیکس و 21 پلتفرم دیگر اجرا شود. برای انتقال فرآیند از یک پلتفرم به پلتفرم دیگر، توسعهدهندگان باید چندین تغییر در مقیاس کوچک اعمال کنند و برخی از خطوط کد را اصلاح کنند تا یک فرم اجرایی از کد برای پلتفرم انتخابی ایجاد کنند. توسعه دهندگان می توانند از بسته هایی مانند PyInstaller برای آماده سازی کد خود برای اجرا در پلتفرم های مختلف استفاده کنند. همچنین، این امر باعث صرفه جویی در زمان و هزینه برای آزمایش بر روی سیستم عامل های مختلف می شود و روند کلی را ساده تر و راحت تر می کند.
- خوانایی: خواندن پایتون بسیار آسان است، بنابراین هر توسعه دهنده پایتون می تواند کد های مشابه خود را درک کند و آن را تغییر دهد، کپی یا به اشتراک بگذارد. هیچ سردرگمی، خطا یا پارادایم های متناقضی وجود ندارد و این منجر به تبادل کارآمد الگوریتم ها، ایده ها و ابزار ها بین متخصصان هوش مصنوعی و یادگیری ماشین می شود. همچنین ابزار هایی مانند IPython در دسترس هستند تا یک پوسته تعاملی که ویژگیهای اضافی مانند تست، اشکال زدایی، تکمیل برگه (تب ها) و موارد دیگر را دارند ارائه کنند و روند کار را تسهیل بخشند.
- گزینه های تجسم خوب: قبلاً اشاره کردهایم که پایتون کتابخانه های مختلفی را ارائه می کند و برخی از آنها ابزار های تجسمی عالی هستند. با این حال، برای توسعه دهندگان هوش مصنوعی، مهم است که بر این نکته تاکید شود که در هوش مصنوعی، یادگیری عمیق و یادگیری ماشین، توانایی نمایش داده ها در قالبی قابل خواندن برای انسان حیاتی است. کتابخانه هایی مانند Matplotlib به دانشمندان داده اجازه می دهد تا نمودارها، هیستوگرام ها و… را برای درک بهتر داده ها، ارائه مؤثر و تجسم بهتر بسازند. همچنین رابط های برنامه نویسی برنامه های کاربردی مختلف، فرآیند تجسم را ساده کرده و ایجاد گزارش های واضح را آسان تر می کند.
- حمایت جامعه: زمانی که پشتیبانی قوی جامعه حول زبان برنامه نویسی ساخته شده باشد، اتفاق خوشایندی است. پایتون یک زبان منبع باز است که به این معنی است که یک سری منابع برای برنامه نویسان باز است که از مبتدیان شروع می شوند و به حرفه ای ها ختم می شوند. بسیاری از اسناد پایتون به صورت آنلاین و همچنین در انجمن بزرگ پایتون در دسترس هستند، جایی که برنامهنویسان و توسعهدهندگان یادگیری ماشین خطاها را مورد بحث قرار می دهند، مشکلات را حل می کنند و به یکدیگر کمک می کنند.
- محبوبیت روزافزون: در نتیجه مزایایی که در بالا مورد بحث قرار گرفت، پایتون روز به روز در بین دانشمندان داده محبوبیت بیشتری پیدا می کند. این بدان معنی است که جستجو برای توسعه دهندگان و جایگزینی افراد در صورت نیاز آسان تر است. همچنین، هزینه کار آنها ممکن است به اندازه زمانی که از یک زبان برنامه نویسی با محبوبیت کمتر استفاده می کنند، بالا نباشد.
برخی از مزایای پایتون در حوزه علم داده و یادگیری ماشین عبارتند از :
- آسان برای یادگیری و خواندن دستور
- دارای انجمن بزرگ و فعال با اسناد و پشتیبانی گسترده
- پشتیبانی ازکتابخانه های قدرتمند برای تجزیه و تحلیل و تجسم داده ها، مانند Pandas و Matplotlib
- کتابخانه های عالی برای یادگیری ماشین، مانند Scikit-learn و TensorFlow
- یکپارچه سازی با زبان ها و ابزارهای دیگر
- منبع باز و رایگان
برخی از این معایب نیز عبارتند از :
- زمان اجرای آهسته در مقایسه با زبان های برنامه نویسی سطح پایین مانند
- پشتیبانی محدود از چند رشته
- کنترل مدیریت حافظه محدود
- ضعف در مدیریت کلان داده در مقایسه با چارچوب های محاسباتی توزیع شده مانند Hadoop
- منحنی یادگیری شیب دار برای موضوعات پیشرفته تر مانند محاسبات توزیع شده و موازی سازی
بله ، در این دوره شما با کتابخانه های مفید و کاربردی در این حوزه آشنا خواهید شد و خواهید آموخت که چگونه از این کتابخانه ها برای پیشبرد کارهای خود در پروژه ها بهره بگیرید. در ادامه به معرفی کتابخانه های مختلف پایتون خواهیم پرداخت تا به شما یک دید کلی از کتابخانه های محبوب پایتون بدهیم .
- Numpy: یکی از کتابخانه های پایتون است که یک تابع ریاضی را برای مدیریت آرایه هایی با ابعاد بزرگ، ارائه می دهد. همچنین توابع مختلفی را برای آرایه، جبر خطی و تجزیه و تحلیل آماری ارائه می دهد. NumPy مخفف Numerical Python است. توابع عملی زیادی برای عملیات های آرایه و ماتریس در پایتون ارائه می دهد. آرایه ها و ماتریس های چند بعدی بزرگ می توانند بردار عملیات ریاضی خود را داشته باشند، که کارایی را بهبود می بخشد و اجرا را تسریع می کند.
- Pandas: یکی از پرکاربرد ترین ابزار های پایتون برای دستکاری و تحلیل داده ها هستند. Pandas عملکرد های مفیدی را برای دستکاری مقادیر زیادی از داده های ساختار یافته ارائه می دهند. همچنین ساده ترین روش را برای تجزیه و تحلیل ارائه می دهند. این ساختار، داده های بزرگی را فراهم می کند و جداول عددی و داده های زمانی را دستکاری می کند. برای مدیریت داده ها Pandas ابزار ایده آلی است که برای جمع آوری و دستکاری سریع و ساده داده ها در نظر گرفته شده است.
- Scipy: یک کتابخانه محبوب پایتون برای محاسبات علمی و تجزیه و تحلیل داده ها است. Scipy مخفف Scientific Python است. این کتابخانه عملکردی عالی برای ریاضیات علمی و برنامه نویسی محاسباتی فراهم می کند. همچنین شامل ماژول های فرعی برای بهینه سازی، جبر خطی، ادغام، درون یابی، توابع ویژه و سایر وظایف رایج در علم و مهندسی است.
- Matplotlib: یک کتابخانه مفید پایتون برای تجسم داده است. تجزیه و تحلیل توصیفی و تجسم داده ها برای هر سازمانی بسیار مهم است. Matplotlib روش های مختلفی را برای تجسم داده ها به روشی موثرتر ارائه می دهد. این کتابخانه به شما امکان می دهد که به سرعت نمودارهای خطی، نمودارهای دایره ای، هیستوگرام ها و سایر ارقام درجه یک حرفه ای را ایجاد کنید. با استفاده از Matplotlib، می توان تمام جنبه های یک شکل را سفارشی کرد. همچنین دارای ویژگی های تعاملی مانند بزرگنمایی و برنامه ریزی و ذخیره نمودار در قالب گرافیکی است.
- Seabor: کتابخانه ای برای تجسم داده ها و نمودارهای آماری در پایتون است.
- Plotly: کتابخانه دیگری برای تجسم و درک ساده ی داده ها است. و از نظر بصری، نمودار جذاب تری ترسیم می کند. همچنین توسط موسسات مختلف برای مقیاس بندی استفاده می شود.
- Scikit learn: یک کتابخانه پایتون برای یادگیری ماشین است که به اختصار Sklearn می نامند. این کتابخانه، الگوریتم ها و توابع مختلفی را ارائه می دهد که در یادگیری ماشین استفاده می شوند. ابزارهای ساده و روانی برای تجزیه و تحلیل داده ها و پیش بینی ها ارائه می دهد. Sklearn بر روی Matplotlib ،SciPy و NumPy ساخته شده است. مجموعه ای از الگوریتم های استاندارد یادگیری ماشین را از طریق یک رابط کاربری قابل اعتماد به کاربران ارائه می دهد.
- Statsmodel: ابزار عالی پایتون است. تعدادی توابع دارد که در تست آماری و ساخت مدل آماری در پایتون مفید است.
- Tensorflow: یک پلتفرم منبع باز است که در یادگیری عمیق مورد استفاده قرار میگیرد و توسط گوگل توسعه داده شده است. از Keras api استفاده می کند. همچنین برای کارهای بینایی کامپیوتر و پردازش زبان طبیعی مناسب است. با استفاده از ، CUDA و ایجاد شده است؛ با TPU ،GPUو CPU سازگار است.
- Keras: یک API منبع باز سطح بالا برای وظایف شبکه عصبی است که توسط François Chollet توسعه یافته است. می توان آن را با Tensorflow استفاده کرد. همچنین می تواند روی CPU و GPU اجرا شود.
- Pytorch: یک پلتفرم یادگیری عمیق منبع باز محبوب است که دارای تعداد زیادی ساختار داده برای عملیات ریاضی مختلف است و توسط Facebook Meta AI توسعه یافته است. همچنین پلتفرمی بسیار مناسب برای کارهای بینایی کامپیوتر و پردازش زبان است.
آینده علم داده و یادگیری ماشین با پایتون چیست؟
همانطور که محبوبیت پایتون روز افزون است، با افزایش تعداد دانشمندان داده، استفاده از پایتون برای علم داده ناگزیر به رشد خود ادامه خواهد داد. همانطور که یادگیری ماشین، یادگیری عمیق و سایر وظایف علم داده را پیش می بریم، احتمالاً این پیشرفت ها را برای استفاده به عنوان کتابخانه در پایتون خواهیم دید. پایتون سال ها است که به خوبی حفظ شده و به طور مداوم محبوبیت آن در حال افزایش است و بسیاری از شرکت های برتر امروزه از پایتون استفاده می کنند. با محبوبیت مداوم و پشتیبانی رو به رشد، پایتون برای سال های آینده در صنعت مورد استفاده قرار خواهد گرفت. چه سال ها دانشمند داده باشید و چه به تازگی سفر علم داده خود را آغاز کرده اید، می توانید از یادگیری پایتون برای علم داده بهره ببرید. سادگی، خوانایی، پشتیبانی و محبوبیت این زبان و همچنین کتابخانه های موجود برای پاکسازی داده ها، تجسم و یادگیری ماشینی؛ همگی پایتون را از سایر زبان های برنامه نویسی متمایز می کند. اگر در حال حاضر از پایتون برای کار خود استفاده نمی کنید، آن را امتحان کنید و ببینید که چگونه می تواند گردش کار علم داده شما را ساده کند.
آیا علم داده و یادگیری ماشین با پایتون، در هوش مصنوعی کاربرد دارد؟
چگونه هوش مصنوعی به همراه علم داده و یادگیری ماشین، فناوری های آینده را شکل می دهند؟
امروزه با گسترش حجم و پیچیدگی داده ها، از هوش مصنوعی و یادگیری ماشین برای پردازش و تحلیل آن استفاده می شود. اگر بخواهیم منصف باشیم، مغز انسان می تواند حجم زیادی از داده ها را تجزیه و تحلیل کند. اما این توانایی با حجم داده هایی که در هر لحظه می تواند جذب کند، محدود می شود. هوش مصنوعی عاری از این محدودیت است. پیشبینی ها و بینش های دقیقتر ارائهشده توسط هوش مصنوعی باعث بهبود کارایی کسبوکار، کاهش هزینه تولید و افزایش بهره وری میشود. جای تعجب نیست که بسیاری از صنایع از هوش مصنوعی و ماشین لرنینگ برای بهبود عملکرد و توسعه محصول استفاده می کنند. بر اساس تحقیقات Deloitte، شرکتهای مبتنی بر هوش مصنوعی آخرین روند تحولات فناوری با هدف بهبود بهره وری هستند (آخرین روند تحولات فناوری با هدف بهبود بهره وری را طی می کنند). همچنین با پیشبینی آنها ثابت می شود که طی 24 ماه آینده تعداد شرکت هایی که از هوش مصنوعی در محصولات و فرآیند های خود برای دستیابی به کارایی بیشتر و اهداف استراتژیک استفاده خواهند کرد، احتمالاً افزایش خواهد یافت. به طور خلاصه، هوش مصنوعی به انجام بهتر کار با تلاش کمتر کمک می کند. با توجه به مزایای ذکر شده از هوش مصنوعی، شرکت های بیشتری مشتاق استفاده از آن هستند. با این حال، هوش مصنوعی یک خیابان دو طرفه است. استفاده از آن برای بهینه سازی فرآیند تحلیلی، ساده ترین فناوری برای توسعه نیست. با توجه به حجم عظیمی از داده ها که باید تجزیه و تحلیل شوند، محصول هوش مصنوعی باید بتواند فرآیند پر بار را به طور موثر اداره کند و زمان زیادی را برای آن صرف نمی کند. همچنین برای اینکه به درستی کار کند، باید زبان مناسب برای توسعه آن انتخاب شود؛ موردی که از نظر دستوری چندان پیچیده نباشد، می تواند فرآیند های پیچیده را مدیریت کند و پشتیبانی آن آسان است.
دوره علم داده و یادگیری ماشین با پایتون در کجا کاربرد دارد؟
پایتون ویژگی های زیادی را ارائه می کند که به ویژه برای هوش مصنوعی و ماشین لرنینگ مفید هستند و آن را به بهترین زبان برای این اهداف تبدیل می کند. جای تعجب نیست که صنایع مختلف از پایتون برای پیش بینی و سایر وظایف یادگیری ماشینی استفاده کنند. بیایید نگاهی دقیق تر به چند مثال در این زمینه بیندازیم:
- گردشگری
- فین تک
- حمل و نقل
- مراقبت های بهداشت.
- گردشگری: به عنوان مثال، غول صنعت گردشگری Skyscanner از یک الگوریتم یادگیری ماشین، بدون نظارت پایتون برای پیش بینی رفتار مسیرهای جدید هواپیما استفاده کرد. آنها هزاران مبدا و مقصد را با هم مقایسه کردند و هر یک از آنها را با 30 معیار مختلف برای تعریف تقاضای مسافران ارزیابی کردند. نتایج آنها روی داشبورد نمایش داده می شود، جایی که می توانید هر شهر مبدا را برای مشاهده گروههای مقاصد شمارهگذاری شده از ۰ تا ۹، به همراه ویژگی های آن ها انتخاب کنید.
چنین مثالی از پیاده سازی هوش مصنوعی در صنعت مسافرت برای پیشنهاد مقاصد به کاربران، کمک به ایجاد بودجه بازاریابی و همچنین تعیین قیمت اولیه برای مسیرهای جدید، بسیار مفید است.
- فین تک: هوش مصنوعی مورد استفاده در خدمات مالی به حل مشکلات مرتبط با مدیریت ریسک، پیشگیری از تقلب، بانکداری شخصی، اتوماسیون و سایر ابزارها کمک می کند که به ارائه خدمات مالی با کیفیت بالا به کاربران کمک می کند. پیش بینی می شود که هوش مصنوعی در فینتک می تواند تا سال 2030 هزینه های عملیاتی را تا 22 درصد کاهش دهد و به یک تریلیون دلار منجر شود. برخی از نمونه های موفق نرم افزار بانکداری آنلاین ساخته شده بر روی پایتون Venmo ،Affirm یا Robinhood هستند. این سرویس ها نه تنها به کاربران اجازه می دهند تا پرداخت ها و خرید های خود را انجام داده و کنترل کنند، بلکه یک شبکه اجتماعی در داخل نرمافزار ایجاد می کنند تا افراد بتوانند همچنان با یکدیگر ارتباط برقرار کنند. وقتی صحبت از ارز دیجیتال به میان می آید، پایتون برای ساخت راهحل هایی مانند Anaconda برای تجزیه و تحلیل مؤثر بازار، پیش بینی و تجسم دادهها استفاده می شود.
- حمل و نقل: شاید یکی از موفق ترین نمونه های استفاده از پایتون در هوش مصنوعی باشد. Uber یک پلتفرم ماشین لرنینگ Michelangelo PyML را با استفاده از Python توسعه داد که از آن برای پیش بینی های آنلاین و آفلاین برای حل کارهای روزمره استفاده می کنند. Michelangelo PyML توسعه محصول اولیه Michelangelo است که مقیاس پذیر بوده اما به اندازه کافی انعطاف پذیر نبود. اکنون، کاربران می توانند مدل ها را با PyML تأیید کنند و سپس برای کارایی و مقیاسپذیری کامل، آن ها را در Michelangelo تکرار کنند.
- مراقبت های بهداشتی: هوش مصنوعی با کمک به پیش بینی و اسکن بیماری ها، تشخیص آسیب ها و کمک به مردم در حفظ سلامتی با استفاده از برنامه های کاربردی آسان موبایل، حتی بصورت روزانه، صنعت مراقبت های بهداشتی را تغییر می دهد. بسیاری از پروژه های مبتنی بر هوش مصنوعی در این صنعت وجود دارد. به عنوان مثال، Fathom یک سیستم پردازش زبان طبیعی است که برای تجزیه و تحلیل سوابق سلامت الکترونیکی ساخته شده است و ماموریت آنها “خودکارسازی کدگذاری پزشکی” است. رهبران آنها از شرکت هایی مانند گوگل، آمازون، فیس بوک یا دانشگاه های استنفورد و هاروارد آمده اند. AiCure استارت آپ دیگری است که بر روی اطمینان از مصرف داروهای مناسب در زمان مناسب تمرکز دارد. برای این منظور، آنها از فناوری هایی مانند تشخیص چهره، تشخیص قرص و تشخیص عمل استفاده می کنند. این برنامه همچنین قادر است وضعیت بیمار را تجزیه و تحلیل کند و بفهمد که آیا درمان موثر است یا خیر. آنها از IMA استفاده می کنند که یک دستیار پزشکی تعاملی است که می تواند داده های مهم بالینی را جمع آوری کند که سپس می تواند توسط نرم افزار تجزیه و تحلیل شود.
برای یادگیری علم داده و یادگیری ماشین چه منابعی مفید هستند؟
ماهیت منبع باز پایتون به هر شرکت توسعه هوش مصنوعی اجازه می دهد تا دستاوردهای خود را با جامعه به اشتراک بگذارد. اگر تصمیم به یادگیری پایتون گرفته اید یا می خواهید از این زبان برای پروژه های هوش مصنوعی خود استفاده کنید، در اینجا لیستی از پروژه های منبع باز مفید برای شما آورده شده است:
- بنیاد OpenCog :OpenCog با تلاش برای ایجاد هوش عمومی مصنوعی (AGI) با ظرفیت های انسانی در سال 2011 تأسیس شد و اکنون در پروژه SingularityNET و همچنین در Hanson Robotics برای ارائه اطلاعات به Sofia و سایر ربات ها استفاده می شود.
- موسسه هوش مصنوعی: موسسه هوش مصنوعی بخشی از دانشکده علوم کامپیوتر در دانشگاه برمن است. این شرکت، تحقیقاتی را در مورد هوش مصنوعی انجام می دهد و کارگاه ها و رویداد های مختلفی برگزار می کند که به پیشبرد فناوری های هوش مصنوعی کمک می کند، جوانان بیشتری را در این حوزه مشارکت می دهد و آنها را آموزش می دهد و در عین حال از پروژه ها و شرکت های مبتنی بر هوش مصنوعی نیز پشتیبانی می کند.
- چت تیمی Zulip: زولیپ “پربازده ترین چت تیمی جهان” است که امکان پردازش هزاران پیام بلادرنگ در روز را فراهم می کند. 500 شرکت فورچون و سایر پروژههای بزرگ و منبع باز از Zulip استفاده می کنند که سازماندهی واضح، ارتباطات ناهمزمان و دیگر مزایای بزرگی را که برای تیم ها مفید است، ارائه می دهد.
- کتابخانه Magenta: یک کتابخانه پایتون و یک پروژه تحقیقاتی است که بزرگترین هدف آن ساخت موسیقی و هنر با استفاده از هوش مصنوعی است. همچنین روی تصاویر، آهنگ ها و طراحی ها کار می کند.
- قابلیت MailPile: یک سرویس گیرنده ایمیل نوآورانه است که بر ارتباطات ایمن و خصوصی تمرکز دارد. این پروژه ای است که سعی می کند به یک سوال پاسخ دهد: “چگونه می توانم از حریم خصوصی خود به صورت آنلاین محافظت کنم؟”. همچنین سریع و بدون تبلیغات است و دارای یک عملکرد جستجوی قدرتمند، حریم خصوصی و رمزگذاری است.
چرا با دوره علم داده و یادگیری ماشین با پایتون در فناوران آنیسا زودتر می توان به هدف خود رسید؟
این دوره با تکیه بر تجربیات ارزنده اساتید در حوزه فناوری اطلاعات و تجربه کاری فراوان در این زمینه رقم خورده است. از این رو در این دوره تمامی نکاتی که شما دانشجویان عزیز برای ورود به بازار کار این رشته به آن احتیاج دارید به شما آموزش داده می شود و با توجه به اینکه دانش لازم و کافی برای ورود به این بازار پرتقاضا و آینده دار در اختیار شما قرار می گیرد شما به راحتی میتوانید با گذراندن این دوره ارزشمند در رسیدن به اهداف خود پیشرو باشید.
نتیجه گیری:
هوش مصنوعی و یادگیری ماشین فناوری هایی هستند که به سرعت در حال رشد جهانی هستند که به دانشمندان اجازه می دهند تا معضلات زندگی واقعی را حل کنند و راهحل های هوشمندانه ای ارائه کنند. بنابراین، ما دیدیم که نقش پایتون در هوش مصنوعی و علم داده واقعاً بسیار قوی است. به همین دلیل است که پایتون و هوش مصنوعی در ترکیب با یکدیگر بسیار محبوب هستند. در حالی که علم داده یک رشته با مزایای سودآور فراوان است، اما از معایبی نیز رنج می برد. یک حوزه با اشباع کم و پر درآمد که در چندین زمینه از زندگی انقلابی ایجاد کرده است، با توجه به گستردگی این رشته و ماهیت میان رشته ای آن، زمینه های خاص خود را نیز دارد. علم داده یک حوزه در حال پیشرفت است که سالها طول می کشد تا در آن مهارت کسب شود. در پایان، این شما هستید که تصمیم می گیرید که آیا جوانب مثبت علم داده و یادگیری ماشین به شما انگیزه می دهد که این کار را بعنوان شغل آینده خود بپذیرید یا معایبی که به شما در تصبر خلاف برخی زبانهای برنامهنویسی رایج دیگر که بلاکهای کد در آکولاد تعریف میشوند (بهویژه زبانهایی که از گرامر زبان سی پیروی میکنند) در زبان پایتون از نویسه فاصله و جلوبردن متن برنامه برای مشخص کردن بلاکهای کد استفاده میشود. به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار میگیرند، و این تعداد در بلاکهای کد درونیتر افزایش مییابد. بدین ترتیب بلاکهای کد به صورت خودکار ظاهری مرتب دارند.
پایتون مدلهای مختلف برنامه نویسی (از جمله شی گرا و برنامه نویسی دستوری و تابع محور) را پشتیبانی میکند و برای مشخص کردن نوع متغییرها از یک سامانه پویا استفاده میکند. این زبان از زبانهای برنامه نویسی مفسر بوده و به صورت کامل یک زبان شیگرا است که در ویژگیها با زبانهای تفسیری پرل، روبی، اسکیم، اسمالتاک و تیسیال مشابهت دارد و از مدیریت خودکار حافظه استفاده میکند.
پایتون پروژهای آزاد و متنباز توسعهیافتهاست و توسط بنیاد نرمافزار پایتون مدیریت میگردد.
پایتون قابل توسعه است:
). زمانی که واقعا درگیر شوید، می توانید مفسر پایتون را به یک برنامه نوشته شده به زبان C اتصال دهید و از آن به عنوان یک افزونه یا دستور زبان برای آن برنامه استفاده کنید. ضمنا نام این زبان برگرفته از برنامه “Monty Python’s Flying Circus در BBC است و هیچ ارتباطی با خزندگان ندارد(مار پیتون). ارجاع به مستندات Monty Python skits نه تنها مجاز است ، بلکه مورد تشویق نیز واقع می شود.
حال که همه شما درباره پایتون مشتاق و هیجان زده هستید، میخواهید آن را با جزییات بیشتری امتحان کنید. از آنجایی که بهترین راه برای یادگیری یک زبان استفاده از آن است، این آموزش همزمان با خواندن، شما را دعوت به بازی با مفسر پایتون می کند.
در بخش بعدی، مکانیزم استفاده از مفسر توضیح داده می شود که ممکن است اطلاعات کسل کننده ای باشد اما برای انجام مثال هایی که بعدا نشان داده می شوند ضروری است. در ادامه این آموزش، ویژگی های متنوع زبان و سیستم پایتون از طریق مثال ها معرفی می شود. از اصطلاحات ساده شروع می کنیم، سپس عبارات و انواع داده، توابع و ماژول ها، و در نهایت مفاهیم پیشرفته مانند استثناها و کلاس های تعریف شده توبا وجود آنکه دادهکاوی برای سالهای زیادی مطرح بوده اما با برجستهتر شدن و افزایش توجهات به آن باری دیگر این مساله که گروهی دادهکاوی را طرحی نو از آمار کلاسیک میپنداشتند قوت گرفت. در عین حال، این مشکل وجود داشته و دارد که بسیاری از افراد همچنان از آگاه نیستند.
امروزه، افزایش علاقمندی به علم داده و دادهکاوی از یک سو و روند رو به رشد و توسعه و از سوی دیگر موجب تحولی اساسی در فضای علمی و صنعتی شده که همچنان نیز ادامه دارد و به دلیل بالا بودن نرخ این تحول و رشد، آینده این علوم به نوعی در هالهای از ابهام قرار داشته و کسی نمیداند در آینده پیش رو بشر با چه چیزی مواجه خواهد شد.
شاید خیلی زود عاملهای هوشمندی که با بهرهگیری از انسانگونه رفتار و عمل میکنند و با بهرهگیری از دادهکاوی، تحلیلهای داده و تصمیمسازانی به مراتب موفقتر از انسانها هستند جهان را تسخیر کرده و آنها باشند که حکمرانی جهان انسانی را به دست میگیرند!
اما ظهور و توسعه هوش مصنوعی و علم داده خود نیازمند ابزارهایی برای پیادهسازی و استفاده از مفاهیم آنها برای کاربردهای جهانواقعی بوده است. از همین رو نرمافزارهای متعددی معرفی شدند. در این میان زبانهای برنامهنویسی محاسباتی همچون R و زبانهای اسکریپتنویسی مانند پایتون به دلایل گوناگون توانستند جایگاه خوبی را در میان پژوهشگران و علاقمندان به این حوزه کسب کنند. با رشد حجم، نرخ تولید و تنوع دادهها مسائل تحلیل داده رنگ و بوی جدیدی گرفتند و مبحث مطرح شد. با ظهور کلانداده، با قابلیتهای پردازشی جدید مطرح شدند.
در میان ابزارهای موجود برای تحلیل دادهها، زبان برنامهنویسی پایتون که در ابتدا یک زبان همه منظوره بود به دلیل رشد و توسعه سریع کتابخانههای مربوط به علم داده، آمار و احتمال و جبرخطی و داشتن جامعه قدرتمندی که همواره آنها را توسعه میدهند به جایگاه قابل توجهی دست یافت. تا جایی که در حال حاضر در بسیاری از آگهیهای استخدام دادهکاو، تحلیلگر یا تسلط به زبان پایتون یکی از معیارهای کلیدی است.
در این مطلب یک راهنمای کامل و جامع برای یادگیری علم داده با پایتون ارائه شده که هرآنچه برای آغاز یادگیری علم داده با پایتون نیاز است را به بیان ساده و به طور جامع در اختیار مخاطب قرار میدهد. افرادی که تمایل دارند هوش مصنوعی و یادگیری عمیق را به طور جدیتر بیاموزند نیز میتوانند از مطالب زیر بهرهمند شوند.
این راهنما به افراد کمک میکند تا پایتون را سریعتر فرا بگیرند و با چگونگی استفاده از آن برای علم داده نیز به خوبی آشنا شوند. مطلب پیش رو به گونهای حاضر شده تا افراد به شکل کاملا کاربردی بتوانند کار با پایتون را بیاموزند. سرفصلهای کلی موضوعات ارائه شده در این مطلب به شرح زیر است.
- مبانی پایتون برای تحلیل داده
- کتابخانهها و ساختارهای داده در پایتون
- تحلیل اکتشافی در پایتون با استفاده از Pandas
- پیشپردازش دادهها در پایتون با استفاده از Pandas
- ساخت یک مدل پیشبین در پایتون
۱. مبانی پایتون برای تحلیل داده
در ادامه مبانی لازم جهت یادگیری پایتون برای علم داده بیان شدهاند.
چرا بسیاری از افراد برای تحلیل داده پایتون میآموزند؟
پایتون اخیرا توجهات زیادی را به عنوان زبان منتخب برای تحلیل داده به خود جلب کرده است. در ادامه برخی مزایای پایتون که موجب شده تا به یکی از ابزارهای اصلی تحلیلگران داده مبدل شود بیان شدهاند.
- متنباز بودن و نصب رایگان
- جامعه آنلاین فوقالعاده
- یادگیری بسیار آسان
- قابلیت تبدیل شدن به یک زمان متداول برای علم داده و تولید محصولات تحلیلی مبتنی بر وب
البته پایتون در کنار مزایا، معیابی نیز دارد که مهمترین آنها در ادمه بیان شده است.
- پایتون یک «زبان تفسیری» (Interpreted Language) است (زبان «کامپایلی» (compiled language) نیست)، از این رو ممکن است نسبت به یک زبان کامپایلی مدت زمان بیشتری CPU استفاده کند. با این وجود به دلیل صرفهجویی که در زمان برنامهنویسها دارد (به دلیل سهولت استفاده)، همچنان یک انتخاب خوب است.
پایتون نسخه ۲.۷ در مقایسه با پایتون ۳.۴
انتخاب از میان پایتون نسخه ۲.۷ و ۳.۴ یکی از پربحثترین موضوعات پیرامون این زبان برنامهنویسی است. توصیه میشود که فراگیران به ویژه افراد مبتدی به این بحث ورود نکنند، زیرا هیچ انتخاب صحیح یا غلطی وجود ندارد. انتخاب گزینه مناسب کاملا بسته به شرایط و نیازهای کاربر دارد. در ادامه اشاراتی برای کمک به مخاطبان جهت انتخاب نسخه مناسب خودشان ارائه شده است.
چرا پایتون ۲.۷؟
- جامعه پشتیبانی فوقالعادهای دارد. این یکی از چیزهایی است که کاربران در روزهای آغاز کار خود با یک زبان جدید به شدت به آن نیاز پیدا میکنند. پایتون ۲ در اواخر سال ۲۰۰۰ میلادی منتشر شد و برای بیش از ۱۵ سال مورد استفاده قرار گرفته است.
- میزان بسیار زیادی از کتابخانههای شخص ثالث برای این نسخه از پایتون موجود هستند. گرچه کتابخانههای زیادی نیز از پایتون نسخههای ۳ پشتیبانی میکنند اما همچنان تعداد زیادی از ماژولها تنها در نسخههای ۲ کار میکنند. افرادی که قصد دارند از پایتون برای کاربردهای نرمافزاری مانند توسعه وب با وابستگی بالا به ماژولهای خارجی استفاده کنند، شاید بهتر باشد با پایتون ۲.۷ کار کنند.
- برخی از ویژگیهای نسخههای ۳ دارای «سازگاری عقبرو» (backward compatibility) هستند و میتوانند با نسخه ۲.۷ کار کنند.
چرا پایتون ۳.۴؟
- این نسخه از پایتون سریعتر و شفافتر است. توسعهدهندگان پایتون برخی مشکلات موروثی و اشکالات جزئی موجود در این نسخه را به منظور ایجاد بنیانی مستحکمتر برای آینده برطرف کردهاند. این مساله ممکن است در ابتدا مهم به نظر نیاید اما با گذر زمان اهمیت آن آشکار میشود.
- این نسخه یک ویژگی محسوب میشود! پایتون ۲.۷ آخرین نسخه از خانواده ۲ بوده و همه افراد باید به تدریج به نسخه ۳ جابهجا شوند. پایتون ۳ نسخههای پایداری را برای پنج سال منتشر کرده و به همین شکل ادامه خواهد داد.
در مجموع باید گفت در مقایسه پایتون ۲.۷ و ۳.۴ هیچ برنده مشخصی وجود ندارد، اما به نظر میرسد آنچه افراد تازهوارد باید روی آن متمرکز شوند فراگیری پایتون به عنوان یک زبان است. جابهجایی بین نسخهها مسالهای است که در گذر زمان مطرح شده و حل میشود.
چگونه میتوان پایتون را نصب کرد؟
دو رویکرد برای نصب پایتون وجود دارد که در ادامه بیان شدهاند.
- میتوان پایتون را به طور مستقیم از سایت پروژه و مولفههای آن و کتابخانههای مورد نیاز را نیز به همین صورت دانلود و نصب کرد.
- میتوان یک بسته را دانلود و نصب کرد که دارای کتابخانههای از پیش نصب شده است. در این راستا، دانلود و نصب «آناکوندا» (Anaconda) که یک توزیع رایگان و متنباز از زبان های برنامهنویسی پایتون و R برای کاربردهای مرتبط با علم داده و یادگیری ماشین است توصیه میشود. گزینه دیگر Enthought Canopy Express است.
انتخاب یک محیط توسعه
هنگامی که فرد پایتون را نصب کرد، گزینههای گوناگونی برای انتخاب محیط توسعه وجود دارد. در ادامه سه مورد از متداولترین گزینهها بیان شدهاند.
- مبتنی بر ترمینال/شِل
- IDLE (محیط پیشفرض)
- iPython Notebook (شبیه markdown در زبان برنامهنویسی R است)
انتخاب محیط توسعه مناسب بسته به نیازهای افراد است و هر شخص متناسب با نیازها و البته سلیقه شخصی یکی یا چند تا از این موارد را انتخاب کند. iPython Notebook یک نرمافزار وب متنباز است که مورد توجه بسیاری از دادهکاوها، تحلیلگران داده و دانشمندان داده واقع شده. دلیل این امر ویژگیهای قابل توجه این نرمافزار به ویژه برای انجام پروژههای تحلیل داده محسوب میشود. از جمله این ویژگیها قابلیت مستندسازی ضمن نوشتن کد و اجرای کدها در بلاکهای جداگانه است (به جای اجرای خط به خط). از دیگر مزایای iPython Notebook میتوان به مواردی که در زیر آمده اشاره کرد.
- شِل (پوسته) تعاملی (Interactive shells) مبتنی بر ترمینال و کیوت (Qt)
- یک رابط نوتبوک (notebook interface) مبتنی بر مرورگر با پشتیبانی از کد، متن، عبارات ریاضی، نمودارهای توکار و دیگر رسانهها
- پشتیبانی از بصریسازی داده تعاملی و استفاده از جعبهابزارهای GUI
- مفسرهای توکار و انعطافپذیر برای بارگذاری در پروژهها
- وجود ابزارهای پردازش موازی
اجرای چند برنامه ساده در پایتون
میتوان برای شروع کار از پایتون به عنوان یک ماشین حساب ساده استفاده کرد.
چند نکته شایان توجه:
- میتوان iPython notebook را با نوشتن “ipython notebook” در ترمینال یا cmd (بسته به سیستمعاملی که کاربر استفاده میکند) آغاز کرد.
- میتوان iPython notebook را به سادگی و تنها با کلیک کردن روی UntitledO (پس از باز کردن برنامه و ایجاد پروژه جدید) نامگذاری کرد.
- رابط برای نمایش ورودیها از «[*] In» و جهت نمایش خروجیها از «[*] Out» استفاده میکند.
- میتوان کد نوشته شده را با فشردن «Shift + Enter» یا «ALT + Enter» (در صورتی که کاربر قصد داشته باشد یک سطر اضافی در ادامه کد قرار دهد این گزینه مناسب است) اجرا کرد.
کتابخانهها و ساختارهای داده در پایتون
ساختارهای داده در پایتون
در ادامه برخی از ساختارهای داده مورد استفاده در پایتون بیان شدهاند. برای استفاده درست و موثر از این ساختارها، آشنایی با آنها نیاز است.
لیستها (Lists): لیستها یکی از همهکارترین ساختارها در پایتون هستند. یک لیست را میتوان به سادگی با نوشتن مجموعهای از مقادیر جدا شده به وسیله ویرگول در میان دو کروشه تعریف کرد. لیستها ممکن است شامل آیتمهایی از انواع گوناگون باشند، اما معمولا کلیه آیتمهای یک لیست نوع یکسانی دارند. لیستهای پایتون و عناصر منفرد از لیست قابل تغییر هستند. در ادامه مثالی برای تعریف لیست و دسترسی به آن ارائه شده است.
ساختارهای شرطی و حلقهها در پایتون
for i in [Python Iterable]:
expression(i)
fact=1
for i in range(1,N+1):
fact *= i
عبارات شرطی برای اجرای یک بخش از کد براساس یک شرط مورد استفاده قرار میگیرند. پرکاربردترین ساختار شرطی if-else محسوب میشود که نحو آن به صورت زیر است.
if [condition]:
__execution if true__
else:
__execution if false__
برای مثال، در برنامهای که تشخیص دهد عدد زوج است یا فرد و پاسخ مناسب را چاپ کند به صورت زیر عمل میشود.
if N%2 == 0:
print (‘Even’)
else:
print (‘Odd’)
اکنون که مبانی پایتون تشریح شد، میتوان یک گام به جلو حرکت کرد. پرسشی که در این وهله مطرح میشود آن است که چگونه میتوان وظایف زیر را انجام داد.
- ضرب کردن دو ماتریس
- پیدا کردن ریشه یک معادله درجه دوم
- ترسیم نمودار میلهای و هیستوگرام
- ساخت مدلهای آماری
- دسترسی به صفحات وب و گردآوری داده از آنها
math.factorial(N)
کتابخانههای پایتون
اکنون در سفر علم داده با پایتون، یک گام به پیش رفته تا فراگیران، پایتون را ضمن آشنایی با برخی از کتابخانههای مفید و کارآمد علم داده و ریاضیات و جبر خطی فرابگیرند. اولین گام در این راستا، آموختن شیوه ایمپورت کردن کتابخانه به محیط برنامه است. در پایتون چندین راه برای انجام این کار وجود دارد که در زیر نشان داده شدهاند.
import math as m
و
from math import *
تذکر: گوگل توصیه میکند که از راهکار اول برای ایمپورت کردن کتابخانهها استفاده شود زیرا بدین شکل مشخص است که توابع از کجا آمدهاند. در ادامه لیستی از کتابخانهها آمده که برای هرگونه محاسبات علمی و تحلیل دادهای به آنها نیاز خواهد بود.
Bokeh برای ساخت نمودارهای تعاملی، دشبوردها و برنامههای داده در مرورگرهای مدرن مورد استفاده قرار میگیرد. این کتابخانه کاربر را قادر به تولید گرافیکهای ظریف و مختصری به سبک D3.js میسازد. علاوه بر آنچه گفته شد، این کتابخانه توانایی تعامل با کارایی بالا در مجموعه دادههای بسیار بزرگ یا جریانی را دارا است.
Requests برای دسترسی به وب است. این کتابخانه به صورت مشابه با کتابخانه پایتون استاندارد urllib2 مورد استفاده قرار میگیرد، اما کد زدن با استفاد از Requests سادهتر است. امکان دارد کاربران با تجربه تفاوتهای ظریفی بین این دو کتابخانه پیدا کنند، اما Requests برای افراد مبتدی راحتتر است.
کتابخانههای دیگری که ممکن است به آنها نیاز شود عبارتند از:
- os برای عملیات سیستمعامل و فایل
- networkx و igraph برای دستکاری دادههای مبتنی بر گراف
- regular expressions برای یافتن الگوها در دادههای متنی
- BeautifulSoup برای گردش در وب قابل استفاده است. این کتابخانه نسبت به Scrapy در درجه دوم قرار میگیرد و ناقصتر محسوب میشود زیرا در یک اجرا تنها توانایی استخراج اطلاعات از یک صفحه وب را دارد.
اکنون که مبانی پایتون و کتابخانههای اضافی آن تشریح شد، در ادامه مطلب با نگاهی عمیق به چگونگی حل مساله تحلیل داده با بهرهگیری از پایتون پرداخته خواهد شد. بله، منظور ساخت یک مدل پیشبین است. در فرآیند پیش رو از برخی کتابخانههای قدرتمند استفاده و با سطح دیگری از ساختارهای داده کار میشود. در ادامه سه فاز کلیدی زیر انجام خواهند شد:
- «اکتشاف در دادهها» (Data Exploration): کسب اطلاعات بیشتر پیرامون دادههای موجود
- Data Munging: پاکسازی دادهها و بازی با آنها به منظور مدلسازی بهتر دادهها انجام میشود.
- «مدلسازی پیشبین» (Predictive Modeling): اجرای الگوریتمهای واقعی و لذت بردن از تحلیل دادهها.
تمرین کار با مجموعه دادهها — مساله پیشبینی وام
میتوان مجموعه داده استفاده شده در این مثال را دانلود کرد. توصیف متغیرهای این مجموعه داده در ادامه آمده است.
آغاز اکتشاف
ipython notebook –pylab=inline
plot(arange(5))
کلیه مراحل این تمرین در سیستمعامل گنولینوکس انجام شده و مجموعه داده مورد استفاده در مسیر زیر ذخیره شده است.
/home/kunal/Downloads/Loan_Prediction/train.csv
ایمپورت کردن کتابخانهها و مجموعه داده
در ادامه، لیست کتابخانههایی که در این راهنما مورد استفاده قرار میگیرند بیان شده است.
import pandas as pd
import numpy as np
import matplotlib as plt
%matplotlib inline
df = pd.read_csv(“/home/kunal/Downloads/Loan_Prediction/train.csv”) #Reading the dataset in a dataframe using Pandas
اکتشاف داده سریع
df.head(10)
این دستور باید ۱۰ سطر را چاپ کند. همچنین میتوان با پرینت کردن مجموعه داده تعداد سطرهای بیشتری را دید. گام بعدی داشتن نگاهی به خلاصه فیلدهای عددی با استفاده از تابع ()describe است.
df.describe()
در ادامه برخی از نتایجی که میتوان با نگاه به خروجی تابع ()describe به آنها دست یافت ارائه شدهاند.
- LoanAmount دارای ۲۲ مقدار ناموجود (۵۹۲– ۶۱۴) است.
- Loan_Amount_Term دارای ۱۴ مقدار ناموجود (۶۰۰ – ۶۱۴) است.
- Credit_History دارای ۵۰ مقدار ناموجود (۵۶۴-۶۱۴) است.
df[‘Property_Area’].value_counts()
تحلیل توزیع
df[‘ApplicantIncome’].hist(bins=50)
در اینجا قابل مشاهده است که تعداد ناچیزی مقادیر بسیار بزرگ وجود دارد. به همین دلیل است که برای ترسیم توزیع به طور شفاف نیاز به ۵۰ «رده» (Bin) است (به هیستوگرام متغیرهای گسسته که میتوانند m مقدار متفاوت داشته باشند، هیستوگرام m-bin گفته میشود). در گام بعدی، برای فهمیدن توزیع دادهها نمودار جعبهای مورد بررسی قرار میگیرد. نمودار جعبهای را میتوان با دستور زیر ترسیم کرد.
df.boxplot(column=’ApplicantIncome’)
این نمودار گواهی بر وجود تعداد زیادی مقادیر ناهنجار یا دور افتاده است. این مساله به وجود اختلاف درآمد در میان اقشار مختلف جامعه نسبت داده میشود. بخشی از این مساله نیز احتمالا مربوط به این است که افرادی با سطح تحصیلات گوناگون مورد بررسی قرار گرفتهاند. در ادامه افراد بر اساس سطح تحصیلات جداسازی میشوند.
df[‘LoanAmount’].hist(bins=50)
df.boxplot(column=’LoanAmount’)
تحلیل متغیرهای دستهای
تذکر: در اینجا وضعیت به این صورت کدگذاری شده که ۱ برای «بله» و ۰ برای «خیر» است. بنابراین میانگین احتمال دریافت وام را نشان میدهد. اکنون مراحل مورد نیاز برای تولید بینشی مشابه، با استفاده از پایتون، بررسی شده است. از قطعه کد زیر میتوان برای تولید چیزی مشابه با آنچه از اکسل به دست آمده استفاده کرد.
temp1 = df[‘Credit_History’].value_counts(ascending=True)
temp2 = df.pivot_table(values=’Loan_Status’,index=[‘Credit_History’],aggfunc=lambda x: x.map({‘Y’:1,’N’:0}).mean())
print (‘Frequency Table for Credit History:’)
print (temp1)
print (‘\nProbility of getting loan for each Credit History class:’)
print (temp2)
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,4))
ax1 = fig.add_subplot(121)
ax1.set_xlabel(‘Credit_History’)
ax1.set_ylabel(‘Count of Applicants’)
ax1.set_title(“Applicants by Credit_History”)
temp1.plot(kind=’bar’)
ax2 = fig.add_subplot(122)
temp2.plot(kind = ‘bar’)
ax2.set_xlabel(‘Credit_History’)
ax2.set_ylabel(‘Probability of getting loan’)
ax2.set_title(“Probability of getting loan by credit history”)
temp3 = pd.crosstab(df[‘Credit_History’], df[‘Loan_Status’])
temp3.plot(kind=’bar’, stacked=True, color=[‘red’,’blue’], grid=False)
جنسیت را نیز میتوان به این ترکیب افزود (مشابه جدول Pivot در اکسل).
پیشپردازش دادهها – خلاصهای از نیازها
- مقادیر ناموجود برای برخی از متغیرها وجود دارند. باید این مقادیر را به طور هوشمندانهای بسته به میزان مقادیر ناموجود و اهمیت آن متغیر تخمین زد.
- هنگام بررسی توزیع مقادیر برای متغیرها، مشهود بود که ApplicantIncome و LoanAmount دارای مقادیر بسیار بزرگی هستد. گرچه، این مقادیر ممکن است در بردارنده اطلاعات نوآورانهای باشند، اما باید با آنها به شکل مناسبی مواجه شد.
بررسی مقادیر ناموجود در مجموعه داده
df.apply(lambda x: sum(x.isnull()),axis=0)
دستور بالا باید تعداد مقادیر ناموجود در هر سطر را که ()isnull در صورت هیچ مقدار بودن (null) یک متغیر باز میگرداند، در اختیار بگذارد.
گرچه مقادیر از دست رفته تعداد زیادی ندارند، اما متغیرهای زیادی دارای مقادیر ناموجود هستند، بنابراین هر یک از این موارد باید تخمین زده و به دادهها اضافه شوند. روشهای گوناگونی برای حله مساله مقادیر ناموجود وجود دارد که تشریح کلیه آنها از حوصله این بحث خارج است.
df[‘LoanAmount’].fillna(df[‘LoanAmount’].mean(), inplace=True)
با توجه به اینکه نزدیک به %86 مقادیر «No» هستند، میتوان مقادیر ناموجود را با «No» جایگزین کرد زیرا احتمال آنکه تخمین درستی باشد بالا است. این کار را میتوان با استفاده از قطعه کد زیر انجام داد.
df[‘Self_Employed’].fillna(‘No’,inplace=True)
table = df.pivot_table(values=’LoanAmount’, index=’Self_Employed’ ,columns=’Education’, aggfunc=np.median)
# Define function to return value of this pivot_table
def fage(x):
return table.loc[x[‘Self_Employed’],x[‘Education’]]
# Replace missing values
df[‘LoanAmount’].fillna(df[df[‘LoanAmount’].isnull()].apply(fage, axis=1), inplace=True)
تذکر: این روش تنها در صورتی پاسخگو است که مقادیر ناموجود با استفاده از راهکار پیشتر بیان شده پُر نشده باشند.
df[‘LoanAmount_log’] = np.log(df[‘LoanAmount’])
df[‘LoanAmount_log’].hist(bins=20)
بررسی مجدد نمودار هیستوگرام:
df[‘TotalIncome’] = df[‘ApplicantIncome’] + df[‘CoapplicantIncome’]
df[‘TotalIncome_log’] = np.log(df[‘TotalIncome’])
df[‘LoanAmount_log’].hist(bins=20)
ساخت یک مدل پیشبین در پایتون
df[‘Gender’].fillna(df[‘Gender’].mode()[0], inplace=True)
df[‘Married’].fillna(df[‘Married’].mode()[0], inplace=True)
df[‘Dependents’].fillna(df[‘Dependents’].mode()[0], inplace=True)
df[‘Loan_Amount_Term’].fillna(df[‘Loan_Amount_Term’].mode()[0], inplace=True)
df[‘Credit_History’].fillna(df[‘Credit_History’].mode()[0], inplace=True)
from sklearn.preprocessing import LabelEncoder
var_mod = [‘Gender’,’Married’,’Dependents’,’Education’,’Self_Employed’,’Property_Area’,’Loan_Status’]
le = LabelEncoder()
for i in var_mod:
df[i] = le.fit_transform(df[i])
df.dtypes
#Import models from scikit learn module:
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import KFold #For K-fold cross validation
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn import metrics
#Generic function for making a classification model and accessing performance:
def classification_model(model, data, predictors, outcome):
#Fit the model:
model.fit(data[predictors],data[outcome])
#Make predictions on training set:
predictions = model.predict(data[predictors])
#Print accuracy
accuracy = metrics.accuracy_score(predictions,data[outcome])
print (“Accuracy : %s” % “{0:.3%}”.format(accuracy))
#Perform k-fold cross-validation with 5 folds
kf = KFold(data.shape[0], n_folds=5)
error = []
for train, test in kf:
# Filter training data
train_predictors = (data[predictors].iloc[train,:])
# The target we’re using to train the algorithm.
train_target = data[outcome].iloc[train]
# Training the algorithm using the predictors and target.
model.fit(train_predictors, train_target)
#Record error from each cross-validation run
error.append(model.score(data[predictors].iloc[test,:], data[outcome].iloc[test]))
print (“Cross-Validation Score : %s” % “{0:.3%}”.format(np.mean(error)))
#Fit the model again so that it can be refered outside the function:
model.fit(data[predictors],data[outcome])
رگرسیون لوجستیک
در ادامه یک مدل رگرسیون برای دادههای موجود که پیش پردازش آنها نیز انجام شده ساخته میشود. یک راهکار آن است که همه متغیرها به مدل داده شوند، ولیکن این امر موجب میشود (برای افرادی که با این مبحث هنوز آشنایی ندارند جای نگرانی وجود ندارد). به بیان ساده، دریافت کلیه متغیرها ممکن است منجر به درک روابط پیچیده موجود به طور خاص در دادهها شود و مانع از عمومیسازی خوب مدل شود. برای مطالعه بیشتر پیرامون رگرسیون لوجستیک توصیه میشود. میتوان به سادگی از چند فرضیه برای شروع کار استفاده کرد. شانس دریافت وام بالاتر خواهد بود اگر:
- متقاضیان دارای تاریخچه اعتباری باشند (این مورد در اکتشاف دادهها مشاهده شد)
- متقاضایان و ضامنهای آنها درآمد ورودی بیشتری داشته باشند.
- متقاضیان سطح تحصیلات بیشتری داشته باشند.
- متقاضی دارای املاک در نواحی شهری با چشمانداز رشد بالا باشد.
با توجه به آنچه بیان شد، اولین مدل با «Credit_History» ساخته میشود.
outcome_var = ‘Loan_Status’
model = LogisticRegression()
predictor_var = [‘Credit_History’]
classification_model(model, df,predictor_var,outcome_var)
صحت: %80.945 و امتیاز اعتبارسنجی متقابل: %80.946
#We can try different combination of variables:
predictor_var = [‘Credit_History’,’Education’,’Married’,’Self_Employed’,’Property_Area’]
classification_model(model, df,predictor_var,outcome_var)
صحت: %80.945 و امتیاز اعتبارسنجی متقابل: %80.946
بهطور کلی، انتظار میرود که با افزودن متغیرها صحت افزایش پیدا کند. اما این کار چالش برانگیزتر است. صحت و امتیاز اعتبارسنجی متقابل در حضور متغیرهای کماهمیتتر تحت تاثیر قرار نمیگیرند. Credit_History وضعیت غالب است. اکنون دو گزینه وجود دارد.
- مهندسی ویژگیها: اشتقاق اطلاعات جدید و تلاش برای پیشبینی آنها. انجام این کار بسته به خلاقیت مخاطبان میتواند به صورتهای گوناگونی انجام پذیرد.
- روشهای مدلسازی بهتر. این رویکرد در ادامه مورد بررسی قرار میگیرد.
درخت تصمیم
(Decision Tree) راهکار دیگری برای ساخت یک مدل پیشبین است. این راهکار به داشتن صحت بالاتر نسبت به مدل رگرسیون لوجستیک شناخته شده است.
model = DecisionTreeClassifier()
predictor_var = [‘Credit_History’,’Gender’,’Married’,’Education’]
classification_model(model, df,predictor_var,outcome_var)
صحت: %81.930 و امتیاز اعتبارسنجی متقابل: %76.656
در اینجا مدل مبتنی بر متغیرهای دستهای نمیتواند تاثیر داشته باشد زیرا Credit History بر آنها غلبه دارد. بنابراین، از چند متغیر عددی استفاده میشود.
#We can try different combination of variables:
predictor_var = [‘Credit_History’,’Loan_Amount_Term’,’LoanAmount_log’]
classification_model(model, df,predictor_var,outcome_var)
صحت %92.345 و امتیاز اعتبارسنجی متقابل: %71.009
چنانکه مشهود است با افزودن متغیرها، صحت افزایش پیدا کرد و امتیاز اعتبارسنجی متقابل کاهش یافت. این مساله به دلیل آنکه مدل با دادهها بیشبرازش شد به وقوع پیوسته است. اکنون یک الگوریتم پیچیدهتر مورد استفاده قرار می گیرد تا نتایج حاصل از آن با روش درخت تصمیم و رگرسیون لوجستیک مقایسه شوند.
جنگل تصادفی
الگوریتم دیگری برای حل مسائل دستهبندی محسوب میشود. مزیت این الگوریتم آن است که میتواند با همه ویژگیها کار کند و یک ماتریس اهمیت ویژگیها باز میگرداند که برای انتخاب ویژگیها قابل استفاده است.
model = RandomForestClassifier(n_estimators=100)
predictor_var = [‘Gender’, ‘Married’, ‘Dependents’, ‘Education’,
‘Self_Employed’, ‘Loan_Amount_Term’, ‘Credit_History’, ‘Property_Area’,
‘LoanAmount_log’,’TotalIncome_log’]
classification_model(model, df,predictor_var,outcome_var)
صحت: %100.000 و امتیاز اعتبارسنجی متقابل %78.179
در اینجا مشهود است که صحت مدل برای دادههای آزمون %۱۰۰ است. این نهایت بیشبرازش محسوب میشود و به دو شکل قابل حل است:
- کاهش تعداد پیشبینها
- تنظیم پارامترهای مدل
در ادامه هر دو راهکار بالا بررسی میشوند. ابتدا ماتریس اهمیت ویژگیها که بر اساس آن میتوان مهمترین ویژگیها را گرفت مشاهده میشود.
#Create a series with feature importances:
featimp = pd.Series(model.feature_importances_, index=predictor_var).sort_values(ascending=False)
print (featimp)
اکنون از ۵ متغیر بالاتر برای ساخت مدل استفاده میشود. همچنین، پارامترهای جنگل تصادفی نیز کمی تنظیم میشوند.
model = RandomForestClassifier(n_estimators=25, min_samples_split=25, max_depth=7, max_features=1)
predictor_var = [‘TotalIncome_log’,’LoanAmount_log’,’Credit_History’,’Dependents’,’Property_Area’]
classification_model(model, df,predictor_var,outcome_var)
صحت: ٪82.899 و امتیاز اعتبارسنجی متقابل: %81.461
شایان توجه است که صحت مدل کاهش یافته اما امتیاز اعتبارسنجی متقابل افزایش یافته که نشان میدهد مدل به خوبی عمومیسازی شده. باید به خاطر داشت که مدلهای جنگل تصادفی دقیقا قابل تکرار نیستند. به عبارت دیگر، اجراهای گوناگون منجر به تنوع ناچیزی به دلیل تصادفیسازی میشوند. اما خروجی نباید تغییر قابل توجهی داشته باشد. مشهود است که با انجام تنظیمات کمی در پارامترهای جنگل تصادفی، صحت اعتبارسنجی متقابل بهتری نسبت به رگرسیون لوجستیک به دست آمد. این تمرین یافتههای قابل توجهی را در اختیار قرار میدهد.
- استفاده از مدلهای پیچیدهتر الزاما منجر به نتایج بهتری نمیشود.
- باید از استفاده از روشهای مدلسازی پیچیده به عنوان جعبه سیاه بدون درک مفاهیم آنها ممانعت کرد.
- مهندسی ویژگیها کلید موفقیت است. هر کسی میتواند از یک مدل Xgboost استفاده کند ولی هنر و خلاقیت واقعی ارتقای ویژگیها برای تناسب بهتر مدل است.
پیشنهاد ما به شما: اینستاگرام آموزش پایتون اصفهان
سخن پایانی
امید میرود که این راهنما توانسته باشد به علاقمندان علم داده و دادهکاوی که تمایل داشتند در عمل نیز با بهرهگیری از زبان پایتون به فعالیت بپردازند کمک کرده باشد. انتظار میرود این مطلب علاوه بر روشهای پایهای تحلیل، چگونگی تحلیل برخی از روشهای پیچیدهتر نیز که امروزه به وفور مورد استفاده قرار میگیرند کمک کرده باشد.
اگر مطلب بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
^^
سط کاربر معرفی می شوند.
میم گیری دقیق کمک می کند.