پایتون یا R؟ | کدام یک در تحلیل داده‌ها موثرتر است؟

معرفی زبان‌های پایتون و R

افزایش در دسترس بودن داده­‌ها، محاسبات قدرتمندتر و اهمیت تحلیل داده‌ها بر تصمیمات مهم در کسب‌وکار باعث پیشرفت‌های بسیار زیادی در علم داده (data science) گردیده است. طبق گزارشی از IBM در سال 2015، 2.35 میلیون فرصت شغلی برای تحلیل داده در آمریکا وجود داشته است. ایالات متحده آمریکا تخمین می­زند که این تعداد تا سال 2020 به 2.72 میلیون نفر برسد.

در حال حاضر پایتون (Python) و R، دو مورد از محبوب‌ترین و توانمندترین زبان‌ها برای تحلیل داده محسوب می‌شوند. زبان‌های پایتون و R به عنوان دو زبان آزاد و رایگان که نصب و فراگیری آن‌ها ساده است مطرح می‌شوند و در اوایل دهه 1990 توسعه یافتند. R برای تحلیل آماری و پایتون به عنوان یک زبان برنامه نویسی کلی طراحی شد. این برنامه‌ها جز پرکاربردترین زبان‌ها در حوزه­‌های یادگیری ماشین ((machine learning و یادگیری‌عمیق (Neural Network) هستند و نیز ابزارهای قدرتمندی جهت مصورسازی (Visualization) داده‌­ها به شمار می‌آیند.

نمودار بالا نشان می دهد که چگونه پایتون و R از سال 2008 که Stack Overflow تاسیس شد روند افزایشی داشته‌­اند. انتخاب یکی از این دو زبان همیشه چالشی برای برنامه نویسان بوده است، به همین جهت اجازه دهید نگاهی به وجه اشتراک و تفاوت‌هایشان بیاندازیم.

زبان R

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

فرآیند علوم داده

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

1. جمع آوری داده‌­ها

2. اکتشاف داده‌­ها

3. مدل سازی داده­‌ها

4. مصورسازی داده‌­ها

جمع آوری داده­‌ها با پایتون

پایتون فرمت­‌های مختلف را پشتیبانی می­‌نماید. شما می­توانید با CSVها یا JSONهای وب کار کنید. می‌توانید جداول SQL را مستقیماً در کد خود وارد کنید. همچنین می توانید دیتاست (dataset) ایجاد کنید. کتابخانه پایتون قابلیت جالبی است که به شما امکان می‌دهد داده‌ها را از وب سایت­‌های مختلف با یک خط کد فراخوانی کنید. شما می‌توانید داده‌ها را از جداول ویکی پدیا تهیه کنید؛ سپس آن‌ها را با beautiful soap سازماندهی کرده و در ادامه آن‌­ها را تحلیل کنید. می­توانید هر نوع داده را با پایتون بدست آورید. هر موقع گیر کردید پایتون و دیتاست مورد نظرتان را گوگل کنید تا راه حلی بیابید.

جمع‌آوری داده‌ها با R

می توانید داده ها را از Excel ،CSV، و از text-les به فایل های R وارد کنید. همچنین فرمت‌­های Minitab یا فرمت SPSS می‌­تواند به فریم‌­های داده R تبدیل شود. پایتون زبانی همه منظوره است. R نمی‌­تواند مانند پایتون همه نوع اطلاعات وب را بگیرد. بسیاری از بسته‌های مدرن برای جمع‌آوری داده­‌های R اخیراً برای رفع این مشکل ساخته شده‌اند. Rvest پاکسازی اولیه وب را انجام می دهد، در حالی که magrittr آن را به طور کامل تمیز کرده و اطلاعات را برای شما تجزیه می کند. این بسته‌ها شبیه به درخواست‌­ها و کتابخانه­‌های beautiful soap در پایتون است.

اکتشاف داده با پایتون

پانداس (pandas) یک کتابخانه قدرتمند برای تحلیل، پیش ‌پردازش و بصری‌سازی داده‌ها در پایتون است و می‌تواند مقادیر زیادی از داده‌ها را در خود نگه دارد. در چند ثانیه می­‌توانید داده‌­ها را تغیر دهید، مرتب‌سازی کرده و نمایش دهید. Pandas درون فریم‌­های داده سازماندهی می‌­شود که می­‌تواند در طول یک پروژه چندین بار تعریف و بازتعریف شود. داده­‌های خود را با جایگزینی مقادیر غیر معتبر تمیز کنید. شما با استفاده از Pandas به راحتی قادر خواهید بود که داده‌­های غیر عددی را پاکسازی نمایید.

اکتشاف داده با R

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

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

مدل سازی داده‌ها با پایتون

تحلیل مدل سازی عددی با Numpy (یکی از کتابخانه‌های پایتون) قابل انجام است. SciPy نیز محاسبات علمی را انجام می‌دهد. کتابخانه scikit-Learn به بسیاری از الگوریتم‌های قدرتمند یادگیری ماشین مجهز شده است. کتابخانه scikit-Learn یکی از چندین کتابخانه‌ی پایتون برای یادگیری ماشین است.

مدل سازی داده‌ها با R

برای انجام تحلیل‌های مخصوص مدل سازی، بعضی اوقات باید به بسته‌هایی غیر از عملکرد اصلی R رجوع کنید. بسته‌­های زیادی برای تحلیل‌های خاص مانند توزیع پواسون (Poisson distribution) و ترکیب قوانین احتمال وجود دارد.

مصورسازی داده پایتون (Data Visualization Python)

نوت بوک IPython که با آناکوندا (Anaconda) همراه است امکانات زیادی برای مصورسازی داده­‌ها دارد. می‌توانید از کتابخانه Matplotlib برای ایجاد نمودارها و چارت­‌های اولیه از داده­‌های موجود در پایتون استفاده کنید. اگر می­‌خواهید نمودارهای پیشرفته‌تر یا طراحی بهتری داشته باشید می توانید Plot.ly را امتحان کنید. همچنین از تابع nbconvert برای تبدیل نوت بوک­‌های پایتون به HTML استفاده کنید. این کار به شما کمک کند تا بخش‌­هایی از کد را درون وب سایت‌ها یا سبد آنلاین تعبیه کنید. بسیاری از افراد از این عملکرد برای ایجاد آموزش­‌های آنلاین در مورد نحوه یادگیری پایتون استفاده کرده‌­اند.

سؤالاتی که باید قبل از انتخاب یکی از زبان‌­ها از خود بپرسید

1. آیا شما تجربه برنامه نویسی به زبان­‌های دیگر را دارید؟

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

2. می‌خواهید وارد محیط آکادمیک شوید یا صنعت؟

تفاوت واقعی بین پایتون و R در آماده شدن محصول است. پایتون یک زبان برنامه نویسی کامل است و بسیاری از سازمان­‌ها از آن در سیستم­‌های تولیدی خود استفاده می­‌کنند. از طرف دیگر، R یک نرم افزار برنامه نویسی آماری است که بیش‌تر در دانشگاه­‌ها از آن استفاده می­‌شود. اخیراً به دلیل در دسترس بودن و باز بودن (open source) كتابخانه­‌های R، صنعت شروع به استفاده از آن کرده است.

3. آیا می خواهید یادگیری ماشین (machine learning) یا یادگیری آماری (statistical learning) یاد بگیرید؟

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

4. آیا می‌خواهید مهندسی نرم افزار زیادی انجام دهید؟

پایتون برای شماست. پایتون نسبت R در محیط‌های مهندسی بسیار بهتر کار می‌کند.

5. آیا می‌خواهید داده‌های خود را به شکل خوبی مصورسازی کنید؟

برای نمونه سازی سریع و کار با مجموعه داده­‌ها برای ساخت مدل­‌های یادگیری ماشین، R برنامه بهتری است. پایتون در Matplotlib پیشرفت‌­هایی داشته است؛ اما به نظر می‌­رسد R در مصورسازی داده‌­ها بسیار بهتر است (ggplot2، htmlwidgets ، LeaRet).

نتیجه گیری

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

سخن آخر

هر دو زبان برنده‌اند!