پیادهسازی یک مدل ساده یادگیری ماشین در پایتون — راهنمای کاربردی
در این مطلب کاربردی، با پیادهسازی یک مدل «یادگیری ماشین» (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.]
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- آموزش اصول و روشهای دادهکاوی (Data Mining)
- مجموعه آموزشهای هوش مصنوعی
- کدنویسی شبکههای عصبی مصنوعی چند لایه در پایتون — راهنمای کامل
- تفسیر مدل های یادگیری عمیق در بینایی کامپیوتر — راهنمای جامع
- پیشبینی قیمت بیتکوین با شبکه عصبی — راهنمای کاربردی
مجموعه: هوش مصنوعی برچسب ها: Artificial Intelligence, Evaluation, Linear Regression, Machine Learning, Training, Training Data, آموزش, ارزیابی, پایتون, داده تصادفی, دادههای آموزشی, دادههای تست, رگرسیون خطی, زبان پایتون, مدل یادگیری ماشین, یادگیری ماشین