Co je to vyhledávání v síti?

Tento článek si klade za cíl vysvětlit, co je to vyhledávání v mřížce a jak pomocí něj můžeme získat optimální hodnoty hyperparametrů modelu.

Jednoduše vysvětlím všechny potřebné pojmy spolu s nastíněním, jak můžeme mřížkové vyhledávání implementovat v jazyce Python.

Foto: Evgeni Tcherkasski na Unsplash

Pro zjednodušení můžeme analytické aspekty projektu datové vědy rozdělit do tří částí:

  1. První část by se týkala shromažďování potřebných dat a navrhování funkcí.

2. Druhá část by se točila kolem výběru správného modelu strojového učení.

3. Poslední část by se točila kolem nalezení optimálních hyperparametrů.

Třetí část pochopíme lépe, protože nejenže je ladění hyperparametrů považováno za černé umění, je to také zdlouhavý úkol a vyžaduje čas a úsilí.

Tento článek si klade za cíl vysvětlit, co je to prohledávání mřížky a jak pomocí něj můžeme získat optimální hodnoty hyperparametrů modelu.

Tady může být prohledávání mřížky velmi užitečné, protože nám pomůže určit optimální hodnoty elegantním způsobem.

Co je to hyperparametr?“

Model strojového učení má více parametrů, které nejsou natrénovány trénovací množinou. Tyto parametry řídí přesnost modelu. Proto jsou hyperparametry v projektu datové vědy obzvláště důležité.

Hiperparametry se nastavují předem a jsou poskytovány volajícím modelu před jeho trénováním.

Příklad rychlost učení neuronové sítě je hyperparametr, protože je nastavena volajícím před tím, než jsou do modelu vložena trénovací data. Na druhou stranu váhy neuronové sítě nejsou jejími hyperparametry, protože jsou natrénovány tréninkovou sadou dat.

Dále uvažujme model klasifikace s podpůrnými vektory (SVC), který se používá ke klasifikaci datových sad. Existuje řada hyperparametrů, které model vyžaduje.

Ve verzi SVC pro knihovnu scikit-learn lze tedy nastavit velké množství hyperparametrů, přičemž některé z běžných parametrů jsou:

  1. C: Jedná se o regulační parametr
  2. Kernel: Můžeme nastavit parametr jádra na lineární, poly, rbf, sigmoidní, předpočítané nebo zadat vlastní volání.
  3. Stupeň:
  4. Gamma: Můžeme předat vlastní stupeň pro podporu parametru poly jádra:
  5. Max_Iter: Toto je koeficient pro rbf, poly a sigmoid parametr jádra:

Uvažujte, že chceme použít model SVC (z jakéhokoli důvodu). Nastavení optimálních hodnot hyperparametrů může být náročné a náročné na zdroje. Představte si, kolik permutací potřebujeme k určení nejlepších hodnot parametrů.

Tady přichází na řadu vyhledávání v mřížce.

Co je vyhledávání v mřížce?

Vyhledávání v mřížce je technika ladění, která se snaží vypočítat optimální hodnoty hyperparametrů. Jedná se o vyčerpávající hledání, které se provádí na konkrétních hodnotách parametrů modelu. Model se také nazývá estimátor.

Cvičení síťového prohledávání nám může ušetřit čas, úsilí a zdroje.

Implementace v jazyce Python

Mřížkové vyhledávání můžeme použít v jazyce Python provedením následujících kroků:

Instalace knihovny sklearn

pip install sklearn

Import knihovny sklearn

from sklearn.model_selection import GridSearchCV

Import modelu

from sklearn.svm import SVC

Vytvoření slovníku seznamu hyperparametrů

Tento krok je klíčový.

Uvažujme, že chceme najít optimální hodnoty hyperparametrů pro:

  • jádro: Chceme, aby se model trénoval na následujících jádrech a dal nám nejlepší hodnotu z lineárních, poly, rbf, sigmoidních a předpočítaných hodnot
  • C: chceme, aby model vyzkoušel následující hodnoty C:
  • max_iter: chceme, aby model použil následující hodnoty max_iter: a dal nám nejlepší hodnotu.

Můžeme vytvořit požadovaný slovník:

parameters = , 
'C': ,
'max_iter': }]

Instituujte GridSearchCV a předejte parametry

clf = GridSearchCV(
SVC(), parameters, scoring='accuracy'
)
clf.fit(X_train, y_train)

Poznámka: rozhodli jsme se, že k posouzení výkonu použijeme míru přesnosti.

Nakonec vypište nejlepší parametry:

print(clf.best_params_)

To je vše.

Nyní se nám zobrazí optimální hodnoty hyperparametrů.

Vybrané parametry jsou ty, které maximalizovaly skóre přesnosti.

Shrnutí

V tomto článku bylo vysvětleno, jak použít Grid Search k získání optimálních hyperparametrů pro model strojového učení.

Vyhledávání v mřížce.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.