چگونه زبان برنامه‌نویسی R به یک پدیده‌ی جهانی در حوزه‌ی داده ‌کاوی و تحلیل‌های پیشرفته تبدیل شد؟

نویسنده: تدوین شده در ستاد مدیریت محصول همکاران سیستم

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

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

تردیدی نیست که امروزه سیستم‌های اطلاعات دیجیتالِ با سرعت غیرقابل تصوری در حال تولید داده‌های جدید هستند. با وجود منبع به ظاهر پایان‌ناپذیر داده‌های جدید، ارزش داده‌ها روز‌به‌روز بیش‌تر درک می‌شود و همین امر، توسعه‌ی سریع‌تر، بهتر و قدرتمندترِ روش‌های تحلیل انبوه داده‌های پیچیده را به همراه داشته است. نسل فعلی راه حل‌های تحلیل، کُند و گران هستند و این موضوع، در را به روی تکنیک‌های جدیدتر و ارزان‌ترِ تحلیلگرهای انبوه گشوده است. بسیاری از این تکنیک‌های جدیدتر و ارزان‌تر، با R نوشته شده است؛ زبانی که به سرعت در حال تبدیل شدن به «زبان مشترک» کسانی است که با داده‌ها سر و کار دارند.

نورمن نای (Norman Nie) پژوهشگر شناخته‌شده‌ی حوزه‌ی تحقیقات پیمایشی می‌گوید: R قدرتمندترین و قابل انعطاف‌ترین زبان برنامه‌نویسی آماری در جهان است. نای که یکی از مبدعان SPSS در اواخر دهه ۶۰ میلادی است، در حال حاضر مدیر عامل شرکت Revolution Analytics است. این شرکت که در پالو آلتو مستقر است، نسخه‌ی تجاری برنامه‌های R را تولید و عرضه می‌کند.

از زمان انتشار R در سال ۱۹۹۶، این زبان برنامه‌نویسی به طرز شگرفی چشم‌انداز نرم‌افزارهای تحقیقاتی را تغییر داده است. کارهایی که SAS یا SPSS انجام می‌دهند ولی R نمی‌تواند انجام دهد، بسیار اندک است، در حالی‌ که R می‌تواند کارهای فراوانی انجام دهد که دیگر برنامه‌ها قادر نیستند. هم‌چنین با توجه به این که R رایگان است و دیگر برنامه‌ها بسیار گران هستند، R واقعاً ارزش این را دارد که مورد بحث و بررسی قرار گیرد.

۱. R بیش از یک زبان برنامه‌نویسی است

R بر خلاف نرم‌افزارهای سنتی تحلیل‌گر، یک زبان برنامه‌نویسی کامل است. R صرفاً یک زبان نیست بلکه نشان‌دهنده یک رویکرد کاملاً متفاوت به چالش‌های ناشی از رشد فزاینده‌ی داده‌های پیچیده و بزرگ است. از این منظر، R را می‌توان پدیده فرهنگی دانست.

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

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

۲. انبوه استفاده‌کنندگان و انتشار ویروسی

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

محبوبیت صعودی R یک امر واقعی است و در حال حاضر جامعه‌ی کاربران R به اندازه‌ای بزرگ شده که برنامه‌های جدید R (موسوم به بسته‌‎ها) با سرعتی شگفت‌آور در حال پیشرفت است. امروزه جامعه‌ی R توانسته به یک جامعه‌‌ی بسیار عظیم و اثرگذار تبدیل شود که مانند یک کارخانه‌ی نرم‌افزاری مجازی خودسازمان‌ده (self-organizing virtual factory)، در بازه‌های زمانی خاص و مشخص R جدید تولید می‌کند.

  •  این کارخانه‌ی نرم‌افزاری مجازی خودسازمان‌ده چگونه کار می‌کند؟

