مستودع أكواد كتاب تعلم الآلة بايثون
ملاحظة هامة (21/09/2017):
يحتوي مستودع GitHub هذا على أمثلة التعليمات البرمجية للإصدار الأول من كتاب Python Machine Learning. إذا كنت تبحث عن أمثلة التعليمات البرمجية للإصدار الثاني ، فيرجى الرجوع إلى هذا المستودع بدلاً من ذلك.
ما يمكنك توقعه هو 400 صفحة غنية بالمواد المفيدة تقريبًا كل ما تحتاج إلى معرفته للبدء في التعلم الآلي... من النظرية إلى الكود الفعلي الذي يمكنك وضعه موضع التنفيذ مباشرة! هذا ليس مجرد كتاب آخر بعنوان "هذه هي الطريقة التي يعمل بها برنامج scikit-Learn". أهدف إلى شرح جميع المفاهيم الأساسية، وإخبارك بكل ما تحتاج إلى معرفته فيما يتعلق بأفضل الممارسات والتحذيرات، وسنضع هذه المفاهيم موضع التنفيذ بشكل رئيسي باستخدام NumPy وscikit-learn وTheano.
لست متأكدا إذا كان هذا الكتاب هو لك؟ يرجى الاطلاع على المقتطفات من المقدمة والتمهيد، أو إلقاء نظرة على قسم الأسئلة الشائعة لمزيد من المعلومات.
الطبعة الأولى، نشرت في 23 سبتمبر 2015
الغلاف الورقي: 454 صفحة
الناشر: باكت للنشر
اللغة: الانجليزية
ردمك-10: 1783555130
ردمك-13: 978-1783555130
الرقم التعريفي القياسي لجهاز كيندل: B00YSILNL0
الألمانية ISBN-13: 978-3958454224
اليابانية ISBN-13: 978-4844380603
الإيطالية ISBN-13: 978-8850333974
الصينية (التقليدية) ISBN-13: 978-9864341405
الصينية (البر الرئيسي) ISBN-13: 978-7111558804
الكورية ISBN-13: 979-1187497035
الروسية ISBN-13: 978-5970604090
جدول المحتويات ودفاتر الملاحظات الخاصة بالرمز
ما عليك سوى النقر على روابط ipynb
/ nbviewer
بجوار عناوين الفصل لعرض أمثلة التعليمات البرمجية (حاليًا، يتم دعم روابط المستندات الداخلية فقط بواسطة إصدار NbViewer). يرجى ملاحظة أن هذه مجرد أمثلة التعليمات البرمجية المصاحبة للكتاب، والتي قمت بتحميلها لراحتك؛ انتبه إلى أن دفاتر الملاحظات هذه قد لا تكون مفيدة بدون الصيغ والنص الوصفي.
- مقتطفات من المقدمة والتمهيد
- تعليمات لإعداد Python وJupiter Notebook
- التعلم الآلي - منح أجهزة الكمبيوتر القدرة على التعلم من البيانات [dir] [ipynb] [nbviewer]
- تدريب خوارزميات التعلم الآلي للتصنيف [dir] [ipynb] [nbviewer]
- جولة في مصنفات التعلم الآلي باستخدام Scikit-Learn [dir] [ipynb] [nbviewer]
- بناء مجموعات تدريب جيدة – المعالجة المسبقة للبيانات [dir] [ipynb] [nbviewer]
- ضغط البيانات عن طريق تقليل الأبعاد [dir] [ipynb] [nbviewer]
- تعلم أفضل الممارسات لتقييم النماذج وتحسين المعلمات الفائقة [dir] [ipynb] [nbviewer]
- الجمع بين نماذج مختلفة للتعلم الجماعي [dir] [ipynb] [nbviewer]
- تطبيق التعلم الآلي على تحليل المشاعر [dir] [ipynb] [nbviewer]
- تضمين نموذج التعلم الآلي في تطبيق ويب [dir] [ipynb] [nbviewer]
- التنبؤ بمتغيرات الهدف المستمر مع تحليل الانحدار [dir] [ipynb] [nbviewer]
- العمل مع البيانات غير المسماة – تحليل المجموعات [dir] [ipynb] [nbviewer]
- تدريب الشبكات العصبية الاصطناعية للتعرف على الصور [dir] [ipynb] [nbviewer]
- تدريب الشبكة العصبية المتوازية عبر Theano [dir] [ipynb] [nbviewer]
مرجع المعادلة
[PDF] [تكساس]
شرائح للتدريس
شكرًا جزيلاً لديمتري دليجاش لمشاركته شرائحه من دورة التعلم الآلي التي يتم تقديمها حاليًا في جامعة لويولا في شيكاغو.
- https://github.com/dmitriydligach/PyMLSlides
موارد إضافية للرياضيات وNumPy
كان بعض القراء يسألون عن البادئات التمهيدية Math وNumPy، حيث لم يتم تضمينها بسبب قيود الطول. ومع ذلك، قمت مؤخرًا بتجميع هذه الموارد معًا لكتاب آخر، لكنني جعلت هذه الفصول متاحة مجانًا عبر الإنترنت على أمل أن تكون أيضًا بمثابة مادة أساسية مفيدة لهذا الكتاب:
أساسيات الجبر [PDF] [EPUB]
كتاب تمهيدي في حساب التفاضل والتكامل [PDF] [EPUB]
مقدمة إلى NumPy [PDF] [EPUB] [دفتر التعليمات البرمجية]
نقلا عن هذا الكتاب
نرحب بإعادة استخدام مقتطفات الكود أو المحتويات الأخرى من هذا الكتاب في المنشورات العلمية وغيرها من الأعمال؛ وفي هذه الحالة، سأكون ممتنًا للاستشهاد بالمصدر الأصلي:
بيبيتكس :
@Book{raschka2015python,
author = {Raschka, Sebastian},
title = {Python Machine Learning},
publisher = {Packt Publishing},
year = {2015},
address = {Birmingham, UK},
isbn = {1783555130}
}
قانون مكافحة غسل الأموال :
راشكا، سيباستيان. التعلم الآلي بايثون . برمنغهام، المملكة المتحدة: منشورات Packt، 2015. طباعة.
ردود الفعل والمراجعات
مقتطفات مراجعة قصيرة
صدر للتو كتاب سيباستيان راشكا الجديد بعنوان Python Machine Learning. لقد أتيحت لي الفرصة لقراءة نسخة مراجعة وكانت تمامًا كما توقعت - رائعة حقًا! إنه منظم جيدًا، وسهل المتابعة للغاية، ولا يوفر أساسًا جيدًا للأذكياء وغير الخبراء فحسب، بل سيحصل الممارسون على بعض الأفكار ويتعلمون حيلًا جديدة هنا أيضًا.
– لون ريسبيرج في Data Elixir
عمل رائع! حتى الآن، يبدو لي أنه قد حقق التوازن الصحيح بين النظرية والتطبيق... الرياضيات والبرمجة!
- بريان توماس
لقد قرأت (تقريبًا) كل عنوان للتعلم الآلي يعتمد على Scikit-learn وهذا هو أفضل عنوان موجود على الإطلاق.
- جيسون ولوسونوفيتش
أفضل كتاب رأيته يخرج من دار نشر PACKT. هذه مقدمة مكتوبة بشكل جيد جدًا للتعلم الآلي باستخدام بايثون. كما لاحظ آخرون، مزيج مثالي من النظرية والتطبيق.
- جوش د.
كتاب يحتوي على مزيج من الصفات التي يصعب الحصول عليها: فهو يجمع بين الرياضيات اللازمة للتحكم في النظرية والترميز التطبيقي في بايثون. من الرائع أيضًا أن نرى أنه لا يهدر الورق في تقديم كتاب تمهيدي عن بايثون كما تفعل العديد من الكتب الأخرى فقط لجذب الجمهور الأكبر. يمكنك معرفة أنه تم كتابته بواسطة كتاب ذوي خبرة وليس فقط مهووسين بالأعمال اليدوية.
- عميل أمازون
أنشأ سيباستيان راشكا برنامجًا تعليميًا رائعًا للتعلم الآلي يجمع بين النظرية والتطبيق. يشرح الكتاب التعلم الآلي من منظور نظري ويحتوي على الكثير من الأمثلة المشفرة لإظهار كيف يمكنك استخدام تقنية التعلم الآلي فعليًا. يمكن قراءتها من قبل مبرمج مبتدئ أو متقدم.
- ويليام بي. روس، 7 كتب يجب أن تقرأها عن لغة بايثون
مراجعات أطول
إذا كنت بحاجة إلى مساعدة لتحديد ما إذا كان هذا الكتاب مناسبًا لك، فاطلع على بعض المراجعات "الأطول" المرتبطة أدناه. (إذا كتبت تعليقًا، فيرجى إبلاغي بذلك، وسيسعدني إضافته إلى القائمة).
- مراجعة التعلم الآلي لبايثون بواسطة باتريك هيل في معهد تشارترد لتكنولوجيا المعلومات
- مراجعة كتاب: التعلم الآلي بلغة بايثون بقلم سيباستيان راشكا بقلم أليكس تورنر على موقع WhatPixel
روابط
- الكتب الإلكترونية والورقية الغلاف على Amazon.com، Amazon.co.uk، Amazon.de
- كتاب إلكتروني وغلاف ورقي من Packt (الناشر)
- في متاجر الكتب الأخرى: Google Books، وO'Reilly، وSafari، وBarnes & Noble، وApple iBooks، ...
- منصات التواصل الاجتماعي: Goodreads
ترجمات
- الترجمة الإيطالية عبر "Apogeo"
- الترجمة الألمانية عبر "mitp Verlag"
- الترجمة اليابانية عبر "Impress Top Gear"
- الترجمة الصينية (الصينية التقليدية)
- الترجمة الصينية (الصينية البسيطة)
- الترجمة الكورية عبر "Kyobo"
- الترجمة البولندية عبر "هيليون"
مراجع الأدب وموارد القراءة الإضافية
الأخطاء المطبعية
دفاتر ملاحظات إضافية (ليست في الكتاب)
- تنفيذ الانحدار اللوجستي [dir] [ipynb] [nbviewer]
- إعداد البحث الأساسي عن الشبكة والشبكة [dir] [ipynb] [nbviewer]
- مثال ممتد للتحقق المتبادل المتداخل [dir] [ipynb] [nbviewer]
- قالب Webapp بسيط لقارورة Barebones Flask [عرض الدليل] [تنزيل كملف مضغوط]
- قراءة الأرقام المكتوبة بخط اليد من MNIST إلى صفائف NumPy [GitHub ipynb] [nbviewer]
- Scikit-Learn نموذج المثابرة باستخدام JSON [GitHub ipynb] [nbviewer]
- الانحدار اللوجستي متعدد الحدود / الانحدار softmax [GitHub ipynb] [nbviewer]
"محتوى ذو صلة" (ليس في الكتاب)
- تقييم النموذج واختيار النموذج واختيار الخوارزمية في التعلم الآلي - الجزء الأول
- تقييم النموذج واختيار النموذج واختيار الخوارزمية في التعلم الآلي - الجزء الثاني
- تقييم النموذج واختيار النموذج واختيار الخوارزمية في التعلم الآلي - الجزء الثالث
سيبي 2016
لقد قضينا وقتًا رائعًا في SciPy 2016 في أوستن! لقد كان من دواعي سروري حقًا أن ألتقي وأتحدث مع العديد من قراء كتابي. شكرا جزيلا على كل الكلمات الجميلة وردود الفعل! وفي حالة فاتتك، قدمت أنا وأندرياس مولر مقدمة للتعلم الآلي باستخدام Scikit-learn ؛ إذا كنت مهتمًا، فإن تسجيلات الفيديو للجزء الأول والجزء الثاني متاحة الآن على الإنترنت!
باي داتا شيكاغو 2016
لقد حاولت القيام بالمهمة الصعبة إلى حد ما المتمثلة في تقديم scikit-Learn والتعلم الآلي في 90 دقيقة فقط في PyData Chicago 2016. تتوفر الشرائح والمواد التعليمية على "Learning scikit-learn -- An Introduction to Machine Learning in Python."
ملحوظة
لقد قمت بإعداد مكتبة منفصلة، mlxtend
، تحتوي على تطبيقات إضافية لخوارزميات التعلم الآلي (وعلم البيانات العامة). أضفت أيضًا تطبيقات من هذا الكتاب (على سبيل المثال، مخطط منطقة القرار، والشبكة العصبية الاصطناعية، وخوارزميات اختيار الميزات المتسلسلة) مع وظائف إضافية.
ترجمات
عزيزي القراء ،
بداية، أود أن أشكركم جميعًا على الدعم الكبير! أنا سعيد حقًا بكل التعليقات الرائعة التي أرسلتها إليّ حتى الآن، ويسعدني أن الكتاب كان مفيدًا جدًا لجمهور عريض.
خلال الشهرين الماضيين، تلقيت مئات رسائل البريد الإلكتروني، وحاولت الرد على أكبر عدد ممكن منها في الوقت المتاح لدي. ولجعلها مفيدة للقراء الآخرين أيضًا، قمت بجمع العديد من إجاباتي في قسم الأسئلة الشائعة (أدناه).
بالإضافة إلى ذلك، سألني بعضكم عن منصة للقراء لمناقشة محتويات الكتاب. آمل أن يوفر لك هذا فرصة لمناقشة وتبادل معرفتك مع القراء الآخرين:
لوحة مناقشة مجموعات جوجل
(وسأبذل قصارى جهدي للإجابة على الأسئلة بنفسي إذا سمح الوقت! :))
الشيء الوحيد الذي يجب فعله بالنصيحة الجيدة هو تمريرها. فهو لا ينفع لنفسه أبداً.
- أوسكار وايلد
أمثلة وتطبيقات من قبل القراء
مرة أخرى، يجب أن أقول (كبيرًا!) شكرًا لجميع التعليقات اللطيفة حول الكتاب. لقد تلقيت العديد من رسائل البريد الإلكتروني من القراء، الذين وضعوا المفاهيم والأمثلة من هذا الكتاب في العالم الحقيقي والاستفادة منها بشكل جيد في مشاريعهم. في هذا القسم، بدأت في جمع بعض هذه التطبيقات الرائعة، وسأكون سعيدًا جدًا بإضافة مشروعك إلى هذه القائمة - فقط أرسل لي بريدًا سريعًا!
- 40 مخطوطة للتعرف البصري على الحروف لريتشارد ليمان
- تجارب الكود بواسطة جيريمي نيشن
- ما تعلمته في تنفيذ المصنف من الصفر في بايثون بواسطة جان نيكولاس هولد
التعليمات
أسئلة عامة
- ما هو التعلم الآلي وعلوم البيانات؟
- لماذا تقوم أنت وأشخاص آخرون أحيانًا بتنفيذ خوارزميات التعلم الآلي من الصفر؟
- ما هو مسار التعلم/التخصص في علم البيانات الذي يجب أن أركز عليه؟
- متى ينبغي للمرء أن يبدأ المساهمة في المصادر المفتوحة؟
- ما مدى أهمية وجود مرشد في عملية التعلم؟
- أين توجد أفضل المجتمعات عبر الإنترنت التي تتمحور حول علوم البيانات/التعلم الآلي أو لغة بايثون؟
- كيف تشرح التعلم الآلي لمهندس البرمجيات؟
- كيف سيبدو المنهج الدراسي الخاص بك للمبتدئين في التعلم الآلي؟
- ما هو تعريف علم البيانات؟
- كيف يقوم علماء البيانات باختيار النموذج؟ هل هو مختلف عن كاجل؟
أسئلة حول مجال التعلم الآلي
- كيف يرتبط الذكاء الاصطناعي والتعلم الآلي؟
- ما هي بعض الأمثلة الواقعية لتطبيقات التعلم الآلي في هذا المجال؟
- ما هي مجالات الدراسة المختلفة في استخراج البيانات؟
- ما هي الاختلافات في طبيعة البحث بين المجالين: التعلم الآلي واستخراج البيانات؟
- كيف أعرف ما إذا كانت المشكلة قابلة للحل من خلال التعلم الآلي؟
- ما هي أصول التعلم الآلي؟
- كيف تم تطوير التصنيف كآلة تعليمية؟
- ما هي خوارزميات التعلم الآلي التي يمكن اعتبارها من بين الأفضل؟
- ما هي الفئات الواسعة من المصنفات؟
- ما هو الفرق بين المصنف والنموذج؟
- ما الفرق بين خوارزمية التعلم البارامترية وخوارزمية التعلم غير البارامترية؟
- ما الفرق بين دالة التكلفة ووظيفة الخسارة في التعلم الآلي؟
أسئلة حول مفاهيم وإحصائيات ML
وظائف التكلفة والتحسين
- تركيب نموذج من خلال معادلات مغلقة مقابل نزول التدرج مقابل نزول التدرج العشوائي مقابل التعلم بالدفعة الصغيرة - ما الفرق؟
- كيف يمكنك استخلاص قاعدة التدرج النسبي للانحدار الخطي والأدالين؟
تحليل الانحدار
- ما هو الفرق بين بيرسون R والانحدار الخطي البسيط؟
نماذج الشجرة
- كيف يعمل نموذج الغابة العشوائية؟ كيف يختلف الأمر عن التعبئة والتعزيز في نماذج المجموعة؟
- ما هي عيوب استخدام خوارزمية شجرة القرار الكلاسيكية لمجموعة بيانات كبيرة؟
- لماذا تكون تطبيقات خوارزميات شجرة القرار ثنائية عادةً، وما هي مزايا مقاييس الشوائب المختلفة؟
- لماذا نقوم بتنمية أشجار القرار عبر الإنتروبيا بدلاً من خطأ التصنيف؟
- متى يمكن أن تؤدي الغابة العشوائية أداءً رهيبًا؟
تقييم النموذج
- ما هو الإفراط في التجهيز؟
- كيف يمكنني تجنب الإفراط في التجهيز؟
- هل من الأفضل دائمًا الحصول على أكبر عدد ممكن من الطيات عند إجراء التحقق المتبادل؟
- عند تدريب مصنف SVM، هل من الأفضل أن يكون لديك عدد كبير أم صغير من ناقلات الدعم؟
- كيف يمكنني تقييم النموذج؟
- ما هو أفضل مقياس للتحقق من التصنيف متعدد الفئات؟
- ما هي العوامل التي يجب مراعاتها عند اختيار تقنية النموذج التنبؤي؟
- ما هي أفضل مجموعات بيانات الألعاب للمساعدة في تصور وفهم سلوك المصنف؟
- كيف أختار نواة SVM؟
- فاصل: مقارنة وحساب مقاييس الأداء في التحقق من الصحة - مشاكل الفصل غير المتوازنة و3 طرق مختلفة لحساب درجة F1
الانحدار اللوجستي
- ما هو انحدار Softmax وكيف يرتبط بالانحدار اللوجستي؟
- لماذا يعتبر الانحدار اللوجستي نموذجا خطيا؟
- ما هو التفسير الاحتمالي للانحدار اللوجستي المنظم؟
- هل يؤدي التنظيم في الانحدار اللوجستي دائمًا إلى توافق أفضل وتعميم أفضل؟
- ما هو الفرق الرئيسي بين بايز الساذج والانحدار اللوجستي؟
- ما هو بالضبط "softmax والخسارة اللوجستية متعددة الحدود" في سياق التعلم الآلي؟
- ما هي العلاقة بين الانحدار اللوجستي والشبكات العصبية ومتى يتم استخدامها؟
- الانحدار اللوجستي: لماذا الدالة السيني؟
- هل هناك حل تحليلي للانحدار اللوجستي مشابه للمعادلة العادية للانحدار الخطي؟
الشبكات العصبية والتعلم العميق
- ما الفرق بين التعلم العميق والتعلم الآلي المعتاد؟
- هل يمكنك تقديم شرح مرئي لخوارزمية الانتشار الخلفي للشبكات العصبية؟
- لماذا استغرق اختراع الشبكات العميقة وقتاً طويلاً؟
- ما هي بعض الكتب/الأوراق الجيدة لتعلم التعلم العميق؟
- لماذا يوجد الكثير من مكتبات التعلم العميق؟
- لماذا يكره بعض الناس الشبكات العصبية/التعلم العميق؟
- كيف يمكنني معرفة ما إذا كان التعلم العميق يعمل بشكل أفضل لحل مشكلة معينة من SVM أو الغابة العشوائية؟
- ما هو الخطأ عندما يزداد خطأ شبكتي العصبية؟
- كيف أقوم بتصحيح خوارزمية الشبكة العصبية الاصطناعية؟
- ما الفرق بين نموذج الشبكة Perceptron و Adaline والشبكة العصبية؟
- ما هي الفكرة الأساسية وراء تقنية التسرب؟
خوارزميات أخرى للتعلم الخاضع للإشراف
- لماذا يعتبر أقرب جار خوارزمية كسولة؟
التعلم غير الخاضع للرقابة
- ما هي بعض القضايا المتعلقة بالتجميع؟
التعلم شبه الخاضع للإشراف
- ما هي مميزات التعلم شبه الخاضع للإشراف مقارنة بالتعلم الخاضع للإشراف وغير الخاضع للإشراف؟
طرق الفرقة
- هل الجمع بين المصنفات والتكديس أفضل من اختيار الأفضل؟
المعالجة المسبقة واختيار الميزة والاستخراج
- لماذا نحتاج إلى إعادة استخدام معلمات التدريب لتحويل بيانات الاختبار؟
- ما هي طرق تقليل الأبعاد المختلفة في التعلم الآلي؟
- ما الفرق بين LDA وPCA لتقليل الأبعاد؟
- متى يجب علي تطبيق تسوية/توحيد البيانات؟
- هل يعني التوسيط أو تحجيم الميزات أن يؤثر على تحليل المكون الرئيسي؟
- كيف يمكنك معالجة مشكلة التعلم الآلي بعدد كبير من الميزات؟
- ما هي بعض الأساليب الشائعة للتعامل مع البيانات المفقودة؟
- ما الفرق بين طرق التصفية والمغلف والأساليب المضمنة لاختيار الميزة؟
- هل يجب اعتبار خطوة إعداد البيانات/المعالجة المسبقة جزءًا من هندسة الميزات؟ لماذا أو لماذا لا؟
- هل يعتبر تمثيل ميزة حقيبة الكلمات لتصنيف النص بمثابة مصفوفة متفرقة؟
ساذج بايز
- لماذا يعتبر مُصنف Naive Bayes ساذجًا؟
- ما هي حدود القرار بالنسبة لـ Naive Bayes؟
- هل يمكنني استخدام مصنفات Naive Bayes لأنواع المتغيرات المختلطة؟
- هل من الممكن مزج أنواع مختلفة من المتغيرات في Naive Bayes، على سبيل المثال، الميزات الثنائية والمستمرة؟
آخر
- ما هي المسافة الإقليدية من حيث التعلم الآلي؟
- متى يجب استخدام الوسيط بدلاً من المتوسط أو المتوسط؟
لغات البرمجة والمكتبات لعلوم البيانات والتعلم الآلي
- هل يستخدم R على نطاق واسع اليوم في علم البيانات؟
- ما هو الفرق الرئيسي بين TensorFlow وscikit-Learn؟
أسئلة حول الكتاب
- هل يمكنني استخدام فقرات وصور من الكتاب في العروض التقديمية أو في مدونتي؟
- كيف يختلف هذا عن كتب التعلم الآلي الأخرى؟
- ما هو إصدار بايثون الذي تم استخدامه في أمثلة التعليمات البرمجية؟
- ما هي التقنيات والمكتبات المستخدمة؟
- ما هو إصدار/تنسيق الكتاب الذي توصي به؟
- لماذا اخترت لغة بايثون للتعلم الآلي؟
- لماذا تستخدم الكثير من الشرطات السفلية البادئة والزائدة في أمثلة التعليمات البرمجية؟
- ما هو الغرض من
return self
في أمثلة التعليمات البرمجية الخاصة بك؟ - هل هناك أي متطلبات مسبقة وقراءات مسبقة موصى بها؟
- كيف يمكنني تطبيق SVM على البيانات الفئوية؟
اتصال
يسعدني الإجابة على الأسئلة! فقط اكتب لي بريدًا إلكترونيًا أو فكر في طرح السؤال على قائمة البريد الإلكتروني لمجموعات Google.
إذا كنت مهتمًا بالبقاء على اتصال، فلدي بث حي على تويتر (@rasbt) يدور حول علوم البيانات والتعلم الآلي. لدي أيضًا مدونة حيث أقوم بنشر كل الأشياء التي تثير اهتمامي بشكل خاص.