الگوریتم K-means یا همان خوشه بندی K میانگین (K-means Clustering)، یکی از ساده‌ترین و رایج‌ترین الگوریتم‌های نوع بدون نظارت‌ یا همان نظارت نشده و خوشه بندی در یادگیری ماشین به حساب می‌آید. الگوریتم خوشه بندی K-means برای پیدا کردن دسته‌هایی در داده‌ها مورد استفاده قرار می‌گیرد که برچسب مشخصی ندارند. K-means می‌تواند برای تایید فرضیات تجاری درباره اینکه چه نوع دسته‌ها و نظم‌هایی در داده‌ها وجود دارند یا برای شناسایی دسته‌های ناشناخته در مجموعه داده‌های پیچیده به کار گرفته شود. در این مقاله، ابتدا به این سوال پاسخ داده می‌شود که K-means چیست و سپس آموزش پیاده سازی K-means در پایتون به بیان ساده و به صورت گام به گام ارائه شده است.

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

الگوریتم K-means چیست ؟

K-Means یکی از پرکاربردترین الگوریتم‌های خوشه‌بندی داده‌ها به شمار می‌رود. در K-means با تکرار اعمالی ثابت و استفاده از توابعی مانند Norm ،Mean و Argmin، می‌توان به ازای هر خوشه، مراکزی را یافت که دقت بالا و لَختی (اینرسی) کمی دارند. هدف در الگوریتم K-means ، کمینه‌سازی فاصله میان نقطه‌ها (داده‌ها) در یک خوشه است. K-means یک الگوریتم مبتنی بر مرکز یا مبتنی بر فاصله است که در آن فاصله‌ها برای تخصیص دادن یک نقطه به یک خوشه محاسبه می‌شوند. در K-means هر خوشه یک مرکز دارد. هدف اصلی الگوریتم K-means ، کمینه‌سازی مجموع فاصله‌های میان نقاط با مرکز خوشه مربوطه است.

مراحل اجرای الگوریتم K-means چیست ؟

به طور کلی، گام‌های اجرای الگوریتم K-means به شرح زیر است:

  1. تعیین تعداد خوشه‌ها (K)
  2. انتخاب K عدد تصادفی از داده‌ها به عنوان مختصات مراکز خوشه‌ها
  3. تخصیص تمام نقاط (داده‌ها) به نزدیک‌ترین مرکز خوشه
  4. انتخاب میانگین وزن‌دار داده‌های هر خوشه به عنوان مرکز آن
  5. تکرار گام‌های ۳ و ۴ تا زمانی که معیار توقف برقرار شود.

معیارهای توقف برای الگوریتم K-means چیست ؟

اساساً می‌توان سه معیار توقف را برای متوقف کردن حلقه تکرار الگوریتم K-means به کار گرفت. این سه معیار در ادامه فهرست شده‌اند:

  1. مرکزهای خوشه‌های ایجاد شده جدید تغییر نکنند.
  2. نقطه‌ها (داده‌ها) در همان خوشه باقی بمانند و تغییر در عضویت خوشه برای داده‌ها ایجاد نشود.
  3. تعداد تکرارها به تعداد تکرار بیشینه (تعیین شده) برسد.

رابطه ریاضی الگوریتم K-means چیست ؟

این الگوریتم، به زبان ریاضی، به شکل زیر در خواهد آمد:

$$ C_j = mean( A_j(t-1)), t \geqslant 1 $$

$$ A_j(t) = \{ X_i \mid X_i \in X, j = \mathop{argmin}_{\textbf{j}} ( norm(X_i – C_j (t))) \} $$

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

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

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

