تعلم الآلة بـ Python: دليل عملي للمبتدئين
تعلم الآلة (Machine Learning) هو فرع من الذكاء الاصطناعي يسمح للكمبيوتر بالتعلم من البيانات. Python هي اللغة الأولى في هذا المجال.
إعداد بيئة العمل
# تثبيت Python و Jupyter:
pip install jupyter numpy pandas scikit-learn matplotlib
# تشغيل Jupyter Notebook:
jupyter notebook
# أو استخدم Google Colab (مجاني):
# colab.research.google.com
# لا يحتاج تثبيت — يعمل في المتصفح!
أنواع تعلم الآلة
- التعلم الخاضع للإشراف (Supervised): تعطيه أمثلة صحيحة ويتعلم منها
- التعلم غير الخاضع للإشراف (Unsupervised): يكتشف أنماطاً بنفسه
- التعلم المعزز (Reinforcement): يتعلم بالتجربة والخطأ
مشروع عملي: توقع أسعار المنازل
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 1. تحميل البيانات
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['price'] = data.target
# 2. استكشاف البيانات
print(df.head())
print(df.describe())
print(df.shape) # عدد الصفوف والأعمدة
# 3. تقسيم البيانات
X = df.drop('price', axis=1)
y = df['price']
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 4. تدريب النموذج
model = LinearRegression()
model.fit(X_train, y_train)
# 5. التقييم
y_pred = model.predict(X_test)
print(f"R2 Score: {r2_score(y_test, y_pred):.2f}")
print(f"RMSE: {np.sqrt(mean_squared_error(y_test, y_pred)):.2f}")
# 6. التوقع
new_house = [[8.3, 41, 6.9, 1.02, 322, 2.5, 37.88, -122.23]]
predicted_price = model.predict(new_house)
print(f"السعر المتوقع: ${predicted_price[0]*100000:.0f}")
مشروع 2: تصنيف النصوص (Spam Detection)
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import Pipeline
# بيانات مثال
messages = [
("ربحت مليون دولار! اضغط هنا", "spam"),
("اجتماع الفريق غداً الساعة 10", "ham"),
("عرض خاص: خصم 90%!!", "spam"),
("هل أنجزت تقرير المشروع؟", "ham"),
]
texts = [m[0] for m in messages]
labels = [m[1] for m in messages]
# بناء Pipeline
pipeline = Pipeline([
('tfidf', TfidfVectorizer()),
('classifier', MultinomialNB())
])
pipeline.fit(texts, labels)
# اختبار
test_msg = "فرصة استثمارية — ضاعف أموالك!"
result = pipeline.predict([test_msg])
print(f"\"{test_msg}\" → {result[0]}")
خطوات كل مشروع ML
- 1. جمع البيانات: CSV, API, قاعدة بيانات
- 2. تنظيف البيانات: إزالة القيم المفقودة والشاذة
- 3. استكشاف البيانات: رسوم بيانية وإحصائيات
- 4. اختيار النموذج: Linear, Decision Tree, Random Forest
- 5. التدريب: fit(X_train, y_train)
- 6. التقييم: Accuracy, R2, RMSE
- 7. التحسين: ضبط المعاملات (Hyperparameter Tuning)
ملخص المهارات المكتسبة
- إعداد بيئة Python لتعلم الآلة
- بناء نموذج توقع (Linear Regression)
- بناء مصنف نصوص (Naive Bayes)
- فهم خطوات مشروع ML
الخطوة التالية: افتح Google Colab وشغّل المشروع الأول — عدّل البيانات وجرّب نماذج مختلفة.