الگوریتم KNN یا همان الگوریتم K-نزدیک ترین همسایگی (K-Nearest Neighbors) یکی از ساده‌ترین و در عین حال پرکاربردترین الگوریتم‌های یادگیری نظارت شده (Supervised Learning) در حوزه یادگیری ماشین است. KNN هم برای مسائل رگرسیون (Regression) و هم مسائل طبقه بندی (دسته بندی | Classification) کاربرد دارد. در این مطلب قصد داریم، ضمن آشنایی با این الگوریتم پرکاربرد، پیاده سازی الگوریتم KNN با پایتون را به صورت گام به گام انجام داده و برای حل یک مسئله‌ طبقه بندی از آن استفاده کنیم.

فهرست مطالب این نوشته پنهان کردن

پیش از شروع پیاده سازی الگوریتم KNN با پایتون ، ابتدا بهتر است به این سوال پاسخ داده شود که KNN چیست؟

الگوریتم KNN چیست ؟

KNN سرنامی برای عبارت «K-Nearest Neighbors» به معنی «K نزدیک‌ترین همسایگی» است که نام این الگوریتم اشاره به شیوه کار آن دارد. برای مثال، فرض می‌شود مقدار K برابر 10 در نظر گرفته شود. در این شرایط، برای پیش‌بینی دسته هر داده مورد نظر، ابتدا 10 داده‌ مشابه انتخاب می‌شوند که دارای کمترین فاصله با داده مورد نظر هستند. سپس، برچسب (Label) این ۱۰ داده بررسی می‌شود و نوع دسته هر کدام از این داده‌ها که دارای بیش‌ترین تکرار باشد، به عنوان پاسخ پیش‌بینی نوع دسته داده ورودی انتخاب می‌شود. در ادامه این مقاله به پیاده سازی الگوریتم KNN با پایتون پرداخته شده است.

پیاده سازی الگوریتم KNN با پایتون

در این بخش، به صورت گام به گام به آموزش پیاده سازی الگوریتم KNN با پایتون پرداخته شده است. در ابتدا باید کتابخانه‌های مورد نیاز برای پیاده سازی KNN را فراخوانی کرد.

فراخوانی کتابخانه‌های مورد نیاز برای پیاده سازی الگوریتم KNN با پایتون

برای شروع کدنویسی، ابتدا باید کتابخانه‌های مورد نیاز را فراخوانی کرد:

import numpy as np
import sklearn.metrics as met
import matplotlib.pyplot as plt
import sklearn.model_selection as ms

ایجاد مجموعه داده مصنوعی برای پیاده سازی الگوریتم KNN با پایتون

باید یک مجموعه داده ایجاد شود تا بتوان KNN را روی آن‌ها پیاده سازی کرد. بنابراین، برای تولید داده‌های مصنوعی تابع CreateDataset به صورت زیر تعریف می‌شود:

def CreateDataset(Cs, nD, S):
    nC = len(Cs)
    N = nD * nC
    X = np.zeros((N, 2))
    Y = np.zeros((N, 1))
    for i in range(0, nD):
        for j in range(0, nC):
            X[nC*i + j, 0] = Cs[j, 0] + np.random.randn() / S
            X[nC*i + j, 1] = Cs[j, 1] + np.random.randn() / S
            Y[nC*i + j, 0] = j
    return X, Y

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

تعریف مراکز دسته برای داده‌های مصنوعی

یکی از ورودی‌های تابع CreateDataset، آرایه‌ای حاوی مراکز دسته است. بنابراین، پس از تعریف تابع CreateDataset باید تعدادی مرکز دسته برای تولید داده‌های مصنوعی تعریف شود:

Cs = np.array([[-0.5, 1], [1.5, 0], [-1, -1.5], [-2, 2.5], [0.5, 2]])

تعیین تعداد داده‌های مصنوعی و میزان پراکندگی آن‌ها

اکنون باید یک متغیر به نام nD برای تعداد داده در هر دسته و متغیر دیگری به نام S، برای تعیین میزان پراکندگی داده‌ها حول مراکز تعریف و آن‌ها را مقداردهی کرد:

nD = 140
S = 2.9

باید توجه داشت که با افزایش S، شدت پراکندگی داده‌ها کاهش خواهد یافت.

فراخوانی تابع CreateDateset و تولید داده‌های مصنوعی