دوره‌های آموزشی متعدد تولید شده در مجموعه فرادرس در قالب مجموعه‌هایی بر اساس موضوع دسته‌بندی شده‌اند. یکی از این مجموعه‌ها، مجموعه دوره‌های آموزش داده کاوی و یادگیری ماشین فرادرس است. در این مجموعه نزدیک به ۳۰ عنوان یا دوره آموزشی وجود دارد که مدت زمان محتوای آموزش ویدیویی ارائه شده در آن‌ها مجموعه به ۲۵۰ ساعت می‌رسد. در این مجموعه آموزشی، دوره‌های مختلفی پیرامون مباحث، فناوری‌ها و ابزارهای یادگیری ماشین و داده کاوی برای علاقه‌مندان گردآوری شده‌اند. این دوره‌ها اغلب به صورت عملی همراه با پیاده‌سازی با زبان‌های رایج در این حوزه نظیر متلب، پایتون و R ارائه شده‌اند و به صورت پروژه محور هستند.

  • برای دسترسی به صفحه مجموعه دوره‌های آموزش داده کاوی و یادگیری ماشین + اینجا کلیک کنید.

پیاده سازی K-means در پایتون

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

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

پیاده سازی الگوریتم K-means در پایتون از کتابخانه‌های numpy‌ و Matplotlib استفاده می‌شود، بنابراین باید وارد محیط برنامه‌نویسی شده و این کتابخانه‌ها را فراخوانی کرد:

import numpy as np
import matplotlib.pyplot as plt

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

تولید داده‌های مصنوعی برای پیاده سازی الگوریتم K-means در پایتون

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

def CreateDataset(Cs, nD, S):
    nC = len(Cs)
    N = nD * nC
    X = np.zeros((N, 2))
    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
    return X

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

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

فراخوانی تابع CreateDataset به صورت زیر است:

# Centers of Synthetic Data
Cs = np.array([[-0.5, +1.0], [+1.6, -0.1],
                [-0.9, -1.7], [-2.9, +2.3],
                [+0.7, +2.2], [-2.2, +0.3]])
nD = 200 # Count of Data in Each Cluster
S = 2.5

X = CreateDataset(Cs, nD, S)

در کدهای فوق، ابتدا پارامترهای ورودی تابع CreateDataset شامل nD ،Cs و S تعریف و مقداردهی شده‌اند. سپس، تابع CreateDataset فراخوانی و متغیرهای تعریف شده به عنوان ورودی به این تابع ارجاع داده می‌شوند. ‌پس از اجرای تابع، داده‌های مورد نیاز در آرایه‌ی X ذخیره خواهند شد.

بصری‌سازی داده‌های تولید شده

برای نمایش و بصری‌سازی داده‌های تولید شده می‌توان داده‌ها را به یک صورت نمودار توزیعی (Scatter Plot) رسم کرد:

plt.style.use('ggplot')
plt.scatter(X[:, 0], X[:, 1], c = 'k', 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()

باید توجه داشت که در کدهای فوق، دوبار از دستور plt.scatter استفاده شده است. در اولین فراخوانی plt.scatter، توزیع داده‌های ماتریس X و در فراخوانی دوم، مراکز خوشه‌ها رسم شده‌اند. در این مقاله برای پیاده سازی الگوریتم K-means در پایتون از داده‌های دو بُعدی استفاده شده است. این کار با هدف ساده‌سازی محاسبات و امکان نمایش داده‌ها در نمودار صورت گرفته است. می‌توان با تغییر دادن ابعاد X در تابع CeateDataset، داده‌هایی با ابعاد بالاتر ایجاد کرد. نمودار توزیعی کدهای فوق در خروجی به صورت زیر چاپ می‌شود:

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

تعیین تعداد خوشه‌ها مراکز آن‌‌ها

برای شروع پیاده سازی الگوریتم K-means در پایتون ، باید ابتدا تعداد خوشه‌های مورد نظر را تعیین و سپس مراکز خوشه‌‌ها را به صورت تصادفی مشخص کرد.
nClusters = 6

Centers = np.random.uniform(-2, +2, (nClusters, 2)) # Initializing Centers Posotions

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

ایجاد تابعی برای تخصیص هر داده به یک خوشه

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

def GetClusters(Centers, nClusters, X):

ایجاد یک لیست برای ذخیره داده‌های هر خوشه

اکنون باید یک لیست ایجاد شود که در آن به تعداد nClusters لیست خالی وجود داشته باشد تا بعداً هر داده به لیست مربوط به آن خوشه اضافه شود:

def GetClusters(Centers, nClusters, X):
    Clusters = []
    for i in range(0, nClusters):
        Clusters.append([])

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

$$ Clusters = [ [\space\space\space], [\space\space\space]], \dots, [\space\space\space]] ] $$

