Scikit Learn Tutorial: Začnite s týmto úžasným návodom na strojové učenie
Strojové učenie je jednou z najinovatívnejších a najrýchlejšie rastúcich oblastí v oblasti technológie. Ak sa chcete dostať do sveta strojového učenia, Scikit-learn je jednou z najpopulárnejších knižníc pre Python, ktorá vám umožní vytvárať silné modely strojového učenia s minimálnym úsilím. Tento návod vás prevedie základmi Scikit-learn a ukáže niektoré príklady, ako túto knižnicu využiť v praxi.
Čo je Scikit Learn?
Scikit-learn je open-source knižnica pre strojové učenie v Pythone, ktorá poskytuje jednoduchý a konzistentný rozhranie pre širokú škálu algoritmov strojového učenia. Scikit-learn je založený na iných knižniciach ako NumPy, SciPy a matplotlib, čím poskytuje efektívne nástroje na manipuláciu s dátami, trénovanie modelov a predikcie.
Scikit-learn je ideálny pre začiatočníkov aj pokročilých používateľov, pretože ponúka ľahko použiteľné API a rozsiahlu dokumentáciu. Pomocou Scikit-learn môžete riešiť rôzne úlohy, ako napríklad klasifikáciu, regresiu, zhlukovanie, výber vlastností a mnoho ďalších.
Inštalácia Scikit Learn
Predtým, než sa pustíme do samotného kódu, je potrebné nainštalovať knižnicu Scikit-learn. Ak ešte nemáte nainštalovaný Python, začnite tým, že si nainštalujete Python z oficiálnej stránky. Potom môžete nainštalovať Scikit-learn pomocou pip, balíčkovacieho nástroja pre Python:
pip install scikit-learn
Týmto spôsobom nainštalujete Scikit-learn aj všetky jeho závislosti, ako aj ďalšie potrebné knižnice, ako sú NumPy a SciPy.
Prvý príklad: Klasifikácia pomocou Scikit Learn
Po úspešnej inštalácii môžeme prejsť k jednoduchému príkladu, ktorý ukáže, ako použiť Scikit-learn na riešenie úlohy klasifikácie. Predstavme si, že máme dataset, ktorý obsahuje informácie o kvetoch irisov a chceme predpovedať, o aký druh ide (setosa, versicolor alebo virginica). Scikit-learn obsahuje dataset iris, ktorý môžeme okamžite použiť:
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Načítame dataset iris
iris = datasets.load_iris()
X = iris.data
y = iris.target
# Rozdelíme dáta na trénovací a testovací set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Vytvoríme KNN model (K-Nearest Neighbors)
model = KNeighborsClassifier(n_neighbors=3)
# Trénujeme model
model.fit(X_train, y_train)
# Predpovedáme výsledky na testovacích dátach
y_pred = model.predict(X_test)
# Vyhodnotíme presnosť modelu
accuracy = accuracy_score(y_test, y_pred)
print(f'Presnosť modelu: {accuracy * 100:.2f}%')
V tomto príklade používame K-Nearest Neighbors (KNN) algoritmus na klasifikáciu kvetov irisov. Dataset iris je bežne používaný na ukážky strojového učenia a je súčasťou knižnice Scikit-learn. Po načítaní dát a rozdelení na trénovací a testovací set, model trénujeme pomocou metódy fit a následne vykonávame predikcie na testovacích dátach pomocou metódy predict. Na konci vyhodnocujeme presnosť modelu pomocou accuracy_score.
Príklad 2: Regresia s lineárnym modelom
Okrem klasifikácie, Scikit-learn umožňuje aj regresiu, kde sa model snaží predpovedať kontinuálnu hodnotu. V tomto príklade použijeme lineárnu regresiu na predpovedanie ceny domu na základe veľkosti domu. Opäť využijeme funkcie Scikit-learn:
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
# Vytvoríme regresný dataset
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)
# Rozdelíme dáta na trénovací a testovací set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Vytvoríme lineárny regresný model
model = LinearRegression()
# Trénujeme model
model.fit(X_train, y_train)
# Predpovedáme hodnoty na testovacom sete
y_pred = model.predict(X_test)
# Zobrazíme výsledky
plt.scatter(X_test, y_test, color='black', label='Skutočné hodnoty')
plt.plot(X_test, y_pred, color='blue', linewidth=3, label='Predpovedané hodnoty')
plt.title('Lineárna regresia')
plt.xlabel('Veľkosť domu')
plt.ylabel('Cena domu')
plt.legend()
plt.show()
V tomto príklade používame lineárnu regresiu na predpovedanie hodnoty y (ceny domu) na základe hodnoty X (veľkosti domu). Po trénovaní modelu vykonáme predpovedanie a zobrazíme výsledky v grafe. Čierne body zobrazujú skutočné hodnoty, zatiaľ čo modrá čiara znázorňuje predpovedané hodnoty.
Výber vlastností a optimalizácia modelu
Scikit-learn obsahuje aj nástroje na výber vlastností a optimalizáciu modelov. Tieto techniky sú užitočné, ak máte veľké množstvo dát a chcete sa zamerať na tie najdôležitejšie vlastnosti. Jedným z najbežnejších prístupov je použitie metódy selectKBest, ktorá vám umožní vybrať k najlepších vlastností pre váš model:
from sklearn.feature_selection import SelectKBest, f_classif
# Vyberieme 3 najlepšie vlastnosti na základe hodnoty F-testu
selector = SelectKBest(f_classif, k=3)
X_new = selector.fit_transform(X_train, y_train)
# Trénujeme model na vybraných vlastnostiach
model.fit(X_new, y_train)
# Predpovedáme a vyhodnocujeme model
X_test_new = selector.transform(X_test)
y_pred = model.predict(X_test_new)
accuracy = accuracy_score(y_test, y_pred)
print(f'Presnosť modelu s vybranými vlastnosťami: {accuracy * 100:.2f}%')
V tomto príklade používame SelectKBest, ktorý vyberá 3 najlepšie vlastnosti zo vstupného datasetu na základe F-testu. Potom trénujeme model len na týchto vybraných vlastnostiach a vyhodnocujeme jeho presnosť.
Záver
Scikit-learn je silná a flexibilná knižnica, ktorá umožňuje pracovať s rôznymi úlohami strojového učenia. V tomto návode sme si ukázali, ako používať Scikit-learn na riešenie úloh klasifikácie, regresie a optimalizácie modelov. S množstvom dostupných nástrojov a algoritmov je Scikit-learn vynikajúcou voľbou pre začiatočníkov aj skúsených odborníkov, ktorí sa chcú ponoriť do sveta strojového učenia.
Ak chcete pokračovať v učení a rozvíjaní svojich zručností v oblasti strojového učenia, Scikit-learn je skvelý nástroj na to, aby ste sa dostali na ďalšiu úroveň. Pokračujte v experimentovaní a objavujte rôzne techniky, ktoré Scikit-learn ponúka. Uvidíte, že čím viac sa do tejto knižnice ponoríte, tým viac budete mať pocit, že máte pod kontrolou celý svet strojového učenia!

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!