با آماده شدن آرگومان‌های ورودی، اکنون می‌توان تابع CreateDateset را فراخوانی کرد:

X, Y = CreateDataset(Cs, nD, S)

خروجی این تابع، دو آرایه خواهد بود که X شامل مختصات داده و Y شامل برچسب متناظر با آن داده است. با توجه به اینکه 5 مرکز دسته تعریف شده است، تعداد داده‌ها به صورت $$ 5 \times nD = 700 $$ محاسبه می‌شود.

رسم نمودار توزیعی داده‌های مصنوعی تولید شده

در نهایت، کدهای مربوط به رسم نمودار توزیع داده‌های تولید شده از کدهای زیر استفاده شده است:

plt.style.use('ggplot')
plt.scatter(X[:, 0], X[:, 1],c = Y[:, 0], s = 9, label = 'Data')
plt.scatter(Cs[:,0], Cs[:, 1], c = 'r', s = 100, label = 'Center', marker = '*')
plt.title('Scatter Plot of Data')
plt.xlabel('X1')
plt.ylabel('X2')
plt.legend()
plt.show()

برای رسم داده‌هایی که دارای برچسب هستند، می‌توان به جای رنگ از برچسب داده‌ها استفاده کرد تا داده‌های مربوط به هر دسته، هم رنگ باشند. نمودار خروجی به صورت زیر است:

تصویر نمودار توزیعی خروجی داده های مصنوعی تولید شده برای پیاده سازی الگوریتم KNN در پایتون

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

معرفی مجموعه فیلم های آموزش هوش مصنوعی

تصویر مربوط به معرفی فیلم های آموزش هوش مصنوعی فرادرس در مقاله پیاده سازی الگوریتم KNN با پایتون — راهنمای کاربردی

مجموعه دوره‌های آموزشی هوش مصنوعی فرادرس شامل ۲۸ عنوان آموزشی مختلف و در مجموع دارای ۲۷۷ ساعت محتوای ویدئویی است. کلیه آموزش‌های مرتبط با هوش مصنوعی در صفحه مجموعه آموزش هوش مصنوعی در سایت فرادرس گرد‌آوری شده‌اند. دوره‌های آموزشی مختلفی در حوزه هوش مصنوعی از قبیل یادگیری ماشین، یادگیری عمیق، شبکه‌های عصبی، منطق فازی، پردازش تصویر، الگوریتم‌های بهینه‌سازی هوشمند، داده کاوی و سایر موارد در سطح مقدماتی تا پیشرفته و در بسترها و فناوری‌های مختلفی همچون پایتون، OpenCV، متلب، GAMS و دیگر موارد در این مجموعه موجود است. در ادامه، برخی از دوره‌های شاخص این مجموعه معرفی شده‌اند.

  • فیلم آموزش هوش مصنوعی – مقدماتی: طول مدت این دوره 4 ساعت و ۳4 دقیقه و مدرس آن دکتر محمد صبری است. در این دوره آموزشی سرفصل‌های درس هوش مصنوعی پوشش داده شده‌اند. برای دیدن فیلم آموزش هوش مصنوعی – مقدماتی + کلیک کنید.
  • فیلم آموزش هوش مصنوعی – تکمیلی: طول مدت این دوره آموزشی ۱۸ ساعت و ۵۵ دقیقه و مدرس آن مهندس منوچهر بابایی است. این دوره آموزشی نیز برای یادگیری درس هوش مصنوعی و آماده‌سازی برای شرکت در آزمون کارشناسی ارشد مناسب است. برای دیدن فیلم آموزش هوش مصنوعی – تکمیلی + کلیک کنید.
  • فیلم آموزش شبکه های عصبی مصنوعی در متلب: طول مدت این دوره ۲۸ ساعت و مدرس آن دکتر مصطفی کلامی هریس است. این دوره آموزشی از هفت فرادرس جامع پیرامون شبکه‌های عصبی مصنوعی تشکیل شده و برای دانشجویان کارشناسی و کارشناسی ارشد رشته‌های مختلفی که با شبکه‌های عصبی مصنوعی سر و کار دارند مناسب است. برای دیدن فیلم آموزش شبکه های عصبی مصنوعی در متلب + کلیک کنید.
  • فیلم آموزش بهینه سازی چند هدفه در متلب: طول مدت این دوره ۱۸ ساعت و ۵۳ دقیقه و مدرس آن دکتر مصطفی کلامی هریس است. مباحث تئوری و عملی مربوط به بهینه سازی چند هدفه در این دوره آموزش داده می‌شود. برای دیدن فیلم آموزش بهینه سازی چند هدفه در متلب + کلیک کنید.
  • فیلم آموزش سیستم های فازی در متلب:‌ طول مدت این دوره ۲۰ ساعت و ۳۹ دقیقه و مدرس آن دکتر مصطفی کلامی هریس است. دوره آموزش سیستم های فازی یک مجموعه کامل، شامل تقریبا ۲۱ ساعت فیلم آموزشی به زبان فارسی است. برای دیدن فیلم آموزش سیستم های فازی در متلب + کلیک کنید.
  • فیلم آموزش نرم افزار گمز (GAMS):‌ طول مدت این دوره ۱۶ ساعت و مدرس آن دکتر مسعود آتش پز است. نرم‌افزار گمز یک ابزار قدرتمند و فراگیر است که برای حل مدل‌های ریاضی برای حل مسائل تصمیم‌گیری بهینه با محدودیت زمان، هزینه و منابع، حتی در ابعاد بزرگ به کار می‌رود. برای دیدن فیلم آموزش نرم افزار گمز (GAMS) + کلیک کنید.
  • فیلم های آموزش کاربردی شبکه های عصبی مصنوعی: طول مدت این مجموعه ۸ ساعت و ۳۸ دقیقه و مدرس آن دکتر اسماعیل آتشپز گرگری است. این مجموعه پنج فرادرس در زمینه شبکه‌های عصبی مصنوعی و کاربردهای آن‌ها را شامل می‌شود. برای دیدن فیلم‌های آموزش کاربردی شبکه های عصبی مصنوعی + کلیک کنید.
  • برای دیدن همه فیلم‌های آموزش هوش مصنوعی + کلیک کنید.