محاسبه فاصله هر نقطه از مرکز

حال باید به ازای هر داده‌ $$ X_i $$، فاصله را از هر مرکزِ $$ C_j $$ محاسبه کرد. برای انجام این کار، ابتدا حلقه‌ای به ازای تمامی داده‌ها ایجاد و سپس یک آرایه خالی برای افزودن فاصله هر مرکز از $$ X_i $$ تعریف می‌شود. پس از آن، باید به ازای تمامی مراکز خوشه‌ها، فاصله $$ X_i $$ تا $$ C_j $$ را محاسبه کرد. این موارد در کدهای زیر انجام شده است:

for xi in X:
        d = np.zeros(nClusters)
        for j in range(0, nClusters):
            cj = Centers[j]
            dij = xi - cj
            d[j] = np.linalg.norm(dij)

در کدهای فوق، با کم کردن دو بردار $$ X_i $$ و $$ C_j $$ از یکدیگر، بردار $$ D_(i,j) $$ حاصل می‌شود که مقدار L2Norm آن، بیان‌گر فاصله اقلیدسی خواهد بود. تابع norm به طور پیش‌فرض، از روش L2 استفاده می‌کند. البته در صورت نیاز، می‌توان از روش‌های دیگر نیز استفاده کرد. حال باید داده $$ X_i $$ را به لیست مربوط به نزدیک‌ترین مرکز خوشه اضافه کرد:

        a = np.argmin(d) # Arg of Nearest Center
        Clusters[a].append(xi) # Appending Xi to Nearest Centers List

به این ترتیب، تابع مورد نظر تا به اینجا کامل شده و عملکرد مورد نیاز را انجام می‌دهد.

تبدیل لیست‌های خوشه‌ها به آرایه

بهتر است در انتها، لیست‌های موجود در Clusters به آرایه تبدیل شوند تا استفاده از آن‌ها، راحت‌تر باشد:

def GetClusters(Centers, nClusters, X):
    Clusters = []
    for i in range(0, nClusters):
        Clusters.append([])
    for xi in X:
        d = np.zeros(nClusters)
        for j in range(0, nClusters):
            cj = Centers[j]
            dij = xi - cj
            d[j] = np.linalg.norm(dij)
        a = np.argmin(d) # Arg of Nearest Center
        Clusters[a].append(xi) # Appending Xi to Nearest Centers List
    for i in range(0, nClusters):
        Clusters[i] = np.array(Clusters[i])
    return Clusters

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

nClusters = 6

Centers = np.random.uniform(-2, +2, (nClusters, 2)) # Initializing Centers Posotions
Clusters = GetClusters(Centers, nClusters, X)

پیاده سازی گام‌های تکرار شونده ۳ و ۴ الگوریتم K-means در پایتون

تا این مرحله در مقاله «K-means چیست»، گام‌های 1 و 2 الگوریتم K-means کامل و در پایتون پیاده سازی شده‌اند، حال برای پیاده سازی تکرار مراحل 3 و 4، نیاز به ایجاد یک حلقه وجود دارد:

nIter = 20

for i in range (0, nIter):

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

def UpdateCenters(Centers, Clusters, nClusters):

اکنون باید به ازای هر خوشه، مرکز مربوطه، در میانگین نقاط مربوط به آن خوشه قرار گیرد:

def UpdateCenters(Centers, Clusters, nClusters):
    for i in range(0, nClusters):
        Centers[i] = np.mean(Clusters[i], axis = 0)

به این ترتیب، مقادیر با استفاده از تابع np.mean به روزرسانی می‌شوند. نکته مهمی که در این مرحله وجود دارد، مقدار axis است. مقدار axis در این موارد، باید برابر صفر باشد تا عمل میانگین‌گیری به ازای هر سطر انجام نشود، بلکه باید به ازای هر ستون صورت گیرد. مشکلی که ممکن است در این بخش به وجود آید، خالی بودن آرایه مربوط به یک خوشه است. در چنین شرایطی، مقدار میانگین به عدد $$ \frac{0}{0} $$ خواهد رسید که باعث اختلال در اجرای برنامه می‌شود. به همین دلیل، باید شرطی تعیین کرد تا عمل به روزرسانی در صورتی انجام شود که آرایه مربوطه خالی نیست:

def UpdateCenters(Centers, Clusters, nClusters):
    for i in range(0, nClusters):
        Centers[i] = np.mean(Clusters[i], axis = 0)
        if np.size(Clusters[i]) != 0: # if Array is not Empty
            Centers[i] = np.mean(Clusters[i], axis = 0)
    return Centers

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

nIter = 20

for _ in range (0, nIter):
    Centers = UpdateCenters(Centers, Clusters, nClusters)
    Clusters = GetClusters(Centers, nClusters, X)

بنابراین، پیاده سازی الگوریتم K-means در پایتون انجام شده است و الگوریتم K-means به درستی عمل خواهد کرد.

مقایسه نتایج پیاده سازی شده الگوریتم K-means با مراکز خوشه واقعی

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

plt.scatter(Cs[:,0], Cs[:,1], label='Target Centers', marker = '*', s = 80, c = 'r')
plt.scatter(Centers[:,0], Centers[:,1],
            label='Centers Found by K-Means', marker = 'x', s = 60, c = 'k')
plt.xlabel('X1')
plt.ylabel('X2')
plt.legend()
plt.show()

پس از اجرای کدهای فوق، تصویر خروجی به صورت زیر خواهد بود:

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

نمایش بصری مراحل الگوریتم K-means

در تصویر متحرک زیر، می‌توان مراحل طی شده تا همگرایی را مشاهده کرد:
مراحل الگوریتم K-means
به این ترتیب،‌ پیاده سازی الگوریتم K-means در پایتون در این مقاله ارائه شد. حال در بخش پایانی مقاله «K-means چیست» به معرفی دوره‌های آموزش K-means و یادگیری ماشین فرادرس پرداخته شده است.

معرفی فیلم های آموزش K-means فراردس

در این بخش انتهایی از مقاله «K-means چیست» به معرفی و شرح دوره‌های آموزشی مرتبط با الگوریتم خوشه بندی K-means پرداخته شده است که در سایت فرادرس ارائه شده‌اند. این دوره‌ها با هدف یادگیری بیش‌تر و جامع‌تر مفاهیم یادگیری ماشین فهرست شده‌اند.

فیلم آموزش خوشه بندی K میانگین (K-Means) با نرم افزار SPSS

تصویر مربوط به فیلم آموزش خوشه بندی K میانگین (K-Means) با نرم افزار SPSS در مقاله K-means چیست

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

  • برای مشاهده فیلم آموزش خوشه بندی K میانگین (K-Means) با نرم افزار SPSS + اینجا کلیک کنید.

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

تصویر مربوط به معرفی فیلم آموزش کاهش تعداد رنگ تصاویر با استفاده از روش های خوشه بندی هوشمند در مقاله K-means چیست به همراه پیاده سازی الگوریتم K-means در پایتون