یکی از کاربران فعال جامعه‌ی R گلن میرز (Glenn Meyers) است. وی معاون تحقیقات ISO Innovative Analytics بوده و دارای مدرک دکترای ریاضیات از دانشگاه ایالتی نیویورک است. میرز با Casualty Actuarial Society همکاری دارد و یکی از اعضای آکادمی آمریکایی Actuaries به شمار می‌رود. او جوایز ارزشمند بسیاری به دست آورده و صاحب کرسی و سخنرانی در نشست‌های مهم بین‌المللی است. هنگامی که آقای میرز مطالبی درباره تکنیکی جدید در حوزه تحلیل داده در نشریه Actuarial Review می‌نگارد، معمولاً کد روش جدید را در ستون خود قید می‌کند. قسمت عمده‌ی کد او با R نوشته شده است زیرا R زبان رایج – زبان میانجی – تحلیل‌های آماری است. میرز می‌گوید: شما کد R خود را به اشتراک می‌گذارید و می‌بینید که این کد بلافاصله قابل استفاده است. دیگران نیز کد را دانلود کرده و شروع به استفاده از آن می‌کنند.

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

متخصصان حوزه‌های دیگر اعتقاد دارند هر چه افراد بیشتری از R استفاده کنند، قدرت این برنامه بیش‌تر می‌شود. شباهت‌های فراوانی بین R و لینوکس وجود دارد. R اکنون در همه جا مورد استفاده قرار می‌گیرد، بنابراین اگر شما پروژه‌ی بزرگی را آغاز کنید و برنامه‌نویس‌های زیادی در اختیار نداشته باشید، به سراغ دانشگاه‌ها می‌روید و افرادی که بتوانند عملکرد خلاقانه‌ای از خود نشان دهند را به استخدام خود در می‌آورید. همچنین شرکت‌هایی که می‌کوشند از هزینه‌ی تمدید اجاره نرم‌افزارهای تجاری نظیر SAS و SPSS بکاهند، می‌توانند از مزایای R بهره‌مند شوند. انتخاب یک بسته‌ی R به جای یک محصول نرم‌افزاری تجاری سنتی واقعاً می‌تواند هزاران دلار برای شما صرفه‌جویی به ارمغان آورد.

۳. قدرت حاصل از خوش ساختی

هدلی ویکهام (Hadley Wickham) استاد دانشگاه است و بیش از ۲۰ بسته‌ی R را نوشته یا در نوشتن آن‌ها همکاری کرده است. ویکهام جایزه جان چمبرز برای محاسبات آماری را نیز به دست آورده است. بسیاری از پژوهش‌های ویکهام بر بهتر، سریع‌تر و آسان‌تر کردن تحلیل داده تمرکز دارد.

ویکهام با اشاره به این که R در ابتدا برای مقابله با مشکلات رایج داده‌ها طراحی شده بود، می‌گوید: «در مقایسه با دیگر زبان‌های برنامه‌نویسی، R برای این طراحی شده که به شما کمک کند تا بتوانید کارهای مختلفی که در زمان تحلیل داده‌ها انجام می‌دهید را پیش ببرید. برای نمونه، R یک سری فریم‌های داده (data frames) دارد که در هسته‌ی این زبان برنامه‌نویسی گنجانده شده است. این ویژگی مانند یک ساختار طبیعی عمل می‌کند و کار با داده‌ها را بسیار آسان می‌سازد. تعداد زبان‌هایی که در خود فریم‌های داده دارند، بسیار اندک است. از آنجا که R توسط آمارشناس‌ها و برای آمارشناس‌ها ساخته شده است، بسیاری از ویژگی‌های مهم و ضروری را که در انجام کارهای روزمره‌ی تحلیل‌های آماری مورد نیاز است، در خود دارد.

ویکهام می‌گوید برای نمونه، در آمار، ردگیری مقادیر گم شده (missing values) بسیار دارای اهمیت است. این موضوع هنگامی رخ می‌دهد که شما نمی‌دانید یک مقدار چقدر بوده ولی به راهی برای نشان کردن آن نیاز دارید. R این ردگیری را برای شما انجام می‌دهد، به این صورت که اگر شما یک شماره به شماره مفقود اضافه کنید، هنوز هم نمی‌توانید بفهمید آن شماره کدام است ولی R آن را ردگیری می‌کند

۴. به اختراع مجدد چرخ نیاز نیست!

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

  • می‌توانند تکنیک‌های جدید را با کاربران دیگر R به اشتراک بگذارند، چه در داخل سازمان خود و چه در سطح جهانی.
  •  می‌توانند تکنیک‌های جدیدی را که کشف کرده‌اند، بازتولید کرده و بار دیگر  مورد استفاده قرار دهند.