استفاده از فاصله اقلیدسی برای سنجش فاصله میان داده‌ها

در الگوریتم KNN، معیار شباهت دو داده، عکس فاصله آن دو داده از هم است. این فاصله می‌تواند به شیوه‌های مختلفی محاسبه شود. پرکاربردترین فاصله در این موارد، فاصله اقلیدسی (Euclidean Distance) است که با نام‌های L2-Distance و L2-Norm نیز شناخته می‌شود. با فرض داشتن دو بردار $$ x_i $$ و $$ x_j $$ در یک فضای n-بُعدی، اگر بردار d_ij اختلاف عضو به عضو این دو بردار باشد، فاصله‌ی اقلیدسی بین این دو بردار به شکل زیر تعریف می‌شود:

$$ Distance(x_i, x_j) = norm(d_{ij}) = \parallel d_{ij} \parallel =(\sum_{k=1}^{n} (d_{ij,k})^2)^{\frac{1}{2}} $$

پیاده سازی فاصله اقلیدسی در پایتون

برای استفاده از فاصله اقلیدسی در الگوریتم KNN، این تابع با نام Distance به صورت زیر در پایتون پیاده‌سازی می‌شود:

def Distance(xi, xj):
    dij = xi - xj
    d = np.linalg.norm(dij)
    return d

بنابراین، با استفاده از تابع Distance که در بالا پیاده‌سازی شده است، می‌توان فاصله‌ی بین دو بردار مورد نظر را یافت.

تعریف تابع محاسبه فاصله داده ورودی با سایر داده‌‌ها

اکنون نیاز به تابعی وجود دارد که با گرفتن یک بردار و یک مجموعه داده، فاصله‌ی بین تمامی داده‌ها با بردار ورودی را محاسبه کند. این تابع نیز به صورت زیر در پایتون قابل پیاده‌سازی است:

def CalculateAllDistances(X, xi):
    N = np.shape(X)[0] # Data Size
    D = np.zeros(N) # Placeholder For Distances
    for i in range(0, N):
        xj = X[i]
        D[i] = Distance(xi, xj)
    return D

