دانشجوی مهندسی کامپیوتر دانشگاه تبریز
زبان های برنامه نویسی در علم داده
زبانهای برنامه نویسی در علم داده
تحلیل داده قسمت اصلی شغل بسیاری از مردم است. افزایش دسترسی به داده، نیاز به محاسبات پرقدرت و تاکید بر تصمیم تحلیل- محور در تجارت جدید، سبب رشد علم داده شدهاند. بنا بر گزارش منتشر شده از IBMدر سال 2015، تعداد شغلهای متقاضی برای تحلیل داده در دنیا دو میلیون و ۳۵ هزار نفر بوده است. تخمین زده میشود که این تعداد تا سال ۲۰۲۰ به عدد 2 میلیون و ۷۲ هزار نفر خواهد رسید.
پایتون و R، دو زبان بسیار معروف برنامه نویسی در علم داده هستند. هر دو زبان، متن باز و رایگان بوده و انتخاب بین این دو، بسیار کار سختی است. هدف از طراحی زبان R، تحلیل آماری و هدف از طراحی زبان Python، برنامه نویسی چند منظوره است اما یادگیری هر دو زبان برای کسانی که در زمینهی یادگیری ماشین، کار با مجموعه دادهها یا به ایجاد نمودارهای پیچیده از دادهها علاقه مندند، ضروری است. در این مقاله قصد داریم قابلیتهای این دو زیان را در حوزه علم داده مقایسه کنیم.
پایتون (Python)
پایتون در سال 1989 با فسلفهی کاهش حجم کد، افزایش خوانایی و کارآمدی منتشر شد. دارای خاصیت شیگرایی بوده و کمک میکند تا دادههایمان را به صورت منظم دستهبندی و بین کدها ارتباط برقرار کنیم. تا چند سال اخیر پایتون کتابخانههای مناسبی برای یادگیری ماشین و تحلیل داده نداشت. اخیراً کتابخانههایNumpy, Pandas, Scipy Scikit-learn, Seaborn برای تحلیل داده به پایتون اضافه شدند. خوانایی و راحتی در کد نویسی پایتون کار را برای علاقهمندان در این حوزه راحت کردهاست و اگر شما نیاز به نمایش نتایج بر روی اپلیکیشن یا وبسایت خود هستید، زبان چند منظوره پایتون انتخاب درستی برای شما خواهد بود.
آر (R)
زبان R در سال 1992 منتشر شد و در آن زمان محبوبترین زبان برای دانشمندان داده بود. R یکی از زبانهای قدرتمند و دارای اکوسیستمهای غنیای برای تحلیل داده است. در حدود 12000 پکیج در منبع CRANدارد که سبب میشود به راحتی هر کتابخانهای برای تحلیل دادههای خود در اختیار داشته باشید. ویژگی غنی بودن این زبان باعث شده تعداد زیادی از دانشمندان علوم داده، R را به عنوان زبان اول استفاده کنند.
تفاوت اصلی این زبان با زبانهای دیگر در خروجی محصول میباشد. R ابزارهای قوی برای نشان دادن خروجی برنامه دارد. نرم افزار RStudioکه محیط اصلی برای نوشتن کد این زبان است، با کمک کتابخانه knitrساخته شده که خود این کتابخانه توسط Xie Yihui پیادهسازی شده است.
از طرف دیگر، سرعت کم، کمبود امکانات مانند تست کردن (unit testing) و فریم ورکهای وب از دلایل اصلی کم شدن محبوبیت ابن زبان میشود.
عملکرد دیتاساینس
حال بیاید در 4 شاخه این دو زبان را با هم مقایسه کنیم.
1. جمع آوری داده
2. اکتشاف در داده
3. مدل سازی داده
4. تجسم داده
جمع آوری داده
پایتون و R میتوانند از انواع فرمتهای دادهای مانند Excel, CSV, JSON, SQL پشتیبانی کنند. میدانیم امروزه سریعترین راه برای دریافت اطلاعات اینترنت است و پایتون و R به راحتی با کتابخانههای خود می توانند در یک خط کد درخواست HTTPانجام دهد و از اینترنت دادهها را بگیرند. همچنین این دو زبان میتوانند با نرمافزارهایSPSS, Stata, SAS, JMP ارتباط برقرار کنند اما نرمافزار Minitab توانایی ارتباط با زبان Rرا دارد.
اکتشاف در داده
در پایتون برای استخراج دادهها باید از کتابخانه Pandas استفاده کنید. این کتابخانه قادر است تعداد زیادی از دادهها را استخراج و در دیتافریمهای خود ذخیره کند و بر روی آنها به سرعت اعمال فیلتر، مرتبسازی، نمایش داده را اجرا کند. با دیتافریم Pandasمیتوانید توابع گستردهای در اختیار داشته باشید، تنها کافی است که به داکیومنت کتابخانه مراجعه کنید و نحوه کار با تمام توابع را ببینید.
زبان R ساخته شدهاست تا محاسبات آماری و عددی در دادههای بزرگ انجام دهد. در نتیجه عجیب نیست که توابع زیادی در اکتشاف داده داشته باشد. همینطور شما قادر خواهید بود از توزیعهای احتمالی، آزمایشهای آماری و تکنیکهای یادگیری ماشین و دادهکاوی بهره ببرید. از کابردهای دیگر در زبان R میتوان به پردازش سیگنال، بهینه سازی، تولید اعداد تصادفی و یادگیری ماشین اشاره کرد.
مدلسازی داده
در پایتون میتوانید برای محاسبات و تحلیل عددی از Numpy، برای محاسبات مهندسی و ریاضیات از SciPy و برای دسترسی به الگوریتمهای یادگیری ماشین از scikit-learn استفاده کنید.
در R به منظور طراحی مدلهای تحلیلی میتوان از پکیجهای خارج از هستهی Rاستفاده کنید و همینطور پکیجهای زیادی برای تحلیلهای خاص منظوره مانند توزیع پواسون و ترکیبی از قوانین احتمالات وجود دارد.
تجسم داده
در پایتون محیط قوی و دارای قابلیتهای زیاد برای تجسم دادهها وجود دارد مانند نوت بوک Jupyter که محیط متن باز Anacondaاست. برای ایجاد چارت و گرافهای ساده از دادههای خود میتوانید از کتابخانهی Matplotlib و همچنین برای ایجاد گرافهای پیشرفتهتر از کتابخانهی Plot.ly بهره ببرید.
زبان R به منظور تحلیل آماری و نمایش نتایج ساخته شده و دارای محیط قدرتمند و مناسب برای تجسمسازی علمی با پکیجهایی که برای نمایش گرافیکی نتایج میباشد. همچنین شما قادر خواهید بود نتایج را به صورت تصویر (jpg.) یا PDF ذخیره کنید.
سوالاتی که قبل از انتخاب زبان باید از خودتان بپرسید...
آیا تجربهی برنامه نویسی دارید؟
اگر شما از قبل تجربه برنامه نویسی با زبانهای دیگر را دارید، زبان پایتون مناسب شما است. کدهای پایتون شباهت بسیاری با زبان های دیگر دارد. خوانایی زبان پایتون به شما کمک میکند تا در پیشرفت دقت کدهایتان زمان کمتری بگذارید در صورتی که نامفهومی زبان R سبب میشود که در مرحله پیشرفت کد به دشواری برسید.
آکادمیک یا صنعت؟
یادگیری ماشین، یکی از زیرشاخههای هوش مصنوعی است در حالی که یادگیری آماری، که از اسمش پیداست، از زیرشاخههای آماری است. یادگیری ماشین تاکید بیشتری بر برنامههای گسترده و دقت احتمالات دارد ولی یادگیری آماری تاکید بر روی تفسیر مدلها، دقت، عدم قطعیت، خروجیهای نموداری و ترسیمی دارد.
گرافیک خوب برای نمایش دیتا؟
برای نمونه برداری و کار با دیتاستها برای ساخت مدل یادگیری ماشین، R از پایتون بهتر عمل میکند. پایتون از کتابخانه Matplotlib اما زبان R از کتابخانههای ggplot2, htmlwidgets, Leaflet استفاده میکند که در حوزه تجسم داده (Data visualization) نتایج بهتر داشته است.
نتیجه
زبان پایتون، زبان قدرتمند و همه کاره بوده اما بدون کتابخانههایش عملاً کمکی به ما نمیتواند بکند. از طرفی، زبان R یک محیط مخصوص برای تحلیل داده است که از طرف دانشمندان علوم داده، محبوبیت زیادی دارد. اگر بخواهید یک روزی در حوزه علم داده فعالیت کنید، به این زبان نیاز خواهید داشت.
یک واقعیتی که در اینجا مطرح میشود این است که هر دو زبانها دارای ابزارهای قدرتمندی هستند. در زمینه علم داده همهکاره بودن، انعطاف پذیری و آسانی در پیشرفت یک زبان دارای اهمیت زیادی است. برای کار کردن در این حوزه باید جفت این زبانها را یاد بگیرید و از هر دو استفاده کنید تا بتوانید یک دانشمند علم دادهی بهتری باشید!
منابع
https://medium.com/@data_driven/python-vs-r-for-data-science-and-the-winner-is-3ebb1a968197
مطلبی دیگر از این انتشارات
مهندسی اجتماعی (Social Engineering) چیست؟
مطلبی دیگر از این انتشارات
شبکه های هوش مصنوعی شفاف، با استدلال های شبه انسانی
مطلبی دیگر از این انتشارات
کرونا ویروس و "اپیدمی اطلاعات" در رسانههای اجتماعی