این یک مزیت کوچک و بی‌اهمیت نیست. توانایی ذخیره‌سازی و استفاده مجدد از توابع جدید به این معناست که شما هر بار که یک عملیات تحلیلی را تولید و اجرا می‌کنید، مجبور نیستید چرخه را دوباره اختراع کنید. انجام مشابه این کار در نرم افزارهایی مانند SAS  یا SPSS  بسیار دشوار است.

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

CardioDX یک شرکت فعال در حوزه‌ی تشخیص مولکولی است که داده‌ها را از منابع مختلف گرداوری کرده و با زبان برنامه‌نویسی R به تولید مدل‌های پیش‌بینی‌کننده‌ای می‌پردازد که پزشکان به در تشخیص بیماری‌های قلبی بیماران یاری می‌کند. مایکل ایلاشف (Michael Elashoff) از این شرکت می‌گوید ما در مجموعه داده‌های پیچیده، به توسعه‌ی انواع مدل‌های پیش‌بینی‌کننده می‌پردازیم، بنابراین قابلیت استفاده و ارزیابی روش‌های جدید آماری برای ما مهم است. به خصوص در چند سال اخیر، بسیاری از این روش‌های جدید ابتدا در بسته‌های R عرضه شد. R قطعاً پیشرو است.

زوبین داولتی (Zubin Dowlaty) معاون ارشد و رئیس بخش نوآوری و توسعه در شرکت Mu Sigma می‌گوید اکوسیستم بزرگ آمارشناسان در سراسر جهان که قابلیت‌ها و بسته‌های جدیدی به سیستم R می‌افزایند، یک مزیت بسیار بزرگ است. الگوریتم‌های جدید به سرعت از طریق پلتفرم R در دسترس قرار می‌گیرد. پلتفرم زبان برنامه‌نویسی R به حدی جامع و کامل شده که به یک فروشگاه بزرگ برای جستجو و انتخاب تکنیک تبدیل شده است. همه چیز، از آمار گرفته تا تکنیک‌های یادگیری ماشینی و تکنیک‌های بهینه‌سازی، زبان R همه چیز را یک جا در اختیار شما قرار می‌دهد، این قابلیتی است که در نرم افزارهای تجاری مانند SPSS و SAS فراهم نیست.

۵. ساخت آسان گرافیک‌هایی باکیفیت بالا

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

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

۶. ساخت یک کسب‌وکار

جان لاکر (John Lucker) و تیم او تحلیلگران پیشرفته و حرفه‌ای در شرکت Deloitte Consulting LLP هستند. جان مشاور اصلی Deloitte است و مدیریت شرکت Advanced Analytics and Modeling (AAM) – یکی از برترین گروه‌های تحلیلگر در صنعت خدمات حرفه‌ای – را بر عهده دارد.

یکی از چالش‌های پیش روی این صنعت، نبود یک فرایند پایدار و یکپارچه‌ی تحلیلی برای پشتیبانی از تعهدات مهم و حساس بود. این چالش به ویژه در صنعت بیمه‌ی تجاری که رشد سریعی دارد، از شدت بیشتری برخوردار است. در اینجا R توانست عملکرد بسیار مفید خود را در سال‌های اخیر به نمایش بگذارد. زبان برنامه‌نویسی R کمک کرد تا نتایج تحلیل‌ها را به گونه‌ای جذاب و ابتکاری، با مخاطبان غیرفنی خود به اشتراک بگذاریم. موفقیت این گروه در ایجاد تعامل مستمر با مشتریانش در صنعت بیمه، به یک ایده‌‌ی کلی برای ورود به بازارهای جدید تبدیل شد. امروزه Deloitte Consulting Advanced Analytics and Modeling به مشتریانی در حوزه‌های بهداشت، خدمات بانکداری و مالی، خرده‌فروشی، کالاهای مصرفی، مخابرات، خودروسازی، رسانه، گردشگری، بخش عمومی/دولتی/فدرال و دیگر صنایع اصلی سرویس می‌دهد. R نقش مهمی در این رشد داشته است زیرا با آن می‌توان فرایند تحلیلی پایداری ایجاد کرد که پاسخ‌گوی نیازهای خاص مشتریان در بازارهای مختلف است.

۷. در حال تغییر، دگرگونی و تکامل

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

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

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


منبع:

blog.revolutionanalytics.com