Haluatko aloittaa koneoppiminen?
Olen luonut yksinkertaisen ja helpon opetusohjelman aloittelijoille. Käymme yhdessä läpi koneoppimismallin koulutuksen perusvaiheet.
Selittäessään mallin koulutuksen vaiheita yksitellen annan myös hyvin yksinkertaisen esimerkin koneoppimisongelmasta. Joten jos haluat seurata mukana, voit ladata tämän esimerkkitietojoukon tästä linkkiä.
Tämä on vain esimerkkitietojoukko, joka auttaa sinua pääsemään alkuun koneoppimisen kanssa.
Meillä on 18 arvoa eri-ikäisistä ja -sukupuolisista ihmisistä, joilla on määritelty suosikkimusiikkinsa. Käyttämällä "ikä"- ja "sukupuoli"-ominaisuuksia yritämme arvata, mikä musiikkityyli on heidän suosikkinsa.
Huomautus: 1 ja 0 on tässä tietojoukossa määritetty sukupuoliksi naisiksi ja miehiksi.
Kuitenkin, jos et halua seurata esimerkkiä, se on myös täysin hyvä. Selitän kaikki nämä vaiheet yksityiskohtaisesti. Joten, sukeltakaamme sisään!
Ensimmäistä tietoa
Ennen kuin siirrymme mallin koulutuksen vaiheisiin, selvennetään joitakin kohtia. Koneoppiminen on tekoäly tieteenala, joka keskittyy datasta oppivien algoritmien kehittämiseen.
Tätä varten koneoppimismalleja koulutetaan tietojoukolla, joka opettaa mallin tekemään oikeita ennusteita tai luokitukset tuoreella, aiemmin tuntemattomalla tiedolla.
Joten mitä nämä mallit ovat? A koneoppimismalli on samanlainen kuin resepti, jota tietokone käyttää tietojen ennusteiden tai valintojen luomiseen.
Malli, kuten resepti, noudattaa joukkoa ohjeita arvioidakseen tietoja ja luodakseen ennusteita tai arvioita tiedoista löydettyjen mallien perusteella. Mitä enemmän dataa malliin koulutetaan, sitä tarkempia sen ennusteet ovat.
Millaisia malleja voimme kouluttaa?
Katsotaanpa, mitkä ovat koneoppimisen perusmallit.
- Lineaarinen regressio: malli, joka ennustaa jatkuvan kohdemuuttujan yhdestä tai useammasta syöttömuuttujasta.
- Neuraaliverkot: linkitettyjen solmujen verkosto, joka voi oppia havaitsemaan monimutkaisia malleja tiedosta.
- Päätöspuut: päätöksenteon lähestymistapa, joka perustuu haarautuvien jos-else-lauseiden ketjuun.
- Klusterit: joukko malleja, jotka ryhmittelevät vertailukelpoisia datapisteitä samankaltaisuuden perusteella.
- Logistinen regressio: malli binääriluokitteluongelmille, joissa kohdemuuttujalla on kaksi potentiaalista arvoa.
- Päätöspuut: päätöksenteon lähestymistapa, joka perustuu haarautuvien jos-else-lauseiden ketjuun.
- Random Forest: kokonaisuusmalli, joka koostuu useista päätöspuista. Niitä käytetään usein luokittelu- ja regressiosovelluksia varten.
- K-Lähimmät naapurit: malli, joka ennustaa tavoitemuuttujan k-lähimpien datapisteiden avulla harjoitusjoukossa.
Ongelmamme ja tietojoukostamme riippuen päätämme, mikä koneoppimismalli sopii parhaiten tilanteeseenmme. Palaamme tähän kuitenkin myöhemmin. Aloitetaan nyt mallimme kouluttaminen. Toivottavasti olet jo ladannut aineisto jos haluat seurata esimerkkiämme.
Lisäksi suosittelen Jupyter Notebook asennettu paikalliselle koneellesi ja käyttää sitä koneoppimisprojekteissasi.
1: Määrittele ongelma
Ensimmäinen vaihe sisään koneoppimisen kouluttaminen malli määrittelee ratkaistavan ongelman. Tämä edellyttää muuttujien valitsemista, joita haluat ennustaa (tunnetaan kohdemuuttujana) ja muuttujat, joita käytetään näiden ennusteiden luomiseen (jota kutsutaan ominaisuuksiksi tai ennustajiksi).
Sinun tulee myös päättää, millaista koneoppimisongelmaa yrität ratkaista (luokittelu, regressio, klusterointi ja niin edelleen) ja minkä tyyppistä dataa tarvitset mallin kouluttamiseen tai keräämiseen.
Käyttämäsi malli määräytyy sen koneoppimisongelman tyypin mukaan, jota yrität ratkaista. Luokittelu, regressio ja klusterointi ovat kolme pääluokkaa koneoppimisen haasteita. Kun haluat ennustaa kategorisen muuttujan, kuten sen, onko sähköposti roskapostia vai ei, käytät luokittelua.
Kun haluat ennustaa jatkuvaa muuttujaa, kuten talon hintaa, käytät regressiota. Klusteroinnilla kootaan vertailukelpoisia tietokohteita niiden yhteisten piirteiden perusteella.
Jos katsomme esimerkkiämme; haasteemme on määrittää henkilön suosikkimusiikkityyli hänen sukupuolensa ja ikänsä perusteella. Käytämme tässä esimerkissä 18 henkilön tietojoukkoa ja tietoja heidän ikänsä, sukupuolensa ja suosikkimusiikkityylinsä.
2. Valmistele tiedot
Kun olet määrittänyt ongelman, sinun on valmisteltava tiedot mallin harjoittelua varten. Tämä edellyttää tietojen puhdistamista ja käsittelyä. Jotta voimme varmistaa, että se on muodossa, jossa koneoppimisalgoritmi voi käyttää.
Tähän voi sisältyä toimintoja, kuten puuttuvien arvojen poistaminen, kategoristen tietojen muuntaminen numeerisiksi tiedoiksi ja tietojen skaalaus tai normalisointi sen varmistamiseksi, että kaikki ominaisuudet ovat samassa mittakaavassa.
Esimerkiksi näin voit poistaa puuttuvat arvot:
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())
Pieni huomautus: rivillä o "import pandas as pd",
tuomme Pandas-kirjaston ja annamme sille aliaksen "pd", jotta sen toimintoihin ja objekteihin on helpompi viitata myöhemmin koodissa.
Pandas on Pythonille hyvin tunnettu moduuli tietojen käsittelyyn ja analysointiin, erityisesti kun työskennellään jäsenneltyjen tai taulukkomuotoisten tietojen kanssa.
Esimerkissämme musiikin tyylilajien määrittämisestä. Tuomme ensin tietojoukon. Olen antanut sille nimeksi music.csv, mutta voit nimetä sen miten haluat.
Valmistaaksemme datan koneoppimismallin harjoittelua varten jaoimme sen attribuutteihin (ikä ja sukupuoli) ja tavoitteisiin (musiikkilaji).
Lisäksi jaamme tiedot 80:20 koulutus- ja testaussarjoihin arvioidaksemme mallimme suorituskykyä ja välttääksemme yliasennusta.
# 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. Valitse koneoppimismalli.
Kun olet valmistellut tiedot, sinun tulee valita tehtävään sopiva koneoppimismalli.
Valittavana on useita algoritmeja, kuten päätöspuut, logistinen regressio, tukivektorikoneet, hermoverkot ja muut. Valitsemasi algoritmi määräytyy sen ongelman tyypin, johon yrität vastata, tietojen tyypin ja suorituskykytarpeesi mukaan.
Käytämme tässä esimerkissä päätöspuun luokittelijaa, koska työskentelemme luokitusongelman kanssa (ennakoimme kategorisia tietoja).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Tässä on visualisointi päätöksentekopuun luokittelijan toiminnasta:
4. Harjoittele mallia
Voit aloittaa mallin harjoittamisen, kun olet valinnut hyväksyttävän koneoppimisalgoritmin. Tämä edellyttää aiemmin luotujen tietojen hyödyntämistä algoritmin kouluttamisessa, kuinka tehdä ennusteita tuoreesta, ennen näkemättömästä datasta.
Algoritmi muuttaa sisäisiä parametrejaan harjoituksen aikana minimoimaan eron ennustettujen arvojen ja opetustiedon todellisten arvojen välillä. Koulutukseen käytetyn datan määrä sekä algoritmin erityiset parametrit voivat kaikki vaikuttaa tuloksena olevan mallin tarkkuuteen.
Erityisesimerkissämme nyt, kun olemme päättäneet menetelmästä, voimme kouluttaa malliamme harjoitustietojen avulla.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Arvioi malli
Kun malli on koulutettu, se on arvioitava uusilla tiedoilla varmistaakseen, että se on tarkka ja luotettava. Tämä edellyttää mallin testaamista tiedoilla, joita ei ole käytetty koulutuksen aikana, ja sen ennustearvojen vertaamista testitiedon todellisiin arvoihin.
Tämä tarkistus voi auttaa tunnistamaan mallin puutteet, kuten yli- tai aliasennus, ja voi johtaa tarvittaviin hienosäätöihin.
Testaustietojen avulla arvioimme mallimme oikeellisuuden.
# 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)
Tarkkuuspisteet eivät ole toistaiseksi huonot. 🙂 Tarkkuuspisteytesi parantamiseksi voit aina puhdistaa tietoja enemmän tai kokeilla erilaisia koneoppimismalleja nähdäksesi, kumpi antaa korkeimman pistemäärän.
6. Hienosäädä mallia
Jos mallin tehokkuus ei ole riittävä, sitä voidaan hienosäätää muuttamalla erilaisia algoritmiparametreja tai kokeilemalla kokonaan uusia algoritmeja.
Tämä toimenpide voi sisältää vaihtoehtoisten oppimisnopeuksien kokeilun, regularisointiasetusten muuttamisen tai hermoverkon piilotettujen kerrosten määrän tai koon muuttamisen.
7. Käytä mallia
Kun olet tyytyväinen mallin suorituskykyyn, voit alkaa käyttää sitä ennusteiden luomiseen uusista tiedoista.
Tämä saattaa edellyttää tuoreen tiedon syöttämistä malliin ja mallin oppimien parametrien käyttämistä ennusteiden luomiseen kyseiselle tiedolle tai mallin integroimista laajempaan sovellukseen tai järjestelmään.
Voimme käyttää malliamme ennusteiden luomiseen uusista tiedoista, kun olemme tyytyväisiä sen tarkkuuteen. Voit kokeilla erilaisia sukupuolen ja iän arvoja.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Paketoida
Olemme saaneet päätökseen ensimmäisen koneoppimismallimme koulutuksen.
Toivottavasti olet löytänyt sen hyödylliseksi. Nyt voit kokeilla erilaisia koneoppimismalleja, kuten lineaarista regressiota tai satunnaismetsää.
Siinä on monia tietojoukkoja ja haasteita Kaggle jos haluat parantaa koodaustasi ja ymmärrystäsi koneoppimisesta.
Jätä vastaus