KNN Algoritmus v Pythone: Praktický Príklad s Sklearn

KNN algoritmus (k-nearest neighbors) je jedným z najjednoduchších a najpoužívanejších algoritmov v oblasti strojového učenia. Je to algoritmus, ktorý klasifikuje nové údaje na základe podobnosti k najbližším bodom v trénovacej sade. V tomto článku sa podrobne pozrieme na to, ako implementovať KNN algoritmus v Pythone pomocou knižnice Scikit-learn.

Úvod do KNN

KNN algoritmus patrí medzi algoritmy, ktoré sa používajú na klasifikáciu a regresiu. Jeho základným princípom je, že podobné body majú tendenciu patriť do rovnakých tried. Preto, ak chceme klasifikovať nový bod, algoritmus sa pozrie na jeho najbližších k-následníkov v trénovacej sade a rozhodne, do ktorej triedy tento bod patrí na základe väčšinovej triedy jeho k-najbližších susedov.

Príprava Dát

Pred začatím práce s algoritmom KNN je dôležité pripraviť dáta. Použijeme dataset z knižnice Scikit-learn, konkrétne dataset Iris. Tento dataset obsahuje merania rôznych druhov kvetov iris a je ideálny na demonštráciu KNN algoritmu.

python
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # Načítanie datasetu Iris iris = load_iris() X = iris.data y = iris.target # Rozdelenie dát na tréningovú a testovaciu množinu X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

Implementácia KNN v Pythone

Na implementáciu KNN použijeme modul KNeighborsClassifier z knižnice Scikit-learn. Tento modul umožňuje jednoduchú konfiguráciu a použitie KNN algoritmu.

python
from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # Inicializácia modelu KNN model = KNeighborsClassifier(n_neighbors=5) # Tréning modelu model.fit(X_train, y_train) # Predikcia výsledkov na testovacej množine y_pred = model.predict(X_test) # Vyhodnotenie presnosti modelu accuracy = accuracy_score(y_test, y_pred) print(f'Presnosť modelu: {accuracy:.2f}')

Vyhodnotenie Výkonu Modelu

Po implementácii KNN modelu je dôležité vyhodnotiť jeho výkon. Použijeme metriky ako presnosť, precíznosť a recall na zistenie, ako dobre náš model funguje.

python
from sklearn.metrics import classification_report # Generovanie reportu report = classification_report(y_test, y_pred, target_names=iris.target_names) print(report)

Optimalizácia Parametrov

Optimalizácia parametrov, ako je počet najbližších susedov (k), môže výrazne ovplyvniť výkon modelu. Použijeme metódu krížovej validácie na výber najlepších parametrov pre náš model.

python
from sklearn.model_selection import GridSearchCV # Definovanie parametrov pre krížovú validáciu param_grid = {'n_neighbors': [3, 5, 7, 9, 11]} grid_search = GridSearchCV(KNeighborsClassifier(), param_grid, cv=5) # Tréning modelu grid_search.fit(X_train, y_train) # Najlepší parameter best_k = grid_search.best_params_['n_neighbors'] print(f'Najlepší počet susedov: {best_k}')

Záver

KNN algoritmus je silný nástroj v oblasti strojového učenia, ktorý je jednoduchý na pochopenie a implementáciu. Vďaka knižnici Scikit-learn môžeme ľahko aplikovať tento algoritmus na rôzne úlohy klasifikácie a regresie. Pomocou príkladov uvedených v tomto článku môžete začať s vaším vlastným projektom strojového učenia a ďalej skúmať, ako optimalizovať a vylepšiť výkon vašich modelov.

Populárne komentáre
    Momentálne žiadne komentáre
Komentár

0