
علم البيانات سوف يحدث ثورة في هذا العالم بالكامل في السنوات القادمة. والسؤال الصعب بين علماء البيانات هو ما هي لغة البرمجة التي تلعب الدور الأكثر أهمية في علم البيانات؟ هناك العديد من لغات البرمجة المستخدمة في علوم البيانات بما في ذلك R و C ++ و Python.
في هذه المدونة ، سنناقش لغتين برمجة مهمتين هما Python و R. وسوف يساعدك هذا في اختيار اللغة الأنسب لمشروع علم البيانات التالي.
Python هي لغة برمجة مفتوحة المصدر ومرنة
وموجهة للكائنات وسهلة الاستخدام. لديها قاعدة مجتمعية كبيرة وتتألف من مجموعة غنية من المكتبات والأدوات. إنه ، في الواقع ، الخيار الأول لكل عالم بيانات.
من ناحية أخرى ، تعد R لغة برمجة مفيدة جدًا للحساب الإحصائي وعلوم البيانات. وهو يقدم تقنية فريدة من نوعها. النمذجة اللاخطية / الخطية ، التجميع ، تحليل السلاسل الزمنية ، الاختبارات الإحصائية الكلاسيكية ، وتقنية التصنيف.
ملامح بيثون- لغة مكتوبة بشكل حيوي ، لذلك يتم تعريف المتغيرات تلقائيا.
- أكثر قابلية للقراءة ويستخدم رمزًا أقل لتنفيذ نفس المهمة مقارنةً بلغات البرمجة الأخرى.
- كتبته بقوة. لذلك ، يتعين على المطورين أن يلقيوا أنواعًا يدويًا.
- لغة مترجمة. هذا يعني أن البرنامج لا يحتاج إلى تجميع.
- مرنة ومحمولة ويمكن تشغيلها على أي منصة بسهولة. إنها قابلة للتطوير ويمكن دمجها بسهولة مع برامج الجهات الأخرى.
ميزات R لتطبيقات علوم البيانات- حسابات متعددة يمكن القيام به مع المتجهات
- اللغة الاحصائية
- يمكنك تشغيل التعليمات البرمجية الخاصة بك دون أي مترجم
- دعم علم البيانات
هنا ، قمت بإدراج بعض المجالات التي يتم استخدامها للتمييز بين لغتي البرمجة هاتين لعلم البيانات.
1) هياكل البياناتعندما يتعلق الأمر ببنية البيانات ، يمكن تنفيذ الأشجار الثنائية بسهولة في Python لكن هذه العملية تتم في R باستخدام فئة القائمة التي تعتبر خطوة بطيئة.
فيما يلي تنفيذ الأشجار الثنائية في بيثون:
أولاً ، قم بإنشاء فئة عقدة وقم بتعيين أي قيمة للعقدة. سيؤدي ذلك إلى إنشاء شجرة ذات عقدة الجذر.
class Node: def __init__(self, data): self.left = None self.right = None self.data = data def PrintTree(self): print(self.data) root = Node(10) root.PrintTree()
الإخراج: 10
الآن ، نحن بحاجة إلى إدراج في شجرة حتى نضيف فئة إدراج ونفس فئة العقدة المدرجة أعلاه.
class Node: def __init__(self, data): self.left = None self.right = None self.data = data def insert(self, data):
الإخراج: 3 6 12 14
اللغة الفائزة: بيثون
2) برمجة وحدة اللغةلن يتسبب تغيير إصدار Python من 2.7 إلى 3.x في حدوث أي اضطراب في السوق بينما يؤثر تغيير إصدار R إلى لهجتين مختلفتين بشكل كبير بسبب RStudio: R &
Tidyverse .
اللغة الفائزة: بيثون
3) ميتا البرمجة والحقائق OOPتحتوي لغة برمجة Python على نموذج OOP واحد بينما في R ، يمكنك طباعة دالة إلى الجهاز عدة مرات. ميزات البرمجة الوصفية R أي رمز التي تنتج رمز السحرية. وبالتالي ، فقد أصبح الخيار الأول لعلماء الكمبيوتر. على الرغم من أن الدوال عبارة عن كائنات في كلتا اللغتين البرمجةيتين ، فإن R يأخذها بجدية أكبر مثل بيثون.
باعتبارها لغة برمجة وظيفية ، توفر R أدوات جيدة لأداء إنشاء أكواد جيدة التنظيم. هنا ، وظيفة بسيطة هي أخذ المتجه كوسيطة وعودة عنصر أعلى من العتبة.
myFun <- function(vec) { numElements <- length(which(vec > threshold)) numElements }
لقيمة عتبة مختلفة ، سنقوم بكتابة وظيفة تنشئ كل هذه الوظائف بدلاً من إعادة كتابة الوظيفة يدوياً. أدناه ، لقد أظهرنا الوظيفة التي تنتج العديد من وظائف نوع myFun:
genMyFuns <- function(thresholds) { ll <- length(thresholds) print("Generating functions:") for(i in 1:ll) { fName <- paste("myFun.", i, sep="") print(fName) assign(fName, eval( substitute( function(vec) { numElements <- length(which(vec > tt)); numElements; }, list(tt=thresholds[i]) ) ), envir=parent.frame() ) } }
يمكنك أيضًا النظر في المثال الرقمي في جلسة R CLI كما هو موضح أدناه:
> genMyFuns(c(7, 9, 10)) [1] "Generating functions:" [1] "myFun.1" [1] "myFun.2" [1] "myFun.3" > myFun.1(1:20) [1] 13 > myFun.2(1:20) [1] 11 > myFun.3(1:20) [1] 10 >
اللغة الفائزة: ر
4) واجهة ل C / C ++للتفاعل مع لغة C / C ++ ، تحتوي لغة البرمجة R على أدوات قوية بالمقارنة مع لغة Python. R's Rcpp هي واحدة من الأدوات القوية التي تعمل مع C / C ++ وفكرة ALTREP الجديدة يمكنها زيادة تحسين الأداء وسهولة الاستخدام. من ناحية أخرى ، بيثون لديها أدوات بمعنى. swig التي ليست الكثير من القوة ولكن العمل نفسه. يمكن للمتغيرات الأخرى لبيثون مثل Cython و PyPy إزالة الحاجة إلى واجهة C / C ++ واضحة تمامًا في أي وقت.
اللغة الفائزة: برمجة R
5) حساب موازلا توفر كلتا اللغتين البرمجة دعما جيدا للحساب متعدد النواة. R يأتي مع حزمة موازية ليست حلاً جيدًا ولا تعد حزمة المعالجة المتعددة لبيثون كذلك. لدى Python واجهات أفضل لوحدات معالجة الرسومات. ومع ذلك ، تعتبر المكتبات الخارجية التي تدعم حساب الكتلة جيدة في كل من لغات البرمجة.
اللغة الفائزة: لا أحد من الاثنين
6) القضايا الإحصائيةتم كتابة لغة R بواسطة الإحصائيين للإحصائيين. وبالتالي لم تكن هناك قضايا الإحصائية المعنية. من ناحية أخرى ، يعمل محترفو Python بشكل رئيسي في التعلم الآلي ولديهم فهم ضعيف للقضايا الإحصائية.
R مرتبطة باللغة الإحصائية S المتاحة تجارياً كـ S-PLUS. يوفر R دالات إحصائية عديدة مثل sd (متغير) ، متوسط (متغير) ، دقيقة (متغير) ، متوسط (متغير) ، كمي (متغير ، مستوى) ، طول (متغير) ، فار (متغير). يستخدم اختبار T لتحديد الاختلافات الإحصائية. يوجد مثال أدناه لإجراء اختبار t:
> t.test (var1 ، var2)
ولش عينتين اختبار t
البيانات: X1 و X2
t = 4.0369 ، df = 22.343 ، قيمة p = 0.0005376
فرضية بديلة: الفرق الحقيقي في الوسائل لا يساوي 0
95 في المئة فاصل الثقة:
2.238967 6.961033
تقديرات العينة:
يعني س يعني ذ
8.733333 4.133333
>
ومع ذلك ، يمكن تشغيل الإصدار الكلاسيكي من اختبار t كما هو موضح أدناه:
> t.test (var1 ، var2 ، var.equal = T)
اثنان عينة t- الاختبار
البيانات: X1 و X2
t = 4.0369 ، df = 28 ، قيمة p = 0.0003806
فرضية بديلة: الفرق الحقيقي في الوسائل لا يساوي 0
95 في المئة فاصل الثقة:
2.265883 6.934117
تقديرات العينة:
يعني س يعني ذ
8.733333 4.133333
>
لإجراء اختبار t على البيانات المقترنة ، تحتاج إلى رمز مثل أدناه:
> t.test (var1 ، var2 ، تقرن = T)
ر تقرن اختبار
البيانات: X1 و X2
t = 4.3246 ، df = 14 ، قيمة p = 0.0006995
فرضية بديلة: الفرق الحقيقي في الوسائل لا يساوي 0
95 في المئة فاصل الثقة:
2.318620 6.881380
تقديرات العينة:
يعني الاختلافات
4.6
>
اللغة الفائزة: لغة R
7) AL & MLحصلت بيثون أهمية كبيرة بعد وصول التعلم الآلي والذكاء الاصطناعي. تقدم Python عددًا كبيرًا من المكتبات المضبوطة بدقة للتعرف على الصور مثل AlexNet. لذلك ، يمكن تطوير إصدارات R بسهولة. تأتي مكتبات Python القوية من إنتاج عمليات
تشغيل تجسيد معينة للصور والتي يمكن تنفيذها بشكل أكبر في برنامج
R's Keras . نظرًا لأنه يمكن بسهولة تطوير نسخة صافية من TensorFlow. ومع ذلك ، فإن توفر حزمة R لتعزيز التدرج والغابات العشوائية رائع.
اللغة الفائزة: بيثون
8) وجود المكتباتتحتوي شبكة الأرشيف الشامل (CRAN) على أكثر من 12000 حزمة ، بينما يحتوي Python Package Index (
PyPI ) على أكثر من
183000 حزمة. PyPI ضعيفة في علم البيانات مقارنة بـ R.
لغة الفوز: التعادل بين الاثنين
9) تعلم الرسم البيانيعندما يتعلق الأمر بأن تصبح بارعا في Python ، يحتاج المرء إلى تعلم الكثير من المواد بما في ذلك أنواع المصفوفات Pandas و NumPy & matplotlib ، بينما الرسومات الأساسية مدمجة بالفعل R. يمكن للمبتدئ بسهولة تعلم لغة برمجة R في غضون دقائق عن طريق القيام ببيانات بسيطة تحليل. ومع ذلك ، يمكن لمكتبات بايثون أن تكون صعبة بالنسبة له لتكوين خارج. لكن حزم R خارج الصندوق.
اللغة الفائزة: لغة البرمجة R
10) الأناقةكونه عامل المقارنة الأخير ، هو في الواقع الأكثر ذاتية. Python هو أكثر أناقة من لغة البرمجة R لأنه يقلل بشكل كبير من استخدام الأقواس والأقواس أثناء الترميز ويجعلها أكثر سهولة للاستخدام من قبل المطورين.
اللغة الفائزة: بيثون
ملاحظة أخيرة:كلتا اللغتين تخوض معركة مباشرة مع بعضها البعض في عالم علوم البيانات. في مرحلة ما ، تفوز بيثون بالسباق بينما في بعض اللغات الأخرى صعود. لذلك يعتمد الاختيار النهائي بين لغتي البرمجة أعلاه لعلوم البيانات على العوامل التالية:
-> مقدار الوقت الذي تستثمره
-> متطلبات المشروع الخاص بك
-> الهدف من عملك
شكرا لاستثمار وقتك الثمين في القراءة وأرحب بتعليقاتكم الإيجابية.