بناء أول مصنف لتعلم الآلة في Python



ستساعدك هذه المقالة في إنشاء مصنف تعليمي آلي في Python من Scratch. كما سيوفر لك معرفة مفصلة بالتصنيف.

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

نظرة عامة على تعلم الآلة

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





مصنف تعلم الآلة

يتضمن التعلم الآلي قدرة الآلات على اتخاذ القرارات وتقييم نتائج أفعالها وتحسين سلوكها للحصول على نتائج أفضل على التوالي.



تتم عملية التعلم بثلاث طرق رئيسية

  • التعلم الخاضع للإشراف
  • تعليم غير مشرف عليه
  • تعزيز التعلم

نموذج لمصنفات تعلم الآلة

يتم توفير أدوات التعلم الآلي بسهولة تامة في مكتبة Python المسماة scikit-Learn ، والتي يسهل الوصول إليها والتطبيق.



قم بتثبيت scikit-learn من خلال موجه الأوامر باستخدام:

تثبيت Pip -U scikit-Learn

إذا كنت من مستخدمي الأناكوندا ، فيمكنك في موجه الأناكوندا استخدام:

conda تثبيت scikit-learn

يتطلب التثبيت التثبيت المسبق لحزم NumPy و SciPy على نظامك.

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

الخطوة 1 - استيراد المكتبات اللازمة

استيراد numpy كما np استيراد الباندا كما pd import matplotlib.pyplot as plt

الخطوة 2 - استيراد مجموعة البيانات

تطبيق تحليلات البيانات الضخمة
مجموعة البيانات = pd.read_csv ()

ثم قمنا بتقسيم مجموعة البيانات إلى متغيرات مستقلة وغير مستقلة. يجب أن تكون المتغيرات المستقلة هي بيانات الإدخال ، والمتغير التابع هو بيانات الإخراج.

X = dataset.iloc []. قيم y = dataset.iloc []. قيم

الخطوه 3 - التعامل مع البيانات المفقودة

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

من sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN'، Strategy = 'mean'، axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

الخطوة 4 - تحويل المتغيرات الفئوية إلى متغيرات رقمية

من sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

الآن ، بعد الترميز ، قد يحدث أن تفترض الآلة البيانات الرقمية كتصنيف للأعمدة المشفرة. وبالتالي ، لتوفير وزن متساوٍ ، يتعين علينا تحويل الأرقام إلى متجهات واحدة ساخنة ، باستخدام فئة OneHotEncoder.

من sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

الخطوة الخامسة - إجراء القياس

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

من sklearn.preprocessing استيراد StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

الخطوة 6 - قسّم مجموعة البيانات إلى بيانات تدريب واختبار

كخطوة أخيرة في المعالجة المسبقة ، يجب تقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار. النسبة القياسية لتقسيم اختبار القطار هي 75٪ -25٪. يمكننا التعديل حسب المتطلبات. يمكن للدالة train_test_split () القيام بذلك نيابةً عنا.

من sklearn.model_selection ، استيراد train_test_split X_train ، X_test ، y_train ، y_test = train_test_split (X ، y ، test_size = 0.25)

بناء نموذج: هذه الخطوة في الواقع بسيطة للغاية. بمجرد أن نقرر النموذج الذي سيتم تطبيقه على البيانات ، يمكننا إنشاء كائن من فئته المقابلة ، وتناسب الكائن في مجموعة التدريب لدينا ، مع الأخذ في الاعتبار X_train كمدخل و y_train كمخرج.

من sklearn. مصنف الاستيراد = () classifier.fit (X_train، y_train)

النموذج الآن مدرب وجاهز. يمكننا الآن تطبيق نموذجنا على مجموعة الاختبار ، والعثور على المخرجات المتوقعة.

y_pred = classifier.predict (X_test)

عرض النتائج: يمكن تقييم أداء المصنف من خلال معلمات الدقة والدقة والتذكر والنتيجة f1. يمكن رؤية هذه القيم باستخدام طريقة تعرف باسم class_report (). يمكن أيضًا اعتبار t كمصفوفة ارتباك تساعدنا على معرفة عدد فئات البيانات التي تم تصنيفها بشكل صحيح.

من sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test، y_pred) print (cm) من sklearn.metrics import rating_report target_names = [] print (rating_report (y_test، y_pred، target_names = target_names))

كيفية ضبط مسار جافا في النوافذ

مشكلة تصنيف تعلم الآلة

سنستخدم مجموعة بيانات Iris البسيطة والشائعة جدًا ، والتي تحتوي على أبعاد الزهور في 3 فئات - Iris-setosa و Iris-versicolor و Iris-virginica. يوجد 150 إدخالًا في مجموعة البيانات.

# استيراد مكتبات استيراد numpy كـ np import matplotlib.pyplot كـ plt import pandas كـ pd # استيراد مجموعة بيانات مجموعة البيانات = pd.read_csv ('iris.csv')

دعونا نلقي نظرة على مجموعة البيانات الآن.

dataset.head ()

لدينا 4 متغيرات مستقلة (باستثناء المعرف) ، وهي أرقام الأعمدة 1-4 ، والعمود 5 هو المتغير التابع. حتى نتمكن من فصلهم.

X = dataset.iloc [:، 1: 5] .values ​​y = dataset.iloc [:، 5] .values

يمكننا الآن تقسيم مجموعة البيانات إلى تدريب واختبار.

# تقسيم مجموعة البيانات إلى مجموعة التدريب ومجموعة الاختبار من sklearn.model_selection import train_test_split X_train و X_test و y_train و y_test = train_test_split (X، y، test_size = 0.25)

سنقوم الآن بتطبيق مصنف الانحدار اللوجستي على مجموعة البيانات.

# بناء وتدريب النموذج من sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train، y_train) # توقع نتائج مجموعة الاختبار y_pred = classifier.predict (X_test)

ستكون الخطوة الأخيرة هي تحليل أداء النموذج المدرب.

# عمل مصفوفة الارتباك من sklearn.metrics استيراد confusion_matrix cm = confusion_matrix (y_test، y_pred) print (cm)

يوضح لنا هذا أنه تم توقع 13 إدخالًا من الفئة الأولى و 11 في الثانية و 9 من الفئة الثالثة بشكل صحيح بواسطة النموذج.

# توليد الدقة ، والدقة ، والاستدعاء ، ودرجة f1 من sklearn.metrics import rating_report target_names = ['Iris-setosa'، 'Iris-versicolor'، 'Iris-virginica'] print (rating_report (y_test، y_pred، target_names = target_names) )

يُظهر التقرير قيم الدقة والاسترجاع ودرجة f1 ودقة النموذج في مجموعة الاختبار الخاصة بنا ، والتي تتكون من 38 إدخالًا (25٪ من مجموعة البيانات).

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