NumPy وSciPy عبارة عن مكتبات تكميلية تعمل معًا بشكل جيد لمهام التعلم الآلي. وإليك كيف يكمل كل منهما الآخر:
العمليات العددية
- NumPy: يوفر كائنات مصفوفة فعالة متعددة الأبعاد ومجموعة من الإجراءات للعمل مع هذه المصفوفات، بما في ذلك المعالجة الرياضية والمنطقية ومعالجة الأشكال والفرز والاختيار والإدخال/الإخراج وتحويلات فورييه المنفصلة والجبر الخطي الأساسي والأساسيات العمليات الإحصائية والمحاكاة العشوائية وأكثر من ذلك بكثير.- SciPy: يعتمد على NumPy ويوفر العديد من الإجراءات الرقمية سهلة الاستخدام والفعالة، مثل إجراءات التكامل الرقمي والاستيفاء والتحسين والجبر الخطي والإحصائيات.
خوارزميات التعلم الآلي
- NumPy: يوفر هياكل البيانات الأساسية والوظائف الرياضية المطلوبة لتنفيذ خوارزميات التعلم الآلي الأساسية من البداية، مثل الانحدار الخطي والانحدار اللوجستي وأشجار القرار وما إلى ذلك.- SciPy: يوفر خوارزميات أكثر تقدمًا للتعلم الآلي واستخراج البيانات، مثل التجميع (الوسائل k، والتسلسل الهرمي، وما إلى ذلك)، والتصنيف (SVMs، والغابات العشوائية، وما إلى ذلك)، والانحدار (Redge، lasso، وما إلى ذلك). )، والحد من الأبعاد (PCA، ICA، وما إلى ذلك).
المعالجة المسبقة للبيانات
- NumPy: مفيد لعمليات مثل إعادة تشكيل المصفوفات وفهرستها ومعالجتها، وهي مهام معالجة مسبقة شائعة للبيانات.- SciPy: يوفر وظائف لقراءة/كتابة ملفات البيانات، والاستيفاء، ومعالجة الإشارات، والتحسين، وهي مهمة أيضًا للمعالجة المسبقة للبيانات.
التصور
- NumPy: يوفر هياكل البيانات الأساسية (المصفوفات) التي تستخدمها مكتبات التصور مثل Matplotlib.- SciPy: يوفر وظائف لإنشاء المخططات والرسوم البيانية والمرئيات الأخرى التي يمكن استخدامها لاستكشاف البيانات وفهمها.
التحسين والجبر الخطي
- NumPy: يوفر عمليات جبرية خطية فعالة وإجراءات محسنة للحسابات الرقمية.- SciPy: يعتمد على وحدة الجبر الخطي في NumPy ويوفر خوارزميات وإجراءات تحسين أكثر تقدمًا للجبر الخطي العددي.
باختصار، يوفر NumPy العمليات العددية والقائمة على المصفوفات الأساسية، بينما يعتمد SciPy على NumPy ويوفر نطاقًا أوسع من وحدات الحوسبة العلمية والتقنية، بما في ذلك العديد من الوحدات المفيدة لمهام التعلم الآلي. يتيح لك استخدامهما معًا الاستفادة من نقاط القوة في كلتا المكتبتين لبناء نماذج تعلم آلي قوية وفعالة.
الاستشهادات:
[1] https://www.youtube.com/watch?v=gYcrEZW-xek
[2] https://www.slideshare.net/slideshow/numpy-and-scipy-for-data-mining-and-data-analogy- Included-ipython-scikits-and-matplotlib/9215295
[3] https://www.linkedin.com/advice/3/what-differences-between-pandas-numpy-scipy-data-manipulation-eyvke
[4] https://www.freelancinggig.com/blog/2018/12/09/what-is-the-difference-between-numpy-and-scipy/
[5] https://data-flair.training/blogs/numpy-vs-scipy/
كيف يعمل SciPy على تحسين أداء نماذج التعلم الآلي مقارنة باستخدام NumPy فقط
يعمل SciPy على تحسين أداء نماذج التعلم الآلي مقارنة باستخدام NumPy فقط بعدة طرق رئيسية:
1. الخوارزميات المتقدمة: يوفر SciPy إمكانية الوصول إلى مجموعة واسعة من الخوارزميات الرقمية المتقدمة وإجراءات التحسين التي تم تحسينها بدرجة كبيرة لتحقيق الأداء. يتضمن ذلك أشياء مثل عمليات المصفوفة المتفرقة، والحلول غير الخطية، ووظائف معالجة الإشارات، وخوارزميات التعلم الآلي المتخصصة مثل SVMs، وk-means، وPCA. غالبًا ما تتفوق هذه الخوارزميات المتقدمة على عمليات الجبر الخطي الأساسية المتوفرة في NumPy وحده.
2. هياكل بيانات فعالة: يستخدم SciPy هياكل بيانات أكثر كفاءة، مثل المصفوفات المتفرقة، التي يمكن أن توفر تحسينات كبيرة في الأداء لأنواع معينة من مشكلات التعلم الآلي، خاصة تلك التي تتضمن مجموعات بيانات كبيرة ومتفرقة.
3. التوازي: على الرغم من أن NumPy نفسه لا يوفر تطبيقات متوازية مباشرة، إلا أن SciPy يمكنه الاستفادة من التوازي من خلال المكتبات الأساسية التي يستخدمها، مثل OpenBLAS أو Intel MKL. يتيح ذلك لـ SciPy الاستفادة من وحدات المعالجة المركزية (CPU) ووحدات معالجة الرسومات متعددة النواة لتسريع العمليات الحسابية.
4. الوحدات المتخصصة: يتضمن SciPy وحدات متخصصة مثل `scipy.stats` و`scipy.optimize` التي توفر تطبيقات محسنة للغاية للإجراءات الإحصائية والتحسينية الشائعة المستخدمة في التعلم الآلي، مثل التوزيعات الاحتمالية واختبارات الفرضيات والجذر إيجاد والتكامل العددي.
5. تكامل النظام البيئي: تم دمج SciPy بشكل وثيق مع النظام البيئي الأوسع لعلوم بيانات Python، بما في ذلك المكتبات مثل NumPy وPandas وScikit-learn. يتيح ذلك لنماذج التعلم الآلي التي تم إنشاؤها باستخدام SciPy الاستفادة بسلاسة من وظائف وأداء هذه المكتبات الأخرى.
باختصار، بينما يوفر NumPy العمليات العددية الأساسية، فإن SciPy يعتمد على هذا الأساس لتوفير مجموعة أكثر شمولاً من الإجراءات وهياكل البيانات المحسنة للغاية التي يمكنها تحسين أداء نماذج التعلم الآلي بشكل كبير، خاصة بالنسبة للمشكلات الأكثر تعقيدًا أو واسعة النطاق. يعد الجمع بين NumPy وSciPy أداة قوية للتعلم الآلي الفعال وعالي الأداء في Python.
الاستشهادات:[1] https://edbennett.github.io/high-performance-python/06-numpy-scipy/index.html
[2] https://www.youtube.com/watch?v=gYcrEZW-xek
[3] https://realpython.com/numpy-tensorflow-performance/
[4] https://data-flair.training/blogs/numpy-vs-scipy/
[5] https://github.com/numpy/numpy/issues/23829