بناء نماذج تعلم الآلة باستخدام مكتبة Scikit-Learn في Python

تعلم الآلة هو مجال مهم في الذكاء الاصطناعي يتضمن بناء نماذج قادرة على التعلم من البيانات. Python توفر مكتبة قوية تُعرف بـ Scikit-Learn التي تسهل عملية بناء هذه النماذج. في هذا المقال، سنتعرف على كيفية بناء نماذج تعلم الآلة باستخدام Scikit-Learn، بدءًا من تحميل البيانات وحتى تقييم أداء النموذج.

ما هي مكتبة Scikit-Learn؟

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

تحميل البيانات في Scikit-Learn

أول خطوة في بناء نموذج تعلم الآلة هي الحصول على البيانات. يمكن تحميل مجموعات بيانات جاهزة من مكتبة Scikit-Learn أو استخدام بيانات مخصصة. في هذا المثال، سنستخدم مجموعة بيانات iris الشهيرة، التي تُستخدم لتصنيف أنواع الزهور:


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# تحميل البيانات
iris = load_iris()
X = iris.data
y = iris.target

# تقسيم البيانات إلى مجموعة تدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

في هذا المثال، نقوم بتحميل مجموعة بيانات iris وتقسيمها إلى بيانات تدريب واختبار باستخدام train_test_split. يُخصص 70% من البيانات للتدريب و30% للاختبار.

بناء نموذج تعلم الآلة

بعد تحميل البيانات، يمكننا بناء نموذج تعلم الآلة. سنستخدم في هذا المثال خوارزمية Support Vector Machine (SVM) لتصنيف أنواع الزهور في مجموعة بيانات iris:


from sklearn.svm import SVC

# بناء نموذج SVM
model = SVC(kernel='linear', C=1.0)
model.fit(X_train, y_train)

في هذا المثال، نقوم بإنشاء نموذج SVC باستخدام نواة خطية. ثم نقوم بتدريب النموذج على بيانات التدريب باستخدام model.fit().

تقييم أداء النموذج

بعد تدريب النموذج، يجب علينا تقييم أدائه باستخدام بيانات الاختبار التي لم تُستخدم في التدريب. سنستخدم معيار الدقة (accuracy) لتقييم أداء النموذج:


from sklearn.metrics import accuracy_score

# التنبؤ ببيانات الاختبار
y_pred = model.predict(X_test)

# حساب دقة النموذج
accuracy = accuracy_score(y_test, y_pred)
print("دقة النموذج: ", accuracy)

في هذا المثال، نقوم بالتنبؤ بالفئات في مجموعة بيانات الاختبار باستخدام model.predict()، ثم نقوم بحساب دقة النموذج باستخدام accuracy_score.

تحسين النموذج باستخدام ضبط المعلمات (Hyperparameter Tuning)

يمكن تحسين أداء النموذج عن طريق ضبط معلمات الخوارزمية. في Scikit-Learn، يمكننا استخدام GridSearchCV للبحث عن أفضل مجموعة من المعلمات:


from sklearn.model_selection import GridSearchCV

# تعريف المعلمات التي نريد ضبطها
param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']}

# إنشاء كائن GridSearchCV
grid_search = GridSearchCV(model, param_grid, cv=5)

# تدريب النموذج باستخدام GridSearchCV
grid_search.fit(X_train, y_train)

# الحصول على أفضل معلمات
best_params = grid_search.best_params_
print("أفضل معلمات: ", best_params)

في هذا المثال، نستخدم GridSearchCV للبحث عن أفضل قيم لمعلمة C والنواة kernel. يتم تقييم كل مجموعة من المعلمات باستخدام التحقق المتقاطع (cross-validation).

تطبيق نموذج تعلم الآلة على بيانات جديدة

بعد تحسين النموذج وتدريبه، يمكننا استخدامه للتنبؤ ببيانات جديدة. يتم ذلك باستخدام model.predict():


# بيانات جديدة للتنبؤ
new_data = [[5.1, 3.5, 1.4, 0.2]]

# التنبؤ باستخدام النموذج
prediction = model.predict(new_data)
print("التنبؤ للفئة: ", prediction)

في هذا المثال، نقوم بالتنبؤ بالفئة لبيانات جديدة باستخدام النموذج المدرب. model.predict() يعطينا الفئة المتوقعة بناءً على البيانات المدخلة.

مقارنة Scikit-Learn مع مكتبات تعلم الآلة الأخرى

Scikit-Learn تُعد من أشهر مكتبات تعلم الآلة في Python، ولكن هناك مكتبات أخرى مثل TensorFlow و PyTorch تُستخدم في مجالات معينة. إليك مقارنة بسيطة:

  • Scikit-Learn: مثالية للنماذج التقليدية والإحصائية، سهلة الاستخدام والتعلم، ومناسبة للمبتدئين.
  • TensorFlow: تُستخدم لبناء نماذج التعلم العميق (Deep Learning)، وتوفر أدوات قوية للتدريب على نطاق واسع.
  • PyTorch: مكتبة مرنة لتطوير نماذج التعلم العميق، تُستخدم بشكل واسع في البحث الأكاديمي.

الخلاصة

بناء نماذج تعلم الآلة باستخدام مكتبة Scikit-Learn في Python يُعد خطوة ممتازة لدخول عالم الذكاء الاصطناعي. المكتبة توفر أدوات قوية وسهلة الاستخدام لبناء، تدريب، وتحسين نماذج تعلم الآلة. سواء كنت تبحث عن بناء نماذج بسيطة أو تحسينها باستخدام تقنيات متقدمة مثل GridSearchCV، فإن Scikit-Learn توفر لك كل ما تحتاجه لتحقيق أهدافك.