Chtěli byste začít s strojové učení?
Vytvořil jsem jednoduchý a snadný návod pro úplné začátečníky. Společně si projdeme základní kroky trénování modelu strojového učení.
Při vysvětlování kroků trénování modelu jeden po druhém uvedu také velmi základní příklad problému strojového učení. Pokud tedy chcete pokračovat, můžete si stáhnout tento vzorový soubor dat z této stránky https://trials.autocruitment.com.
Toto je pouze ukázkový soubor dat, který vám pomůže začít se strojovým učením.
Máme 18 hodnot lidí různého věku a pohlaví, kteří mají definovanou svou oblíbenou hudbu. Pomocí funkcí „věk“ a „pohlaví“ se pokusíme uhodnout, který hudební žánr je jejich oblíbený.
Poznámka: 1 a 0 jsou v tomto datovém souboru přiřazeny pohlavím jako žena a muž.
Pokud si však nechcete vzít příklad, je to také naprosto v pořádku. Všechny tyto kroky podrobně vysvětlím. Takže, pojďme se ponořit!
První věci, které je třeba vědět
Než se pustíme do kroků trénování modelu, ujasněme si některé body. Strojové učení je umělá inteligence disciplína, která se zaměřuje na vývoj algoritmů, které se mohou učit z dat.
K tomu jsou modely strojového učení trénovány na datové sadě, která model učí, jak správně předpovídat resp klasifikace na čerstvých, dříve neznámých datech.
Takže, jaké jsou tyto modely? A model strojového učení je podobný receptu, který počítač používá ke generování předpovědí dat nebo voleb.
Model, stejně jako recept, se řídí sadou instrukcí k vyhodnocení dat a generování předpovědí nebo úsudků na základě vzorů nalezených v datech. Čím více dat je model trénován, tím přesnější jsou jeho předpovědi.
Jaké druhy modelů můžeme trénovat?
Podívejme se, jaké jsou základní modely strojového učení.
- Lineární regrese: model, který předpovídá spojitou cílovou proměnnou z jedné nebo více vstupních proměnných.
- Neuronové sítě: síť propojených uzlů, které se mohou naučit detekovat složité vzory v datech.
- Rozhodovací stromy: rozhodovací přístup založený na řetězci větvených příkazů if-else.
- Clustering: sada modelů, které seskupují srovnatelné datové body na základě podobnosti.
- Logistická regrese: model pro binární klasifikační problémy, ve kterých má cílová proměnná dvě potenciální hodnoty.
- Rozhodovací stromy: rozhodovací přístup založený na řetězci větvených příkazů if-else.
- Náhodný les: souborový model složený z mnoha rozhodovacích stromů. Často se používají pro klasifikační a regresní aplikace.
- K-Nearest Neighbors: model, který předpovídá cílovou proměnnou pomocí k-nejbližších datových bodů v trénovací sadě.
V závislosti na našem problému a datovém souboru se rozhodneme, který model strojového učení nejlépe vyhovuje naší situaci. Přesto se k tomu vrátíme později. Nyní začněme trénovat náš model. Doufám, že jste si již stáhli dataset pokud byste chtěli následovat náš příklad.
Také doporučuji mít Jupyter Notebook nainstalovaný na vašem místním počítači a jeho použití pro vaše projekty strojového učení.
1: Definujte problém
První etapa v trénovat strojové učení model definuje problém, který má být řešen. To znamená výběr proměnných, které chcete předpovídat (známé jako cílová proměnná), a proměnných, které budou použity k vytvoření těchto předpovědí (známé jako funkce nebo prediktory).
Měli byste se také rozhodnout, jaký druh problému strojového učení se pokoušíte řešit (klasifikace, regrese, shlukování atd.) a jaký typ dat budete potřebovat shromáždit nebo získat pro trénování vašeho modelu.
Typ modelu, který použijete, bude určen typem problému strojového učení, který chcete vyřešit. Klasifikace, regrese a shlukování jsou tři primární kategorie výzvy strojového učení. Když chcete předpovědět kategorickou proměnnou, například zda je e-mail spam nebo ne, použijete klasifikaci.
Pokud chcete předpovídat spojitou proměnnou, jako je cena domu, použijete regresi. Clustering se používá k sestavení srovnatelných datových položek na základě jejich společných rysů.
Když se podíváme na náš příklad; naším úkolem je určit preferovaný hudební styl člověka na základě jeho pohlaví a věku. Pro tento příklad použijeme datovou sadu 18 lidí a informace o jejich věku, pohlaví a oblíbeném hudebním stylu.
2. Připravte data
Poté, co určíte problém, budete muset připravit data pro trénování modelu. To znamená čištění a zpracování dat. Abychom mohli zajistit, že je ve formátu, který algoritmus strojového učení může použít.
To může zahrnovat činnosti, jako je odstranění chybějících hodnot, transformace kategoriálních dat na číselná data a škálování nebo normalizace dat, aby bylo zajištěno, že všechny charakteristiky budou na stejném měřítku.
Například takto odstraníte chybějící hodnoty:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Malá poznámka: V řádku o “import pandas as pd",
importujeme knihovnu Pandas a přiřadíme jí alias „pd“, aby bylo snazší odkazovat na její funkce a objekty později v kódu.
Pandas je dobře známý modul pro Python pro manipulaci a analýzu dat, zejména při práci se strukturovanými nebo tabulkovými daty.
V našem příkladu určování hudebních žánrů. Nejprve importujeme datovou sadu. Pojmenoval jsem to music.csv, ale můžete si to pojmenovat, jak chcete.
Abychom připravili data pro trénování modelu strojového učení, rozdělili jsme je na atributy (věk a pohlaví) a cíle (hudební žánr).
Data navíc rozdělíme do tréninkových a testovacích sad v poměru 80:20, abychom vyhodnotili výkon našeho modelu a zabránili přemontování.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Vyberte model strojového učení.
Po přípravě dat si musíte vybrat model strojového učení, který je vhodný pro váš úkol.
Na výběr je několik algoritmů, jako jsou rozhodovací stromy, logistická regrese, podpůrné vektorové stroje, neuronové sítě a další. Algoritmus, který zvolíte, bude určen typem problému, na který se pokoušíte odpovědět, typem dat, která máte, a vašimi potřebami výkonu.
Pro tento příklad použijeme klasifikátor rozhodovacího stromu, protože pracujeme s klasifikačním problémem (předpovídáním kategorických dat).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Zde je vizualizace toho, jak funguje klasifikátor rozhodovacího stromu:
4. Trénujte model
Když si vyberete přijatelný algoritmus strojového učení, můžete začít trénovat model. To znamená využití dříve vygenerovaných dat ke vzdělávání algoritmu, jak provádět předpovědi na čerstvých, dříve neviděných datech.
Algoritmus upraví své vnitřní parametry během tréninku, aby minimalizoval rozdíl mezi jeho předpokládanými hodnotami a skutečnými hodnotami v tréninkových datech. Na přesnost výsledného modelu může mít vliv množství dat použitých pro trénování, stejně jako specifické parametry algoritmu.
V našem konkrétním příkladu, když jsme se rozhodli pro metodu, můžeme trénovat náš model pomocí trénovacích dat.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Vyhodnoťte model
Poté, co byl model trénován, musí být vyhodnocen na nových datech, aby bylo zajištěno, že je přesný a spolehlivý. To znamená otestovat model s daty, která nebyla během tréninku využita, a porovnat jeho projektované hodnoty se skutečnými hodnotami v testovacích datech.
Tato kontrola může pomoci při identifikaci případných nedostatků modelu, jako je nadměrné nebo nedostatečné vybavení, a může vést k jakémukoli požadovanému jemnému doladění.
Pomocí testovacích dat posoudíme správnost našeho modelu.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Skóre přesnosti zatím není tak špatné. 🙂 Chcete-li zlepšit své skóre přesnosti, můžete data vždy více vyčistit nebo vyzkoušet různé modely strojového učení, abyste zjistili, který z nich dává nejvyšší skóre.
6. Dolaďte model
Pokud efektivita modelu není dostatečná, můžete jej doladit změnou různých parametrů algoritmu nebo úplným experimentováním s novými algoritmy.
Tento postup může zahrnovat experimentování s alternativními rychlostmi učení, úpravu nastavení regularizace nebo změnu počtu nebo velikosti skrytých vrstev v neuronové síti.
7. Použijte model
Jakmile budete s výkonem modelu spokojeni, můžete jej začít používat ke generování předpovědí nových dat.
To může znamenat vkládání čerstvých dat do modelu a využití naučených parametrů modelu k vytváření předpovědí na těchto datech nebo integraci modelu do širší aplikace nebo systému.
Náš model můžeme použít ke generování předpovědí nových dat poté, co budeme spokojeni s jeho přesností. Můžete vyzkoušet různé hodnoty pohlaví a věku.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Zabalit
Dokončili jsme trénování našeho prvního modelu strojového učení.
Doufám, že vám to bylo užitečné. Nyní můžete vyzkoušet použití různých modelů strojového učení, jako je lineární regrese nebo náhodný les.
Existuje mnoho datových sad a problémů Kaggle pokud byste chtěli zlepšit své kódování a porozumění strojovému učení.
Napsat komentář