طول مدت این دوره آموزشی ۱ ساعت و ۱۸ دقیقه و مدرس آن دکتر سید مصطفی کلامی هریس است. در این آموزش، بر روی روش‌های مبتنی بر خوشه بندی تمرکز شده است و کاربرد سه روش خوشه بندی هوشمند برای کاهش رنگ در تصاویر رنگی، به صورت عملی مورد استفاده قرار گرفته‌اند. یکی از روش‌های خوشه بندی به کار گرفته شده برای کاهش تعداد رنگ تصاویر در این دوره آموزشی، الگوریتم K-means است و به همین سبب این دوره در مقاله «K-means چیست» معرفی شده است. سرفصل‌های مهم این دوره، مروری بر مسأله کاهش رنگ، بیان مسأله کاهش رنگ به صورت یک مسأله خوشه بندی، حل گام به گام و پیاده سازی عملی کاهش رنگ با رویکرد خوشه بندی در متلب را شامل می‌شود. سایر الگوریتم‌های خوشه بندی به کار گرفته شده در این دوره آموزشی، الگوریتم خوشه بندی فازی FCM (با استفاده از تابع fcm) و نگاشت خود سازمان‌ده یا SOM (با استفاده از تابع selforgmap از تولباکس شبکه عصبی متلب) هستند.

  • برای مشاهده فیلم آموزش کاهش تعداد رنگ تصاویر با استفاده از روش های خوشه بندی هوشمند + اینجا کلیک کنید.

فیلم آموزش خوشه بندی با استفاده از الگوریتم های تکاملی و فراابتکاری

تصویر معرفی فیلم آموزش خوشه بندی با استفاده از الگوریتم های تکاملی و فراابتکاری در مقاله K-means چیست ؟ — پیاده سازی الگوریتم خوشه بندی K-means در پایتون | راهنمای گام به گام

حل مساله در حالت کلی و مساله خوشه بندی خودکار به صورت خاص، بعضاً می‌تواند خارج از توان الگوریتم‌های رایج خوشه بندی باشد. یکی از راه‌حل هایی که برای این موضوع در نظر گرفته شده است، تبدیل مساله خوشه بندی به یک مساله بهینه سازی و حل آن با استفاده از الگوریتم‌های بهینه سازی هوشمند و تکاملی است. موضوع بحث این دوره آموزشی نیز دقیقاً همین مسئله است. طول مدت این دوره آموزشی، ۲ ساعت و ۴۶ دقیقه و مدرس آن دکتر سید مصطفی کلامی هریس است. این دوره دو بخش دارد که در بخش اول مساله خوشه بندی کلاسیک با استفاده از الگوریتم های تکاملی و فرا ابتکاری و در بخش دوم، مساله خوشه بندی خودکار با استفاده از الگوریتم های تکاملی و فرا ابتکاری حل شده است.

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

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

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

یادگیری ماشین یکی از کاربردی‌ترین شاخه‌های هوش مصنوعی به شمار می‌رود. مدل‌های یادگیری ماشین، الگوها را شناسایی می‌کنند، می‌آموزند و با کم‌ترین دخالت انسانی تصمیم‌گیری می‌کنند. الگوریتم K-means یکی از الگوریتم‌های یادگیری ماشین است. برای آموزش یادگیری ماشین، استفاده از دوره آموزش یادگیری ماشین فراردس به علاقه‌مندان پیشنهاد می‌شود. طول مدت این دوره ۱۰ ساعت و مدرس آن مهندس سعید مظلومی راد است. این دوره شامل ۹ درس است که درس چهارم آن به آموزش ترسیم داده‌ها اختصاص دارد و در آن بسته Matplotlib معرفی و آشنایی با انواع نمودارها از جمله هیستوگرام و Scatter Plot حاصل می‌شود. علاوه بر آن، نحوه رسم چند نمودار به روش‌های مختلف و آشنایی با بسته Seaborn نیز در بخش چهارم این دوره آموزشی شرح داده شده است.

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

جمع‌بندی

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

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

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

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

بر اساس رای 8 نفر

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

نظر شما چیست؟

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