• +994 51 341 4340
  • Ayaz İsmayılov 8 (Megafunla üzbəüz)
08 Yanvar 2019

R vs(and) Python


Data Analitikası | Emil Mammadov |
image

R vs(and) Python


R vs(and) Python 

Hansı daha yaxşıdır, R yoxsa Python? Düşünürəm ki, Data Analitikası ilə yaxından, uzaqdan maraqlanan insanların ağlında yaranan ilk suallardan biri məhz budur. Fikrimcə bu "Messi yoxsa Ronaldo" sualının "data" sahəsi üzrə ekvivalentidir və eynən qeyd etdiyimiz misaldakı kimi insanların "ən yaxşı" anlayışı bu iki proqramlaşdırma dili üçün də müəyyən səbəb və kriteriyalara görə dəyişir. Bu məqalədə çoxumuzu maraqlandıran bu suala öz yanaşmamla cavab verməyə çalışacam və sizin özünüz üçün "'ən yaxşı" anlayışını müəyyən etməyinizə yardım etməyə çalışacam.İlk öncə hər iki dil haqqında qısaca məlumat verərək başlayaq.

Python

Python proqramlamlaşdırma dili Guido Van Rossom tərəfindən yaradılmış və 1991-ci ildə ilk dəfə istifadəyə verilmişdir. Əsas üstünlükləri kimi produktivliyini, ümumi-məqsədli olmasını və yazılan kodların oxunaqlığını göstərmək olar. Hal-hazırda dünyada ən çox istifadə edilən proqramlaşdırma dillərindən biridir. Aşağıdakı şəkildə TİOBE saytına istinad edərək proqramlaşdırma dillərinin istifadəsi üzrə nəticələr göstərilmişdir və göründüyü kimi Python artan tempi ilə 3-cü sıradadır. Gündən-günə artan təlabatı nəzərə alsaq, yaxın gələcəkdə zirvəyə qalxa biləcəyi də istisna edilmir.

R

R dili Ross Ihaka və Robert Gentleman tərəfindən 1995-ci ildə S proqram dilinin üzərinə implementasiya edilərək yaradılmışdır. Open source olaraq istifadəyə verilməsi illər içərisində istifadəçilər tərəfindən inkişaf etdirilməsinə şərait yaratdı və hal-hazırda Data Science sahəsində önəmli paya sahibdir. Əsas üstünlüyü də məhz kitabxanalarının çoxluğu (13000-dən çox) və sırf statistik əsaslı bir dil olmasıdır.

Hansı birini seçməli

Məqalənin əvvəlində qeyd etdiyim kimi bu suala birbaşa cavab vermək düzgün yanaşma olmazdı. Bunun üçün bir neçə aspektdən baxmağa çalışaq.

"Hər ikisini?!"

Əgər iddialısınızsa və "böyük" oynamaq istəyirsizsə hər ikisini. Bəli, doğru oxudunuz. Əslində Data Analitikası üzrə iş potensialınızı artırmaq niyyətindəsizsə , hər iki proqramlaşdırma dilini bilməyiniz çox böyük bir üstünlükdür. Nəzərə alsaq ki şirkətlər öz seçimlərinə uyğun olaraq həm R , həm də Python üzərindən əməliyyatlar aparır, hər iki dili bilməyiniz və ya ən azından birini çox yaxşı bilib, digəri haqqında məlumatınızın olması belə sizə rəqabətli iş mühitində üstünlük yaradacaqdır. Sadə bir misal verək, təsəvvür edin ki siz karyeranızda yüksəlmək üçün bir iş fürsəti qazanmısınız. Vakansiya üzrə bütün göstəricilərə uyursunuz və sadəcə siz Python üzərindən Data Analitikası ilə məşğul olmusunuz . Ancaq müraciət etmək istədiyiniz şirkət bu prosesleri R üzərində aparır. Təbiki bu sizin istəmədiyiniz ssenari olardı. Yeri gəlmişkən aşağıdakı vizuallarda top şirkətlərin istifadə etdiyi proqramlar göstərilmişdir. Lakin bunu qeyd etmək yerinə düşərdiki, Python üçün göstərilən şirkətlər təkcə onun analitika tool-u olaraq istifadəsini yansıtmır.

Hər ikisini öyrənmək heç də çətin deyil

R və Python proqramlama dillərini İspan və İtalyan dillərinə bənzədə bilərik. Fərqli dillər olsa da, eyni zamanda böyük ölçüdə oxşarlıqları da var. Bu o deməkdir ki, siz R və ya Pythonu bilirsinizsə digərinə öyrənmək çox çətin olmayacaq. Misal üçün, tutaq ki bizim CSV formatında faylımız var və biz onu analiz etmək istəyirik. Bu datanı "import" etmək üçün R-da readr kitabxanasında read_csv() funksiyasından istifadə olunursa (İmporting üçün R-ın başqa kitabxanaları da var), bu Pythonda pandas kitabxanasında pd.read_csv() şəklində yerinə yetirilir.Göstərdiyimiz misal sadə olsada aralarındakı əlaqəni ümumi olaraq xarakterize etməyə kifayət edir.

Digər tərəfdən R və Pythonda bir-birinə inteqrasiya etmək kimi xüsusiyyətlərə imkan verən kitabxanalar mövcuddur. Yəni siz R mühitində Python, Python mühitində isə əksinə R istifadə edə bilərsiz. R-da bunu üçün reticulate, rPython, mRMR kimi kitabxanalar mövcuddur. Öz növbəsində Python-da rpy2 kitabxanası bu vəzifəni yerinə yetirir. Bu o deməkdir ki, siz öz proyektinizə və ya yaranan ehtiyaca görə paralel formada hər iki dili istifadə edə bilərsiz.

"Birini seçmək istəsəm"

Digər və eyni zamanda ən çox rastalanan yanaşma bir "tool"u öyrənib həmin istiqamətdə inkişaf etmək və karyera qurmaqdır. Bu seçim edərkən çoxumuzun nəzərdən qaçırdığı nüanslar var. Bunları aşağıda sıralamağa çalışmışam.

1) Başlamazdan əvvəl hər iki dilin heç olmasa giriş hissəsini öyrənin. Daha sonra hansı dildə yazmağın sizə uyğun olduğuna qərar verə bilərsiniz.Bunun üçün ən unikal seçim "Datacamp"ın aşağıda qeyd edəcəyim pulsuz kurslarıdır.

  1. Introduction to R
  2. Introduction to Python

2)"Background"un önəmi də az deyil.Əgər siz universitetdə və ya əvvəlki təcrübələrinizdə proqramlaşdırma yönümlü işlər görmüsünüzsə və ya humanitar sahədən keçid etmək istəyirsinizsə , sizin üçün uyğun variant Python ola bilər. Digər bir tərəfdən əgər sizin riyaziyyat, statistika əsaslı proqramlarla (Matlab,Stata,SAS və s.) tanışlığınız varsa , o zaman R sizin üçün bir addım öndə ola bilər.

3)Hansı yöndə getmək istədiyinizin də həmçinin böyük önəmi var. Dünyada təcrübəsinə baxsaq əsasən araşdırma yönümlü məsələlərdə eləcə də səhiyyə və mühəndislik kimi sahələrdə Data Analitikası dedikdə ilk növbədə ağıla R gəlir. Maliyyə və bank sektorunda isə Pythonun istifadəsinə daha çox rast gəlinir. Burda əsas faktor R proqramlaşdırma dilinin komanda işi üçün Pythona nisbətdə daha az səmərəli olmasıdır. Səbəb ondan ibarətdir ki, məqaləmizin əvvəlində qeyd etdiyimiz kimi, Python-da kodlar oxunaqlı olur, yəni başqa birinin anlaması rahat olur. Ancaq R-da minlərlə kitabxana olduğu üçün bir model qurmaq üçün hər Data Analyst öz biliklərinə uyğun formada hazırlaya bilir. Bu da komanda daxilində bəzi axsamalara səbəb ola bilir.

Sonda bunu qeyd etmək istərdim ki, hansı dili seçməyinizdən aslı olmayaraq unutmamalı olduğunuz tək bir şey var ki, o da Data Analitik olaraq sizin kod bacarığından daha çox digər bacarıqlarınızın olması önəmlidi. Başqa sözlə desək, yaxşı Data Analitik olmaq üçün yaxşı kod yazmaqdan çox , yaxşı qərar və proqnoz verə bilmək lazımdır və proqramlaşdırma dilləri sadəcə sizin ağlınızdakını gerçəkləşdirmək üçün bir "tool"dur.

Fikir Bildir: