تعلم Scikit - التعلم الآلي باستخدام Python



ستعرفك مدونة Scikit Learn على التعلم الآلي في لغة بيثون. يتضمن حالة استخدام حيث سنقوم بتنفيذ الانحدار اللوجستي باستخدام scikit Learn.

في هذه المدونة ، سنناقش تعلم Scikit بلغة بيثون. قبل الحديث عن تعلم Scikit ، يجب على المرء أن يفهم مفهوم التعلم الآليويجب أن تعرف كيفية استخدامها . باستخدام التعلم الآلي ، لن تضطر إلى جمع إحصاءاتك يدويًا. تحتاج فقط إلى خوارزمية وسوف يقوم الجهاز بالباقي من أجلك! أليس هذا مثيرًا؟ يعد Scikit Learn أحد عوامل الجذب حيث يمكننا تنفيذ التعلم الآلي باستخدام Python. ذلكهي مكتبة مجانية للتعلم الآلي تحتوي على أدوات بسيطة وفعالة لتحليل البيانات وأغراض التعدين.سوف أخوضك في الموضوعات التالية ، والتي ستكون بمثابة أساسيات للمدونات القادمة:

ما هو التعلم الآلي؟

التعلم الآلي هو نوع من الذكاء الاصطناعي يسمح للتطبيقات البرمجية بالتعلم من البيانات وتصبح أكثر دقة في التنبؤ بالنتائج دون تدخل بشري. لكن كيف يحدث ذلك؟ لذلك ، يحتاج الجهاز إلى التدريب على بعض البيانات وبناءً على ذلك ، سيكتشف نمطًا لإنشاء نموذج.تتمحور عملية اكتساب المعرفة من البيانات وتقديم رؤى قوية حول التعلم الآلي. راجع الصورة أدناه للحصول على فهم أفضل لعملها:





MachineLearning - Scikit Learn - Edureka

باستخدام البيانات ، يتعلم النظام خوارزمية ثم يستخدمها لبناء نموذج تنبؤي. في وقت لاحق ، نقوم بتعديل النموذج أو نقوم بتحسين دقة النموذج باستخدام بيانات التغذية الراجعة. باستخدام بيانات الملاحظات هذه ، نقوم بضبط النموذج ونتوقع الإجراء على مجموعة البيانات الجديدة. ونحن سوفتناقش أ حالة الاستخدام أحد أساليب الخوارزمية حيث سنقوم بتدريب واختبار البيانات التي ستساعدك على إعطاء فكرة أفضل عما إذا كانت مناسبة لمشكلتك الخاصة أم لا.



بعد ذلك ، هناك ثلاثة أنواع من التعلم الآلي:

جافا للمطور الأمامي استئناف
    • التعلم الخاضع للإشراف : هذه عملية تعلم خوارزمية من مجموعة بيانات التدريب. التعلم الخاضع للإشراف هو المكان الذي تنشئ فيه وظيفة تعيين بين متغير الإدخال (X) ومتغير الإخراج (Y) وتستخدم خوارزمية لإنشاء وظيفة بينهما. يُعرف أيضًا باسم النمذجة التنبؤية التي تشير إلى عملية إجراء تنبؤات باستخدام البيانات. تتضمن بعض الخوارزميات الانحدار الخطي والانحدار اللوجستي وشجرة القرار والغابة العشوائية ومصنف بايز ساذج. سنناقش حالة استخدام التعلم الخاضع للإشراف حيث نقوم بتدريب الآلة على استخدامها الانحدار اللوجستي .
    • تعليم غير مشرف عليه : هذه عملية يتم فيها تدريب النموذج باستخدام معلومات غير مصنفة. يمكن استخدام هذه العملية لتجميع بيانات الإدخال في فئات على أساس خصائصها الإحصائية. يسمى التعلم غير الخاضع للإشراف أيضًا باسم cتحليل lustering الذي يعني تجميع الكائنات بناءً على المعلومات الموجودة في البيانات التي تصف الكائنات أو علاقتها. الهدف هو أن الأشياء في مجموعة واحدة يجب أن تكون متشابهة مع بعضها البعض ولكن مختلفة عن الأشياء في مجموعة أخرى. تتضمن بعض الخوارزميات مجموعات K-mean ، والتجميع الهرمي وما إلى ذلك.
    • تعزيز التعلم: التعلم المعزز هو التعلم من خلال التفاعل مع مساحة أو بيئة.يتعلم وكيل RL من عواقب أفعاله ، بدلاً من تعليمه بشكل صريح. يختار أفعاله على أساس خبراته السابقة (الاستغلال) وأيضًا من خلال الخيارات الجديدة (الاستكشاف).

نظرة عامة على Scikit Learn

Scikit Learn هي مكتبة تستخدم لإجراء التعلم الآلي في Python. Scikit Learn هي مكتبة مفتوحة المصدر ومرخصة بموجب BSD ويمكن إعادة استخدامها في سياقات مختلفة ، مما يشجع على الاستخدام الأكاديمي والتجاري. يوفر مجموعة من خوارزميات التعلم الخاضعة للإشراف وغير الخاضعة للإشراف في بايثون.يتكون تعلم Scikit من الخوارزميات والمكتبات الشائعة. بصرف النظر عن ذلك ، فإنه يحتوي أيضًا على الحزم التالية:



  • NumPy
  • ماتبلوتليب
  • SciPy (لغة بايثون العلمية)

لتطبيق Scikit Learn ، نحتاج أولاً إلى استيراد الحزم المذكورة أعلاه. إذا لم تكن معتادًا على هذه المكتبات ، يمكنك إلقاء نظرة على مدوناتي السابقة على و . يمكنك تنزيل هاتين الحزمتين باستخدام سطر الأوامر أو إذا كنت تستخدم PصCharm ، يمكنك تثبيته مباشرة بالانتقال إلى الإعداد الخاص بك بنفس الطريقة التي تفعلها مع الحزم الأخرى.

بعد ذلك ، بطريقة مماثلة، عليك استيراد Sklearn.تم بناء Scikit Learn على SciPy (Scientific Python) التي يجب تثبيتها قبل أن تتمكن من استخدام Scikit-Learn. يمكنك الرجوع إلى هذا موقع الكتروني لتنزيله. أيضًا ، قم بتثبيت حزمة Scipy و wheel إذا لم تكن موجودة ، يمكنك كتابة الأمر أدناه:

تثبيت نقطة scipy

لقد قمت بالفعل بتنزيله وتثبيته ، يمكنك الرجوع إلى لقطة الشاشة أدناه لمعرفة أي لبس.

بعد استيراد المكتبات المذكورة أعلاه ، دعونا نتعمق أكثر ونفهم كيف يتم استخدام Scikit Learn بالضبط.

يأتي Scikit Learn مصحوبًا بعينة من مجموعات البيانات ، مثل قزحية و أرقام . يمكنك استيراد مجموعات البيانات والتلاعب بها. بعد ذلك ، يجب عليك استيراد SVM والتي تعني Support Vector Machine. SVM هو شكل من أشكال التعلم الآلي يستخدم لتحليل البيانات.

دعونا نأخذ مثالا حيث سنأخذ أرقام مجموعة البيانات وستصنف الأرقام لنا ، على سبيل المثال - 0 1 2 3 4 5 6 7 8 9. الرجوع إلى الكود أدناه:

import matplotlib.pyplot as plt من sklearn استيراد مجموعات البيانات من sklearn import svm digits = datasets.load_digits () print (digits.data)

انتاج -

[[0. 0. 5. ... ، 0. 0. 0.] [0. 0. 0. ... ، 10. 0. 0.] [0. 0. 0. ... ، 16. 9. 0.] ... ، [0. 0. 1. ... ، 6. 0. 0.] [0. 0. 2. ... ، 12. 0. 0.] [0. 0. 10. ... ، 12. 1. 0.]]

هنا قمنا للتو باستيراد المكتبات و SVM ومجموعات البيانات وطباعة البيانات. إنها مجموعة طويلة من بيانات الأرقام حيث يتم تخزين البيانات. إنه يتيح الوصول إلى الميزات التي يمكن استخدامها لتصنيف أرقام عينات. بعد ذلك ، يمكنك أيضًا تجربة بعض العمليات الأخرى مثل الهدف والصور وما إلى ذلك. ضع في اعتبارك المثال أدناه:

import matplotlib.pyplot as plt من sklearn استيراد مجموعات البيانات من sklearn import svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

انتاج | -

[0 1 2 ...، 8 9 8] // هدف البيانات [[0. 0. 5. 13. 9. 1. 0. 0.] // صورة البيانات [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

كما ترى أعلاه ، تتم طباعة الأرقام المستهدفة وصورة الأرقام. أرقام. الهدف يعطي الحقيقة الأساسية ل رقم مجموعة البيانات ، وهذا هو الرقم المقابل لكل صورة رقمية. بعد ذلك ، تكون البيانات دائمًا عبارة عن مصفوفة ثنائية الأبعاد لها شكل (n_samples ، n_features) ، على الرغم من أن البيانات الأصلية قد يكون لها شكل مختلف. ولكن في حالة الأرقام ، تكون كل عينة أصلية عبارة عن صورة لشكل (8،8) ويمكن الوصول إليها باستخدام أرقام . صورة.

التعلم والتنبؤ

بعد ذلك ، في تعلم Scikit ، استخدمنا مجموعة بيانات (عينة من 10 فئات محتملة ، أرقام من صفر إلى تسعة) ونحتاج إلى توقع الأرقام عند إعطاء صورة. للتنبؤ بالفصل الدراسي ، نحتاج إلى مقدر مما يساعد على التنبؤ بالفئات التي تنتمي إليها العينات غير المرئية. في تعلم Scikit ، لدينا مقدر للتصنيف وهو كائن بيثون يقوم بتنفيذ الأساليب تناسب (س ، ص) و توقع (T). دعونا ننظر في المثال أدناه:

استيراد matplotlib.pyplot كـ PLT من sklearn استيراد مجموعات البيانات من sklearn import svm digits = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0.001، C = 100) print (len (digits.data)) x، y = digits.data [: - 1] ، digits.target [: - 1] // تدريب البيانات clf.fit (x، y) print ('Prediction:'، clf.predict (digits.data [-1]) ) // توقع البيانات plt.imshow (digits.images [-1]، cmap = plt.cm.gray_r، interpolation = 'الأقرب') plt.show ()

انتاج -

1796
التنبؤ: [8]


في المثال أعلاه ، وجدنا أولاً الطول وتحميل 1796 مثالاً. بعد ذلك ، استخدمنا هذه البيانات كبيانات تعلم ، حيث نحتاج إلى اختبار العنصر الأخير والعنصر السلبي الأول. أيضًا ، نحتاج إلى التحقق مما إذا كان الجهاز قد توقع البيانات الصحيحة أم لا. لذلك ، استخدمنا Matplotlib حيث عرضنا صورة الأرقام.في الختام ، لديك بيانات رقمية ، وحصلت على الهدف ، وتناسبك وتوقعه ، ومن ثم فأنت على ما يرام! إنه حقًا سريع وسهل ، أليس كذلك؟

يمكنك أيضًا تصور التسميات المستهدفة بصورة ، ما عليك سوى الرجوع إلى الكود أدناه:

import matplotlib.pyplot as plt من sklearn استيراد مجموعات البيانات من sklearn import svm digits = datasets.load_digits () # انضم إلى الصور والتسميات المستهدفة في قائمة images_and_labels = list (zip (digits.images، digits.target)) # لكل عنصر في قائمة الفهرس ، (صورة ، ملصق) في التعداد (images_and_labels [: 8]): # تهيئة مخطط فرعي من 2X4 في الموضع i + 1-th plt.subplot (2 ، 4 ، index + 1) # عرض الصور في جميع المخططات الفرعية plt.imshow (image، cmap = plt.cm.gray_r، interpolation = 'الأقرب') # أضف عنوانًا لكل جزء فرعي plt.title ('Training:' + str (label)) # أظهر مخطط الرسم البياني. تبين()

انتاج |-


كما ترى في الكود أعلاه ، فقد استخدمنا وظيفة 'zip' لضم الصور والتسميات المستهدفة في قائمة ثم حفظها في متغير ، مثل images_and_labels. بعد ذلك ، قمنا بفهرسة العناصر الثمانية الأولى في شبكة 2 × 4 في كل موضع. بعد ذلك ، قمنا للتو بعرض الصور بمساعدة Matplotlib وأضفنا العنوان باسم 'تدريب'.

السلسلة قابلة للتغيير أو غير قابلة للتغيير في جافا

حالة الاستخدام - التنبؤ باستخدام الانحدار اللوجستي

عرض المشكلة - طرحت شركة سيارات سيارة دفع رباعي جديدة في السوق. باستخدام البيانات السابقة حول مبيعات سيارات الدفع الرباعي الخاصة بهم ، فإنهم يريدون التنبؤ بفئة الأشخاص الذين قد يكونون مهتمين بشراء هذا.

لهذا ، دعونا نرى مجموعة البيانات حيث لدي معرف المستخدم والجنس والعمر والراتب المقدر والمشتريات كأعمدة. هذه مجرد عينة مجموعة بيانات ، يمكنك تنزيل مجموعة البيانات بأكملها منها هنا . بمجرد استيراد البيانات في pyCharm ، تبدو إلى حد ما مثل هذا.

الآن دعونا نفهم هذه البيانات. كما ترون في مجموعة البيانات أعلاه ، لدينا فئات مثل المعرف والجنس والعمر وما إلى ذلك. وبناءً على هذه الفئات ، سنقوم بتدريب أجهزتنا والتنبؤ بالرقم. من المشتريات. لذلك لدينا هنا المتغيرات المستقلة مثل 'العمر' و 'الراتب المتوقع' و المتغير التابع كـ 'مشتراة'. الآن سنقوم بتطبيق التعلم الخاضع للإشراف ، أي خوارزمية الانحدار اللوجستي لمعرفة عدد عمليات الشراء باستخدام البيانات الموجودة.

أولاً ، دعنا نلقي نظرة عامة على الانحدار اللوجستي.

الانحدار اللوجستي - ينتج عن الانحدار اللوجستي نتائج بتنسيق ثنائي يستخدم للتنبؤ بنتيجة متغير تابع فئوي. يتم استخدامه على نطاق واسع عندما يكون المتغير التابع ثنائيًا ، أي أن عدد الفئات المتاحة هو اثنان مثل ، المخرجات المعتادة للانحدار اللوجستي هي -

  • نعم و لا
  • صح وخطأ
  • عالي و منخفض
  • تمر وفشل

الآن لنبدأ بالشفرة ، سنقوم أولاً باستيراد هذه المكتبات - Numpy و Matplotlib و Pandas. من السهل جدًا استيراد الباندا في Pycharm باتباع الخطوات التالية:

الإعدادات -> إضافة حزمة -> Pandas -> التثبيت

بعد ذلك ، سنستورد مجموعة البيانات والمتغير التابع المنفصل (المشتراة) والمتغير المستقل (العمر ، الراتب) من خلال:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:، [2، 3]]. قيم y = dataset.iloc [:، 4] .values ​​print (X) print (y)

ستكون الخطوة التالية هي التدريب واختبار البيانات. تتمثل الإستراتيجية الشائعة في أخذ جميع البيانات المصنفة وتقسيمها إلى مجموعات فرعية للتدريب والاختبار ، والتي يتم أخذها عادةً بنسبة 70-80٪ لمجموعة فرعية للتدريب و 20-30٪ لمجموعة فرعية للاختبار. ومن ثم ، فقد أنشأنا مجموعات تدريب واختبار باستخدام التحقق المتقاطع.

من sklearn.cross_validation import train_test_split X_train، X_test، y_train، y_test = train_test_split (X، y، test_size = 0.25، random_state = 0)

يمكننا أيضًا قياس قيم الإدخال للحصول على أداء أفضل باستخدام StandarScaler كما هو موضح أدناه:

من sklearn.preprocessing استيراد StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

الآن سنقوم بإنشاء نموذج الانحدار اللوجستي الخاص بنا.

من sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train، y_train)

يمكننا استخدام هذا والتنبؤ بنتائج مجموعة الاختبار الخاصة بنا.

y_pred = classifier.predict (X_test)

الآن ، يمكننا التحقق من عدد التوقعات التي كانت دقيقة وعدد التوقعات التي لم تكن تستخدم الارتباك مصفوفة . دعونا نحدد Y على أنها حالات إيجابية و N كحالات سلبية. تمت صياغة النتائج الأربعة في مصفوفة ارتباك 2 * 2 ، كما هو موضح أدناه:

من sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test، y_pred) print (cm)

انتاج |-

[[65 3] [8 24]]

بعد ذلك ، بناءً على مصفوفة الارتباك الخاصة بنا ، يمكننا حساب الدقة. لذلك في المثال أعلاه ، ستكون الدقة:

الفرق بين الهاشمب والتجزئة

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89٪

لقد فعلنا هذا يدويًا! الآن دعونا نرى كيف تحسب الآلة نفس الشيء بالنسبة لنا ، لذلك لدينا وظيفة مضمنة 'دقة_سكور' والتي تحسب الدقة وتطبعها ، كما هو موضح أدناه:

من sklearn.metrics import resolution_score // قم باستيراد وظيفة دقة الطباعة (دقة_تسجيل (y_test ، y_pred) * 100) // يطبع الدقة

انتاج -

89.0

يا هلا! لقد نجحنا في تنفيذ الانحدار اللوجستي باستخدام Scikit Learn بدقة 89٪.

انقر هنا للحصول على المصدر الكامل للتنبؤ أعلاه باستخدام مكتبة تعلم Python Scikit.

مع هذا ، قمنا بتغطية واحدة فقط من العديد من الخوارزميات الشائعة التي تقدمها Python.لقد قمنا بتغطية جميع أساسيات Scikit تعلم المكتبة ،حتى تتمكن من البدء في التدريب الآن. كلما مارست أكثر كلما تعلمت أكثر. ترقبوا المزيد من مدونات دروس بيثون!

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'Scikit Learn' وسنعاود الاتصال بك في أقرب وقت ممكن. للحصول على معرفة متعمقة ببايثون مع تطبيقاتها المختلفة ، يمكنك ذلك للتدريب المباشر عبر الإنترنت مع دعم على مدار الساعة طوال أيام الأسبوع وإمكانية الوصول مدى الحياة.