Prezantimi

Algoritmi KNN është një model i mbikëqyrur i mësimit të makinerisë. Kjo do të thotë se parashikon një variabël objektiv duke përdorur një ose shumë ndryshore të pavarura. Algoritmi K-NN ruan të gjitha të dhënat e disponueshme dhe klasifikon një pikë të re të të dhënave bazuar në ngjashmërinë. Kjo do të thotë se kur shfaqen të dhëna të reja, ato mund të klasifikohen lehtësisht në një kategori të mirë suite duke përdorur algoritmin K-NN.

Formula për KNN

Ne mund të përdorim shumë formula për të zgjidhur problemet e bazuara në KNN. Kryesisht ne përdorim Distancën Euklidiane për të gjetur distancën midis dy pikave.

Si funksionon KNN?

Puna e K-NN mund të shpjegohet në bazë të algoritmit të mëposhtëm:

  • Zgjidhni vlerën K.
  • Llogaritni distancën Euklidiane nga vlera K në pikat e të dhënave.
  • Merrni K fqinjët më të afërt sipas distancës së llogaritur Euklidiane.
  • Midis këtyre k fqinjëve, numëroni numrin e pikave të të dhënave në secilën kategori.
  • Klasifikoni pikat e reja të të dhënave në atë kategori për të cilën numri i fqinjit është maksimal.
  • Modeli i bërë.

Zgjedhja e vlerës K

Zgjedhja e K-Value është shumë e rëndësishme për saktësinë e modelit. Për këtë, ne mund të përdorim metodën Bërryl dhe metoda Elbow është KNN është e ndryshme nga K-Means Clustering. Një metodë tjetër për të zgjedhur vlerën K është cikli i vlerës K nga një vlerë në tjetrën dhe kontrollimi i saktësisë së modelit në çdo lak. Në këtë blog, ne po përdorim metodën e dytë.

Zbatimi

Importo paketat

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
import seaborn as sns
from sklearn.neighbors import KNeighborsClassifier

Kontrollimi i korrelacionit

data = pd.read_table(‘Fruits_Data.txt’)
data.head()
# calculate the correlation
corr = data.corr()
# plot the heatmap
sns.heatmap(corr, cmap=”Blues”, annot=True)

Ndani të dhënat dhe Trajnoni modelin

X = data[['mass', 'width', 'height']]
y = data['fruit_label']
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.20, random_state=3)
knn = KNeighborsClassifier(n_neighbors = 3)
knn.fit(X_train,y_train)
scr=knn.score(X_test,y_test)
print("Score for your model is ",scr)

Parashikoni të dhënat e reja hyrëse

#1: 'apple', 2: 'mandarin', 3: 'orange', 4: 'lemon'
res=knn.predict([[120,6.0,8.4]])
if res==1:
    print("Apple")
elif res==2:
    print("Mandarin")
elif res==3:
    print("Orange")
else:
    print("Lemon")

Gjeni vlerën më të mirë K

k_range = range(1,20)
scores = []
for k in k_range:
    knn = KNeighborsClassifier(n_neighbors = k)
    knn.fit(X_train, y_train)
    scores.append(knn.score(X_test, y_test))
plt.figure()
plt.xlabel('K')
plt.ylabel('Accuracy')
plt.scatter(k_range, scores)
plt.xticks([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]);

Grafiku i mësipërm tregon saktësinë për çdo vlerë K nga kjo vlerë K (3,4,5) duke dhënë një saktësi prej 75% të të dhënave tona. Kështu që ne mund të zgjedhim këto janë vlerat tona më të mira K. Ndër këto tre vlera K, unë mora vlerën 3.

"Kliko këtu për kodin e plotë burimor me grupin e të dhënave."









Keni dyshime? Kam nevojë për ndihmë? Më kontaktoni!

LinkedIn: https://www.linkedin.com/in/dharmaraj-d-1b707898

Github:https://github.com/DharmarajPi