مرجع تخصصی آمار ایران
پایتون یا 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 تنها دو نمونه از زبانهای برنامه نویسی هستند. شما باید فراتر از آن نگاه کنید و از نقاط قوت هر کدام از آنها در جهت اهدافتان استفاده کنید. استفاده از برنامههای بیشتر قابلیت شما را به عنوان یک محقق داده افزایش خواهد داد.
سخن آخر
هر دو زبان برندهاند!
مطلبی دیگر از این انتشارات
تحقیقات بازار چیست؟
مطلبی دیگر از این انتشارات
حجم نمونه آماری چقدر است؟
مطلبی دیگر از این انتشارات
توزیع نرمال و توزیع تی (توزیع t)