تابع CalculateAllDistances عملیات مورد نیاز را برای محاسبه فاصله هر یک از اعضای مجموعه داده $$ X $$ از بردار $$ x_i $$ انجام خواهد داد. در این تابع، ابتدا اندازه داده محاسبه و در متغیر N ذخیره می‌شود. سپس، یک آرایه خالی با اندازه N ساخته می‌شود تا در هر مرحله، فاصله بین بردار ورودی با داده متناظر حلقه، محاسبه و در آن ذخیره شود. در نهایت، تابع CalculateAllDistances، آرایه D را در خروجی باز می‌گرداند. بنابراین، می‌توان فاصله بین هر بردار را با کل داده محاسبه کرد.

تعریف تابع KNN برای یافتن K تا از نزدیک ترین همسایه‌‌‌ها

اکنون در ادامه پیاده‌سازی الگوریتم KNN با پایتون باید K همسایه نزدیک را از بین کل فاصله‌های محاسبه شده پیدا کرد. بنابراین، یک تابع دیگر برای پیاده‌سازی این عملیات تعریف شده است:

def KNN(K, X, xi):
    D = CalculateAllDistances(X, xi) # Calculating Distances
    A = np.argsort(D) # Sorted Args by Distance
    Ns = A[:K] # K-Nearest Neighbors
    return Ns

در تابع فوق (KNN)، موارد زیر به ترتیب اجرا می‌شود:

  1. ابتدا تمامی فاصله‌ها محاسبه می‌شود.
  2. سپس، درایه‌های ماتریس حاوی فاصله‌ها به نام D برحسب فاصله مرتب می‌شوند.
  3. در نهایت K همسایه‌ی نزدیک که دارای کمترین فاصله هستند به کمک مرتب‌سازی انجام شده در مرحله قبل انتخاب می‌شوند.

تعریف تابع Classify برای تعیین برچسب داده‌ها

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

def Classify(K, X, Y, xi):
    Ns = KNN(K, X, xi) # Getting Neighbors Args
    NsLabels = Y[Ns,0] # Getting Neighbors Labels
    C = GetClass(NsLabels)
    return C

در تابع فوق موارد زیر پیاده‌سازی شده‌اند:

  1. ابتدا با استفاده از تابع KNN نزدیک‌ترین همسایه‌ها مشخص می‌شوند.
  2. سپس برچسب همسایه‌ها از بردار Y استخراج می‌شود.
  3. در نهایت، تصمیم‌گیری در مورد بهترین دسته، در تابع GetClass انجام شده است.

تعریف تابع GetClass برای تعیین دسته داده ورودی

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

def GetClass(NsLabels):
    L = NsLabels.copy()
    W = {}
    for i in L:
        if i not in W.keys():
            W[i] = 1
        else:
            W[i] += 1
    MaxN = max(W.values()) # Max Count of Most Frequent Label
    BestClasses = []
    for k, v in W.items():
        if v == MaxN:
            BestClasses.append(k)
    while len(BestClasses) > 1: # While There is More Than One Best-Class
        L = L[:-1] # Remove One Element From End
        W = {}
        for i in L:
            if i not in W.keys():
                W[i] = 1
            else:
                W[i] += 1
        MaxN = max(W.values())
        BestClasses = []
        for k, v in W.items():
            if v == MaxN:
                BestClasses.append(k)
    Best = BestClasses[0]
    return Best

در تابع فوق، مراحل زیر به ترتیب انجام می‌شوند:

  1. ایجاد یک کپی از ورودی و ذخیره آن در L
  2. تولید یک دیکشنری خالی برای ذخیره دفعات تکرار هر برچسب
  3. تکمیل‌ دیکشنری ساخته شده
  4. محاسبه تعداد تکرار پرتکرارترین برچسب و ذخیره آن در MaxN
  5. اضافه کردن تمامی برچسب‌هایی که به تعداد MaxN بار تکرار شده‌اند به لیست BestClasses
  6. در صورتی که در لیست BestClasses بیش از یک عضو وجود داشته باشد (چندین دسته برنده وجود داشته باشد)، یک عضو از انتهای L حذف و مراحل 2 تا 6 تکرار می‌شوند. اگر در BestClasses تنها یک عضو وجود داشته باشد، آن عضو به عنوان دسته منتخب در خروجی باز گردانده خواهد شد.

اجرا و آزمایش پیاده سازی الگوریتم الگوریتم KNN با پایتون

