پیاده‌سازی یک مدل ساده یادگیری ماشین در پایتون — راهنمای کاربردی

در این مطلب کاربردی، با پیاده‌سازی یک مدل «یادگیری ماشین» (Machine Learning) ساده آشنا می‌شوید. همچنین، کدهای لازم برای پیاده‌سازی یک مدل یادگیری ماشین در زبان پایتون ارائه خواهد شد. به طور خاص، نحوه پیاده‌سازی یک مدل «رگرسیون خطی» (Linear Regression) نیز در این مطلب آموزش داده می‌شود.

در ادامه، برای پیاده‌سازی مدل یادگیری ماشین، نحوه تولید «داده‌های آموزشی» (Training Data) برای آموزش مدل‌ یادگیری ماشین شرح داده خواهد شد. همچنین، نحوه کد نویسی فرایند «آموزش» (Training) و «ارزیابی» (Evaluation) یا «تست» (Test) مدل یادگیری ماشین نیز آموزش داده می‌شود.

نکته قابل توجه در مورد مدل رگرسیون خطی آموزش داده شده، این است که به جای استفاده از مجموعه داده خاص، مجموعه‌ای متشکل از داده‌های تصادفی تولید و از آن‌ها برای آموزش و ارزیابی مدل یادگیری استفاده شده است.

تولید داده آموزشی لازم برای آموزش مدل یادگیری ماشین

با استفاده از قطعه کد زیر، داده‌های آموزشی لازم برای آموزش مدل یادگیری ماشین تولید می‌شود. نکته مهم در مورد داده‌های آموزشی این است که از این داده‌ها فقط برای آموزش مدل یادگیری ماشین استفاده می‌شود و نباید از آن‌ها برای ارزیابی مدل نیز استفاده کرد. به عبارت دیگر، داده‌های مرحله ارزیابی باید برای سیستم آموزش داده شده، «دیده نشده» (Unseen) باشند؛ یعنی پیش از این برای آموزش مدل استفاده نشده باشند.

# python library to generate random numbers 
from random import randint 
  
# the limit within which random numbers are generated 
TRAIN_SET_LIMIT = 1000
  
# to create exactly 100 data items 
TRAIN_SET_COUNT = 100
  
# list that contains input and corresponding output 
TRAIN_INPUT = list() 
TRAIN_OUTPUT = list() 
  
# loop to create 100 data  items with three columns each 
for i in range(TRAIN_SET_COUNT): 
    a = randint(0, TRAIN_SET_LIMIT) 
    b = randint(0, TRAIN_SET_LIMIT) 
    c = randint(0, TRAIN_SET_LIMIT) 
  
# creating the output for each data item 
    op = a + (2 * b) + (3 * c) 
    TRAIN_INPUT.append([a, b, c]) 
  
# adding each output to output list 
    TRAIN_OUTPUT.append(op)

در این مرحله، با استفاده از رابطه خطی ( (a + (2 * b) + (3 * c ) و از طریق قرار دادن ۱۰۰ مقدار تصادفی به ازاء هر کدام از متغیرهای a ،b و c، یک مجموعه داده آموزشی متشکل از ۱۰۰ نمونه تصادفی تولید می‌شود.

مدل یادگیری ماشین (رگرسیون خطی)

برای تولید یک مدل یادگیری ماشین از نوع رگرسیون خطی لازم است تا مراحل زیر دنیال شود:

  • آموزش مدل رگرسیون خطی با استفاده از داده‌های آموزشی.
  • ارزیابی یا تست مدل یادگیری ماشین آموزش داده شده با استفاده از داده‌های تست.

‌آموزش مدل رگرسیون خطی

از داده‌هایی که در مرحله قبل و با استفاده از کدهای نمایش داده شده تولید شده است، جهت آموزش مدل رگرسیون خطی استفاده می‌شود:

# Sk-Learn contains the linear regression model 
from sklearn.linear_model import LinearRegression 
  
# Initialize the linear regression model 
predictor = LinearRegression(n_jobs =-1) 
  
# Fill the Model with the Data 
predictor.fit(X = TRAIN_INPUT, y = TRAIN_OUTPUT)

‌ارزیابی یا تست مدل رگرسیون خطی

در مرحله ارزیابی مدل یادگیری ماشین آموزش داده شده، به جای استفاده از یک مجموعه داده متشکل از چندین نمونه تست، کاملا به صورت دستی و با استفاده از تنها یک نمونه، تست و ارزیابی مدل یادگیری ماشین انجام می‌شود. به عبارت دیگر، برای ارزیابی مدل یادگیری ماشین (رگرسیون خطی)، ابتدا تعدادی داده تصادفی تولید می‌شود. سپس، این داده‌ها وارد مدل آموزش داده شده می‌شوند تا مشخص شود آیا جواب‌های تولید شده توسط مدل صحیح هستند یا نه.

# Random Test data 
X_TEST = [[ 10, 20, 30 ]] 
  
# Predict the result of X_TEST which holds testing data 
outcome = predictor.predict(X = X_TEST) 
  
# Predict the coefficients 
coefficients = predictor.coef_ 
  
# Print the result obtained for the test data 
print('Outcome : {}\nCoefficients : {}'.format(outcome, coefficients))

خروجی صحیح برای داده تست تولید شده توسط قطعه کد بالا، باید به شکل زیر باشد:

۱۰ + (۲۰*۲) + (۳*۳۰) = ۱۴۰ 

خروجی تولید شده توسط قطعه کد بالا، به شکل زیر است:

Outcome : [ 140.]
Coefficients : [ 1. 2. 3.]

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

منبع [+]

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *