تعلم الآلة هو فرع من الذكاء الاصطناعي يهدف إلى تمكين الحواسيب من التعلم من البيانات واتخاذ قرارات ذكية. تعلم الآلة يمكن أن يساعد في حل مشاكل معقدة في مجالات مختلفة مثل الطب والتسويق والتعليم والأمن وغيرها. في هذه المقالة، سنتعرف على أساسيات تعلم الآلة وكيفية بناء أول نموذج لك باستخدام بيثون.
ما هي الخطوات اللازمة لبناء نموذج تعلم آلة؟
بشكل عام، يمكن تقسيم عملية بناء نموذج تعلم آلة إلى خمس خطوات رئيسية:
- تحديد المشكلة والهدف: يجب أن تحدد ما هي المشكلة التي تريد حلها بواسطة تعلم الآلة وما هي النتيجة المرجوة من نموذجك. على سبيل المثال، قد تريد التنبؤ بسعر السكن بناء على مجموعة من المتغيرات مثل المساحة والموقع وعدد الغرف وغيرها.
- جمع وتحضير البيانات: يجب أن تجمع مجموعة من البيانات التي تحتوي على المتغيرات المستقلة (المدخلات) والمتغيرات التابعة (المخرجات) التي ترتبط بمشكلتك. يجب أن تنظف البيانات من الأخطاء والقيم الناقصة والمتناقضة وتقوم بتحويلها إلى صيغة مناسبة للتحليل. على سبيل المثال، قد تستخدم ملف CSV أو قاعدة بيانات SQL لتخزين البيانات.
- اختيار وتدريب النموذج: يجب أن تختار خوارزمية تعلم آلة تناسب مشكلتك وتقوم بتعديل معلماتها لتحسين أدائها. يجب أن تقسم البيانات إلى مجموعتين: مجموعة تدريب ومجموعة اختبار. تستخدم مجموعة التدريب لتعليم النموذج كيفية العثور على العلاقة بين المدخلات والمخرجات. تستخدم مجموعة الاختبار لتقييم أداء النموذج على بيانات جديدة لم يرها من قبل. على سبيل المثال، قد تستخدم خوارزمية الانحدار الخطي للتنبؤ بسعر السكن وتستخدم مقياس الخطأ المربع الأصغر لقياس دقة النموذج.
- تقييم وتحسين النموذج: يجب أن تقارن نتائج النموذج مع النتائج الحقيقية وتحدد مدى قدرته على حل مشكلتك. يجب أن تستخدم مقاييس تقييم مناسبة لنوع مشكلتك وتحاول تحسين النموذج بواسطة تغيير معلماته أو استخدام بيانات أكثر أو اختيار خوارزمية أخرى. على سبيل المثال، قد تستخدم معامل الارتباط أو معامل التحديد لقياس مدى انطباق النموذج للبيانات وتحاول تقليل الانحدار أو الزيادة في النموذج.
- نشر وصيانة النموذج: يجب أن تجعل النموذج متاحا للمستخدمين النهائيين الذين سيستفيدون منه في حل مشاكلهم. يجب أن تقوم بتوثيق النموذج وشرح طريقة عمله والمتطلبات اللازمة لاستخدامه. يجب أن تقوم بمراقبة أداء النموذج وتحديثه بشكل دوري لضمان جودته وفعاليته. على سبيل المثال، قد تستخدم واجهة برمجة تطبيقات (API) أو تطبيق ويب أو هاتفي لنشر النموذج وتقديم خدمة التنبؤ بسعر السكن للمستخدمين.
كيفية بناء نموذج تعلم آلة باستخدام بيثون؟
بيثون هي لغة برمجة شائعة وسهلة الاستخدام توفر العديد من المكتبات والأدوات التي تساعد في بناء وتحليل ونشر نماذج تعلم آلة. في هذا القسم، سنرى كيفية استخدام بعض من هذه المكتبات والأدوات لبناء نموذج تعلم آلة بسيط للتنبؤ بسعر السكن بناء على مجموعة من المتغيرات. سنتبع الخطوات التالية:
- استيراد المكتبات اللازمة: سنستخدم مكتبة pandas للتعامل مع البيانات الجدولية ومكتبة numpy للتعامل مع العمليات الرياضية ومكتبة sklearn للتعامل مع خوارزميات تعلم الآلة ومكتبة matplotlib للتعامل مع الرسوم البيانية. يمكننا استيراد هذه المكتبات بواسطة الأوامر التالية:
import pandas as pd
import numpy as np
import sklearn
import matplotlib.pyplot as plt
- جمع وتحضير البيانات: سنستخدم مجموعة بيانات تسمى Boston Housing Dataset والتي تحتوي على معلومات عن 506 منازل في بوسطن وسعرها المتوسط. يمكننا تحميل هذه المجموعة من مكتبة sklearn بواسطة الأوامر التالية:
from sklearn.datasets import load_boston
boston = load_boston()
- يمكننا عرض وصف للمجموعة بواسطة الأمر التالي:
print(boston.DESCR)
- يمكننا تحويل المجموعة إلى بيانات جدولية باستخدام مكتبة pandas بواسطة الأوامر التالية:
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['MEDV'] = boston.target
df.head()
- يمكننا عرض ملخص إحصائي للبيانات بواسطة الأمر التالي:
df.describe()
- يمكننا عرض العلاقة بين بعض المتغيرات وسعر السكن باستخدام الرسوم البيانية بواسطة الأوامر التالية:
plt.scatter(df['RM'], df['MEDV'])
plt.xlabel('Average number of rooms')
plt.ylabel('Median value of owner-occupied homes')
plt.show()
- يمكننا ملاحظة أن هناك علاقة خطية موجبة بين عدد الغرف وسعر السكن، أي أن كلما زاد عدد الغرف كلما زاد سعر السكن.
- اختيار وتدريب النموذج: سنختار خوارزمية الانحدار الخطي لبناء نموذج تعلم آلة يتنبأ بسعر السكن بناء على عدد الغرف. يمكننا استخدام مكتبة sklearn لاستيراد وتدريب النموذج بواسطة الأوامر التالية:
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X = df['RM'].values.reshape(-1,1)
y = df['MEDV'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
- تقييم وتحسين النموذج: يمكننا استخدام مكتبة sklearn لتقييم أداء النموذج على مجموعة الاختبار بواسطة الأوامر التالية:
from sklearn.metrics import mean_squared_error, r2_score
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print('Mean squared error:', mse)
print('R-squared score:', r2)
- يمكننا عرض النموذج والبيانات على شكل رسم بياني بواسطة الأوامر التالية:
plt.scatter(X_test, y_test, label='Actual data')
plt.plot(X_test, y_pred, color='red', label='Predicted data')
plt.xlabel('Average number of rooms')
plt.ylabel('Median value of owner-occupied homes')
plt.legend()
plt.show()
- يمكننا ملاحظة أن النموذج ينطبق جيدا على البيانات ولكن ليس بشكل مثالي. يمكننا تحسين النموذج بواسطة إضافة المتغيرات الأخرى أو استخدام خوارزميات أخرى.
- نشر وصيانة النموذج: يمكننا حفظ النموذج في ملف باستخدام مكتبة pickle بواسطة الأوامر التالية:
import pickle
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
- يمكننا تحميل النموذج من الملف واستخدامه للتنبؤ بسعر السكن لأي عدد من الغرف بواسطة الأوامر التالية:
with open('model.pkl', 'rb') as f:
model = pickle.load(f)
rooms = 5
price = model.predict([[rooms]])[0]
print('The predicted price for', rooms, 'rooms is', price)
- يمكننا نشر النموذج على الإنترنت باستخدام أدوات مثل Flask أو Streamlit أو Heroku وتقديم واجهة مستخدم بسيطة تسمح للمستخدمين بإدخال عدد الغرف وعرض السعر المتوقع.
هذا هو نهاية المقالة. أتمنى أن تكون قد استفدت منها وأن تكون قادرا على بناء نموذج تعلم آلة خاص بك
اترك تعليقاً