اکنون، تمام برنامه پیاده‌سازی الگوریتم KNN در پایتون آماده شده است و می‌توان از آن استفاده کرد. برای این کار، ابتدا باید داده‌ها را به دو بخش Test و Train تقسیم کرد.

تقسیم داده‌ها به دو مجموعه داده‌های آموزشی و آزمایشی

تقسیم داده‌ها به دو مجموعه داده‌های آموزشی و آزمایشی به صورت زیر با پایتون انجام می‌شود:

trX, teX, trY, teY = ms.train_test_split(X, Y, test_size = 0.2, random_state = 0)

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

پیش‌بینی دسته داده‌ها برای مجموعه‌های Test و Train با استفاده از پیاده سازی انجام شده

برای این کار، ابتدا باید دو آرایه‌ی خالی به منظور ذخیره‌ی مقادیر پیش‌بینی شده ایجاد کرد:

trPrediction = np.zeros(np.size(trY))
tePrediction = np.zeros(np.size(teY))

اکنون می‌توان با استفاده از KNN و سایر توابعی که تا اینجا پیاده‌سازی شده‌اند، برای هر یک از داده‌ها پیش‌بینی را انجام داد و آن‌ها را در آرایه‌های فوق ذخیره کرد:

K = 5

# Making Predictions On Train Dataset
for i in range(0, np.size(trY)):
    xi = trX[i]
    pred = Classify(K, trX, trY[:,0], xi)
    trPrediction[i] = pred

# Making Predictions On Test Dataset
for i in range(0, np.size(teY)):
    xi = teX[i]
    pred = Classify(K, trX, trY[:,0], xi)
    tePrediction[i] = pred

به این ترتیب، پیش‌بینی‌هایی برای هر دو مجموعه داده آموزشی (Train) و آزمایشی (Test) انجام شد. باید توجه داشت که در تابع Classify تنها می‌توان از داده‌های آموزشی برای $$ X $$ و $$ Y $$ استفاده کرد.

سنجش عملکرد پیاده سازی الگوریتم KNN با پایتون

حالا برای بررسی عملکرد الگوریتم KNN ، باید میزان دقت (Accuracy) را برای هر دو مجموعه داده آموزش و تست محاسبه کرد:

trAccuracy = met.accuracy_score(trY, trPrediction) # Accuracy On Train Dataset
teAccuracy = met.accuracy_score(teY, tePrediction) # Accuracy On Test Dataset

مقادیر محاسبه شده در خروجی برای میزان دقت مجموعه داده آموزشی، 0.9982 یا ۹۹.۸۲ درصد و دقت داده‌های آزمایشی برابر با ۱ یا ۱۰۰ درصد است.

تحلیل نتیجه سنجش

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

با افزایش میزان پراکندگی داده‌ها چه تغییری در سنجش عملکرد KNN به وجود می‌آید؟

با کاهش S به عدد 2 (افزایش میزان پراکندگی داده‌ها)، نمودار توزیعی مجموعه داده به صورت زیر تغییر می‌کند:

تصویر نمودار توزیعی داده های مصنوعی تولید شده برای پیاده سازی الگوریتم KNN در پایتون که پراکندگی آن ها افزایش یافته است.

با تغییر میزان پراکندگی داده‌ها،‌ دقت استفاده از داده‌های آموزشی برابر با 0.9696 یا همان ۹۶.۹۶ درصد و دقت داده‌های آزمایشی هم 0.9357 یا ۹۳.۵۷ درصد خواهد بود. بنابراین، با افزایش میزان پراکندگی و زیاد شدن درهم‌رفتگی دسته‌ها، دقت الگوریتم نیز کاهش می‌یابد. البته باید توجه داشت که تنها معیار برای بررسی عملکرد طبقه‌بند (Classifier)، محاسبه دقت (Accuracy) نیست و می‌توان از ماتریس درهم‌ریختگی (Confusion Matrix) نیز برای بررسی دقیق‌تر عملکرد الگوریتم KNN و سایر الگوریتم‌ها استفاده کرد.

معرفی فیلم های آموزش یادگیری ماشین و هوش مصنوعی فرادرس

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

در ادامه، دوره‌های آموزشی مفید و کاربردی آموزش یادگیری ماشین (Machine Learning) با پایتون (Python) معرفی شده‌اند.

فیلم آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)

