یک مدل یادگیری ماشین را آموزش میدهم تا یک نقشه ذهنی از ورودیها به خروجیها را یاد بگیرد. این فرآیند با استفاده از یک مجموعه داده برچسبخورده (Labeled Dataset) انجام میشود. در ادامه، به زبان ساده و با استفاده از "مدلی از کلیدها"، مفاهیم اصلی Supervised Learning را توضیح میدهم:
کلید | مفهوم | توضیح ساده |
---|---|---|
دادههای ورودی (Input Data) | ویژگیها (Features) | مقادیری که مدل بر اساس آنها تصمیم میگیرد. مثلاً در پیشبینی قیمت خانه، ویژگیها میتوانند متراژ، تعداد اتاقها، و محل خانه باشند. |
برچسبها (Labels) | خروجی هدف (Target Output) | نتیجهای که میخواهیم مدل آن را پیشبینی کند. مثلاً قیمت خانه. |
دادهی آموزشی (Training Data) | مجموعه دادهی برچسبخورده | شامل نمونههایی است که ورودی و خروجی آنها مشخص است، و برای آموزش مدل استفاده میشود. |
الگوریتم | روش یادگیری | الگوریتم مشخص میکند که مدل چطور باید رابطه بین ورودیها و خروجیها را یاد بگیرد (مثلاً خطی، درخت تصمیم، شبکه عصبی و...) |
تابع هزینه (Loss Function) | معیار خطا | فاصلهی بین پیشبینی مدل و خروجی واقعی را اندازه میگیرد. هدف، کاهش این خطاست. |
آموزش (Training) | فرآیند یادگیری | مدل با دیدن نمونههای زیاد و تنظیم پارامترهای داخلی خودش، سعی میکند الگوهای موجود را یاد بگیرد. |
اعتبارسنجی (Validation) | ارزیابی در حین یادگیری | بررسی عملکرد مدل روی دادههایی که در آموزش دیده نشدهاند، برای جلوگیری از یادگیری بیشازحد (Overfitting). |
پیشبینی (Prediction) | خروجی مدل | پس از آموزش، مدل میتواند برای ورودیهای جدید، خروجی را پیشبینی کند. |
دقت (Accuracy) | ارزیابی عملکرد | معیاری برای سنجش اینکه مدل چقدر خوب یاد گرفته است. (بسته به نوع مسئله، از معیارهای مختلف مثل MAE, MSE, Precision, Recall و غیره استفاده میشود). |
دستهبندی و رگرسیون | دو نوع مسئله | اگر خروجی مدل دسته باشد (مثلاً "بله/خیر")، مسئله دستهبندی است. اگر خروجی عددی باشد (مثلاً قیمت)، مسئله رگرسیون است. |
مثال ساده:
فرض کن میخواهیم تشخیص بدهیم که آیا یک ایمیل اسپم است یا نه:
ورودیها: تعداد دفعات تکرار کلمات خاص، طول ایمیل، وجود لینک یا نه...
برچسبها: اسپم (1) یا غیر اسپم (0)
مدل: یک الگوریتم یادگیری مثل Logistic Regression یا Random Forest
خروجی: مدل برای هر ایمیل جدید میگوید اسپم است یا نه
یک مثال ساده از یادگیری نظارتشده (Supervised Learning) با پایتون و استفاده از کتابخانهی معروف scikit-learn
:
کد پایتون (با توضیح):
# 1. نصب کتابخانههای لازم
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
# 2. بارگذاری دیتاست معروف Iris
data = load_iris()
X = data.data # ویژگیها (features)
y = data.target # برچسبها (labels)
# 3. تقسیم داده به آموزش و تست (۷۰٪ آموزش، ۳۰٪ تست)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 4. انتخاب یک مدل یادگیری - Random Forest
model = RandomForestClassifier()
# 5. آموزش مدل
model.fit(X_train, y_train)
# 6. پیشبینی بر اساس دادههای تست
y_pred = model.predict(X_test)
# 7. ارزیابی دقت مدل
accuracy = accuracy_score(y_test, y_pred)
print(" دقت مدل: ", accuracy)
خروجی نمونه:
دقت مدل: 1.0
(یعنی مدل تونسته 100٪ دادههای تست رو درست پیشبینی کنه – البته در دادههای سادهای مثل Iris این خیلی معمولیه.)
نکات آموزشی از این کد:
مرحله | مفهوم یادگیری |
---|---|
load_iris() | استفاده از دادههای برچسبخورده |
train_test_split() | جدا کردن دادهها برای جلوگیری از overfitting |
fit() | آموزش مدل بر اساس دادهها |
predict() | پیشبینی بر اساس دادههای جدید |
accuracy_score() | سنجش عملکرد مدل |