Chceli by ste začať s strojové učenie?
Vytvoril som jednoduchý a ľahký návod pre úplných začiatočníkov. Spoločne si prejdeme základné kroky trénovania modelu strojového učenia.
Pri vysvetľovaní krokov trénovania modelu jeden po druhom uvediem aj veľmi základný príklad problému strojového učenia. Ak teda chcete pokračovať, môžete si stiahnuť túto vzorovú množinu údajov z tejto stránky odkaz.
Toto je len vzorový súbor údajov, ktorý vám pomôže začať so strojovým učením.
Máme 18 hodnôt ľudí rôzneho veku a pohlavia, ktorí majú definovanú svoju obľúbenú hudbu. Pomocou funkcií „vek“ a „pohlavie“ sa pokúsime uhádnuť, ktorý hudobný žáner je ich obľúbený.
Poznámka: 1 a 0 sú v tomto súbore údajov priradené pohlaviam ako ženy a muži.
Ak si však nechcete brať príklad, je to tiež úplne v poriadku. Všetky tieto kroky podrobne vysvetlím. Takže, poďme sa ponoriť!
Prvé veci, ktoré by ste mali vedieť
Predtým, ako sa pustíme do krokov trénovania modelu, vyjasnime si niektoré body. Strojové učenie je umelá inteligencia disciplína, ktorá sa zameriava na vývoj algoritmov, ktoré sa dokážu učiť z údajov.
K tomu sú modely strojového učenia trénované na dátovom súbore, ktorý model učí robiť správne predpovede resp klasifikácia na čerstvých, predtým neznámych údajoch.
Takže, aké sú tieto modely? A model strojového učenia je podobný receptu, ktorý počítač používa na generovanie predpovedí údajov alebo volieb.
Model, podobne ako recept, sa riadi súborom pokynov na vyhodnotenie údajov a generovanie predpovedí alebo úsudkov na základe vzorov nájdených v údajoch. Čím viac údajov je model trénovaný, tým presnejšie sú jeho predpovede.
Aké druhy modelov môžeme trénovať?
Pozrime sa, aké sú základné modely strojového učenia.
- Lineárna regresia: model, ktorý predpovedá spojitú cieľovú premennú z jednej alebo viacerých vstupných premenných.
- Neurálne siete: sieť prepojených uzlov, ktoré sa môžu naučiť detekovať komplikované vzory v údajoch.
- Rozhodovacie stromy: rozhodovací prístup založený na reťazci rozvetvených príkazov if-else.
- Klastrovanie: súbor modelov, ktoré zoskupujú porovnateľné dátové body na základe podobnosti.
- Logistická regresia: model pre binárne klasifikačné problémy, v ktorých má cieľová premenná dve potenciálne hodnoty.
- Rozhodovacie stromy: rozhodovací prístup založený na reťazci rozvetvených príkazov if-else.
- Náhodný les: súborový model zložený z mnohých rozhodovacích stromov. Často sa používajú na klasifikáciu a regresné aplikácie.
- K-Nearest Neighbors: model, ktorý predpovedá cieľovú premennú pomocou k-najbližších dátových bodov v trénovacej množine.
V závislosti od nášho problému a súboru údajov sa rozhodneme, ktorý model strojového učenia najviac vyhovuje našej situácii. K tomu sa však vrátime neskôr. Teraz začnime trénovať náš model. Dúfam, že ste si už stiahli dataset ak by ste chceli nasledovať náš príklad.
Tiež odporúčam mať Jupyter Notebook nainštalovaný na vašom lokálnom počítači a používať ho pre vaše projekty strojového učenia.
1: Definujte problém
Prvá etapa v trénovanie strojového učenia model definuje problém, ktorý sa má riešiť. Znamená to výber premenných, ktoré chcete predpovedať (známych ako cieľová premenná), a premenných, ktoré sa použijú na generovanie týchto predpovedí (známych ako funkcie alebo prediktory).
Mali by ste sa tiež rozhodnúť, aký druh problému strojového učenia sa pokúšate riešiť (klasifikácia, regresia, klastrovanie atď.) a aký typ údajov budete potrebovať na zhromaždenie alebo získanie na trénovanie vášho modelu.
Typ modelu, ktorý použijete, bude určený typom problému strojového učenia, ktorý sa snažíte vyriešiť. Klasifikácia, regresia a zhlukovanie sú tri primárne kategórie výzvy strojového učenia. Ak chcete predpovedať kategorickú premennú, napríklad či je e-mail spam alebo nie, použite klasifikáciu.
Ak chcete predpovedať spojitú premennú, ako je cena domu, použijete regresiu. Klastrovanie sa používa na zostavenie porovnateľných údajových položiek na základe ich spoločných znakov.
Ak sa pozrieme na náš príklad; našou výzvou je určiť preferovaný hudobný štýl človeka na základe jeho pohlavia a veku. Pre tento príklad použijeme súbor údajov 18 ľudí a informácie o ich veku, pohlaví a obľúbenom hudobnom štýle.
2. Pripravte si údaje
Po zadaní problému budete musieť pripraviť údaje na trénovanie modelu. To znamená čistenie a spracovanie údajov. Aby sme mohli zabezpečiť, že je vo formáte, ktorý algoritmus strojového učenia môcť použiť.
To môže zahŕňať činnosti, ako je vymazanie chýbajúcich hodnôt, transformácia kategorických údajov na číselné údaje a škálovanie alebo normalizácia údajov, aby sa zabezpečilo, že všetky charakteristiky budú na rovnakej mierke.
Napríklad takto odstránite chýbajúce 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 riadku o “import pandas as pd",
importujeme knižnicu Pandas a priradíme jej alias „pd“, aby sme uľahčili odkazovanie na jej funkcie a objekty neskôr v kóde.
Pandas je dobre známy modul pre Python na manipuláciu a analýzu údajov, najmä pri práci so štruktúrovanými alebo tabuľkovými údajmi.
V našom príklade určovania hudobných žánrov. Najprv importujeme množinu údajov. Pomenoval som to music.csv, ale môžete si to pomenovať ako chcete.
Aby sme pripravili dáta na trénovanie modelu strojového učenia, rozdelili sme ich na atribúty (vek a pohlavie) a ciele (hudobný žáner).
Údaje dodatočne rozdelíme do tréningových a testovacích sád v pomere 80:20, aby sme zhodnotili výkon nášho modelu a vyhli sa preťaženiu.
# 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 si model strojového učenia.
Po príprave údajov si musíte vybrať model strojového učenia, ktorý je vhodný pre vašu úlohu.
Na výber je niekoľko algoritmov, ako sú rozhodovacie stromy, logistická regresia, podporné vektorové stroje, neurónové siete a iné. Algoritmus, ktorý si vyberiete, bude určený typom problému, na ktorý sa pokúšate odpovedať, typom údajov, ktoré máte, a vašimi potrebami výkonu.
V tomto príklade použijeme klasifikátor rozhodovacieho stromu, pretože pracujeme s problémom klasifikácie (predikcia kategorických údajov).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Tu je vizualizácia toho, ako funguje klasifikátor rozhodovacieho stromu:
4. Trénujte model
Keď si vyberiete prijateľný algoritmus strojového učenia, môžete začať trénovať model. To znamená využitie predtým vygenerovaných údajov na vzdelávanie algoritmu o tom, ako robiť predpovede na čerstvých, predtým neviditeľných údajoch.
Algoritmus upraví svoje interné parametre počas tréningu, aby minimalizoval rozdiel medzi jeho predpokladanými hodnotami a skutočnými hodnotami v tréningových dátach. Množstvo údajov použitých na trénovanie, ako aj špecifické parametre algoritmu, to všetko môže mať vplyv na presnosť výsledného modelu.
V našom konkrétnom príklade, teraz, keď sme sa rozhodli pre metódu, môžeme trénovať náš model pomocou trénovacích údajov.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Vyhodnoťte model
Po natrénovaní modelu sa musí vyhodnotiť na nových údajoch, aby sa zaistilo, že je presný a spoľahlivý. To znamená testovanie modelu s údajmi, ktoré neboli použité počas tréningu, a porovnanie jeho projektovaných hodnôt so skutočnými hodnotami v testovacích údajoch.
Táto kontrola môže pomôcť pri identifikácii akýchkoľvek nedostatkov modelu, ako je nadmerné alebo nedostatočné vybavenie, a môže viesť k akémukoľvek potrebnému jemnému doladeniu.
Pomocou testovacích údajov posúdime správnosť nášho 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 presnosti zatiaľ nie je také zlé. 🙂 Ak chcete zlepšiť svoje skóre presnosti, vždy môžete údaje vyčistiť viac alebo vyskúšať rôzne modely strojového učenia, aby ste zistili, ktorý z nich dáva najvyššie skóre.
6. Dolaďte model
Ak efektivita modelu nie je dostatočná, môžete ho doladiť zmenou rôznych parametrov algoritmu alebo úplným experimentovaním s novými algoritmami.
Tento postup môže zahŕňať experimentovanie s alternatívnymi rýchlosťami učenia, úpravu nastavení regularizácie alebo zmenu počtu alebo veľkosti skrytých vrstiev v neurónovej sieti.
7. Použite model
Keď budete s výkonom modelu spokojní, môžete ho začať používať na generovanie predpovedí nových údajov.
To môže znamenať vloženie čerstvých údajov do modelu a využitie naučených parametrov modelu na generovanie predpovedí o týchto údajoch alebo integráciu modelu do širšej aplikácie alebo systému.
Náš model môžeme použiť na generovanie predpovedí nových údajov, keď budeme spokojní s jeho presnosťou. Môžete vyskúšať rôzne hodnoty pohlavia a veku.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Zabaliť
Dokončili sme tréning nášho prvého modelu strojového učenia.
Dúfam, že to bolo pre vás užitočné. Teraz môžete vyskúšať použitie rôznych modelov strojového učenia, ako je lineárna regresia alebo náhodný les.
Existuje veľa súborov údajov a výziev Kaggle ak by ste chceli zlepšiť svoje kódovanie a pochopenie strojového učenia.
Nechaj odpoveď