تصویر مربوط به معرفی فیلم آموزش یادگیری ماشین (Machine Learning) با پایتون (Python) در مقاله پیاده سازی الگوریتم KNN در پایتون

طول مدت این دوره ده ساعت است و مدرس آن مهندس سعید مظلومی راد هستند. این دوره برای علاقه‌مندان و فعالین حوزه هوش مصنوعی و آن دسته از افرادی که قصد دارند به تازگی در این زمینه مهارت کسب کرده و به فعالیت بپردازند، مناسب است. از جمله سرفصل‌ها و رئوس مطرح شده در این دوره آموزشی می‌توان به مقدمه یادگیری ماشین، آشنایی با NumPy، آشنایی با Pandas، ترسیم داده‌ها، آشنایی با مباحث آماری و سایر موارد اشاره کرد.

  • برای دیدن فیلم آموزش یادگیری ماشین آموزش یادگیری ماشین (Machine Learning) با پایتون (Python) + اینجا کلیک کنید.

فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش اول

تصویر مربوط به فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش اول در مقاله پیاده سازی الگوریتم KNN با پایتون

طول مدت این دوره ۱۶ ساعت و ۵۰ دقیقه است و مدرس آن دکتر فرشید شیرافکن هستند. دوره آموزش یادگیری ماشین با پیاده سازی در Python نیز بسیار جامع است. این دوره بخش اول آموزش یادگیری ماشین را شامل می‌شود که مباحثی از جمله مفاهیم اولیه، داده، رگرسیون و چهار روش طبقه بندی، رگرسیون لجستیک، ماشین بردار پشتیبان، شبکه عصبی و درخت تصمیم مورد بررسی قرار گرفته‌اند. بخش دوم آموزش یادگیری ماشین در دوره آموزشی دیگری قرار دارد که در ادامه معرفی شده است.

  • برای دیدن فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش اول + اینجا کلیک کنید.

فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش دوم

تصویر مربوط به فیلم آموزش یادگیری ماشین با پیاده سازی در پایتون - بخش دوم معرفی شده در مطلب پیاده سازی الگوریتم KNN با پایتون

طول مدت بخش دوم دوره آموزش یادگیری ماشین با پیاده سازی در Python ده ساعت و ۳۳ دقیقه است و مدرس آن نیز همان دکتر فرشید شیرافکن است. ادامه مباحث اساسی و مهم یادگیری ماشین شامل سایر روش‌های طبقه بندی از جمله دسته‌بندی بیز، k نزدیک ترین همسایه و یادگیری جمعی و سایر مباحث یادگیری ماشین به طور کامل در این دوره پوشش داده شده است.

  • برای دیدن فیلم آموزش یادگیری ماشین با پیاده سازی در Python – بخش دوم + اینجا کلیک کنید.

فیلم آموزش تئوری و عملی الگوریتم ژنتیک

تصویر مربوط به فیلم آموزش الگوریتم ژنتیک در مطلب پیاده سازی الگوریتم KNN با پایتون

الگوریتم ژنتیک یکی از شناخته شده‌ترین و پرکاربردترین روش‌های بهینه‌سازی هوشمند و الگوریتم‌های تکاملی به شمار می‌رود. در دوره آموزش الگوریتم ژنتیک کلیه مباحث مربوط به این الگوریتم به صورت تئوری و عملی ارائه شده است. طول مدت این دوره ۱۴ ساعت و ۲۳ دقیقه و مدرس آن دکتر کلامی هریس هستند. از سرفصل‌ها و مباحث مختلف در این دوره آموزشی، می‌توان به الگوریتم‌های ژنتیک در نرم‌افزار متلب، حل مسئله مکان‌یابی هاب، حل مسئله حمل ونقل و سایر موارد اشاره کرد.

جمع‌بندی

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

اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.

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

«سید علی کلامی هریس»، دانشجوی سال چهارم داروسازی دانشگاه علوم پزشکی تهران است. او در سال 1397 از دبیرستان «پروفسور حسابی» تبریز فارغ‌التحصیل شد و هم اکنون در کنار تحصیل در حوزه دارو‌سازی، به فعالیت در زمینه برنامه‌نویسی، یادگیری ماشین و تحلیل بازارهای مالی با استفاده از الگوریتم‌های هوشمند می‌پردازد.

بر اساس رای 10 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

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