You are on page 1of 9

УНИВЕРЗИТЕТ “ГОЦЕ ДЕЛЧЕВ”-ШТИП

ФАКУЛЕТ ЗА ИНФОРМАТИКА
КОМПЈУТЕРСКО ИНЖЕНЕРСТВО И ТЕХНОЛОГИИ

СЕМИНАРСКА РАБОТА ПО ПРЕДМЕТОТ МАШИНСКО УЧЕЊЕ

ТЕМА: Имплементацијата и визуелизацијата на алгоритмот за


кластерирање K-means и методот Elbow со користење на Python.

Ментор: Изработка:
Проф.Цвета Мартиновска Банде Маринела Василева
Бр.индекс:102303

Јуни,2022 година
СОДРЖИНА

ВОВЕД.........................................................................................................................3
1.К-means (к-средни вредности)............................................................................4
1.1.Elbow метод......................................................................................................5
1.2.Исцртување на кластери и центродиди......................................................7
Заклучок.....................................................................................................................9
ВОВЕД

Кластерирањето е вид на учење без надзор што се користи за да се подели


неозначените податоци во различни групи. Сега, што значат неозначените
податоци? Неозначените податоци значи дека немаме зависна променлива
(променлива на одговор) за алгоритмот да се споредува како основна вистина.
Кластерирањето обично се користи во Анализата на податоци за да се
запознаат различните групи што може да постојат во нашата база на податоци.

Се обидуваме да ја поделиме базата на податоци во различни групи, така што


точките на податоци во истата група имаат слични карактеристики отколку
точките на податоци во различни групи. Сега како да откриете дали точките се
слични? Користете добра метрика за растојание за да го пресметате
растојанието помеѓу точката и секоја друга точка. Точките кои имаат помало
растојание се повеќе слични. Евклидовото растојание е најчестата метрика.

Алгоритмите за кластерирање обично се користат во класификацијата на


мрежниот сообраќај, клиентите и сегментацијата на пазарот. Може да се
користи на која било табеларна база на податоци, каде што сакате да знаете
кои редови се слични едни на други и да формираат значајни групи од сетот на
податоци.
1.К-means (к-средни вредности)

К-means е алгоритам за машинско учење без надзор кој ја дели базата на


податоци во К кои не се преклопуваат подгрупи (кластери). Ни овозможува да
ги поделиме податоците во различни групи или категории. На пример, ако K=2
ќе има две кластери, ако K=3 ќе има три кластери, итн. Користењето на
алгоритмот K-means е пригоден начин за откривање на категориите групи во
неозначената база на податоци.

Целта на алгоритмот K-means (исто така познат како алгоритам заснован на


центроид) е да се минимизира збирот на растојанија помеѓу податочната точка
и нивните соодветни кластери додека се поврзува секоја група објекти
(кластер) со неговиот центар.

Најпрво треба да се инсталират библиотеките кој се потребни и кои ќе се


користат:

import numpy as np

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.cluster import KMeans

K-Means следи итеративен процес во кој се обидува да го минимизира


растојанието на податочните точки од централните точки. Се користи за
групирање на точките на податоци во k број на кластери врз основа на нивната
сличност.

# се вчитуваат податоците од CSV-датотеката во Pandas


df = pd.read_csv("C:\\Users\\Marin\\PycharmProjects\\pythonProject3\\proba.csv")
print(df)
df.head()
# наоѓање на бројот на редови и колони
df.shape
# добивате некои информации за датата на податоци
df.info()
#проверува дали недостасуваат вредности
df.isnull().sum()
X = df.iloc[:,[2,3]].values
print(X)

Слика1.df.head() // Функцијата head(5) се користи за добивање на првите n редови.

Слика2. Извршување на функцијата df.shape()

1.1.Elbow метод

Elbow метод: Добивање вредност за К

Перформансите на алгоритмот за кластерирање K-means многу зависат од


бројот на кластери, а изборот на точната вредност за K е многу важен. Затоа
можеме да го користиме методот Elbow за да го пресметате идеалниот број на
кластери во базата на податоци. Методот Elbow ја користи вредноста во
рамките на кластерот збир на квадрати (WCSS) за да ги дефинира вкупните
варијации.
Пример:

Слика 1.Еlbow метод

Од слика 1 можеме да видиме дека к=3 е најоптимално поради големата


острина на линијата која понатаму преминува во права линија.

Код:
wcss = []
for i in range(1,10):
kmeans = KMeans(n_clusters=i, init='k-means++', random_state=2)
kmeans.fit(X)
wcss.append(kmeans.inertia_)
# графикон
sns.set()
plt.plot(range(1,10),wcss)
plt.title('The Elbow Point Graph')
plt.xlabel('Број на кластери')
plt.ylabel('WCSS')
plt.show()
1.2.Исцртување на кластери и центродиди

kmeans = KMeans(n_clusters=3,init='k-means++', random_state=0)


# врати лабела за секоја податочна точка врз основа на нивниот кластер
Y = kmeans.fit_predict(X)
print(Y)
# исцртување на сите кластери и нивните Centroids
plt.figure(figsize=(8,8))
plt.scatter(X[Y==0,0], X[Y==0,1], s=50, c='green', label='Cluster 1')
plt.scatter(X[Y==1,0], X[Y==1,1], s=50, c='red', label='Cluster 2')
plt.scatter(X[Y==2,0], X[Y==2,1], s=50, c='yellow', label='Cluster 3')
# цртање на центроиди
plt.scatter(kmeans.cluster_centers_[:,0], kmeans.cluster_centers_[:,1],
s=200,c='cyan', label='Centroids')
plt.title('Колоквиуми')
plt.xlabel('1 колоквиум')
plt.ylabel('2 колоквиум')
plt.show()
Заклучок
Алгоритам за кластерирање K-means е тип на учење без надзор што се користи
за поделба на неозначените податоци во неколку категории. Методот Elbow ви
овозможува да го пронајдете оптималниот број на кластери за вашата база на
податоци. Оваа семинарска работа ја опфати имплементацијата и
визуелизацијата на алгоритмот за кластерирање K-means и методот Elbow со
користење на Python.

You might also like