K-Means-klusterointi
K-Means-klusterointi on suosittu valvomaton koneoppimisalgoritmi, jolla jaetaan aineisto ennalta määrättyyn määrään erillisiä, päällekkäisiä klustereita minimoi...
Lähimmät naapurit (KNN) on yksinkertainen, ei-parametrinen algoritmi luokitteluun ja regressioon, joka ennustaa tuloksia havaintojen läheisyyden perusteella.
K-lähimmän naapurin (KNN) algoritmi on ei-parametrinen, valvotun oppimisen algoritmi, jota käytetään luokittelu- ja regressiotehtäviin koneoppimisessa. Se perustuu läheisyyden käsitteeseen olettaen, että samankaltaiset havainnot sijaitsevat lähellä toisiaan. KNN on laiska oppimisalgoritmi, eli se ei vaadi koulutusvaihetta, vaan tekee ennusteita tallentamalla koko koulutusaineiston ja käyttämällä sitä uusien havaintojen luokan tai arvon määrittämiseen. Algoritmi ennustaa testiaineiston havaintopisteen tuloksen tunnistamalla ‘k’ koulutusaineiston lähintä pistettä ja päättelee tuloksen näiden naapureiden perusteella. Tämä menetelmä on hyvin intuitiivinen ja jäljittelee ihmisen havainnointistrategioita, jotka perustuvat uuden tiedon vertaamiseen aiempiin esimerkkeihin.
KNN etsii annetulle kyselypisteelle ‘k’ lähintä havaintoa ja käyttää näitä naapureita ennusteen tekemiseen.
Läheisyyden ja samankaltaisuuden periaatteet, jotka ovat keskeisiä ihmisen havainnoinnissa, ovat myös KNN:n toiminnan ytimessä, sillä lähekkäin olevien havaintojen oletetaan olevan samankaltaisia ja siten saavan samanlaisia tuloksia.
KNN käyttää erilaisia etäisyysmittareita lähimpien naapureiden määrittämiseen, ja niiden valinta on ratkaisevaa algoritmin suorituskyvylle:
Parametri ‘k’ KNN:ssä määrittää, kuinka monta naapuria otetaan huomioon. Oikean ‘k’-arvon valinta on tärkeää:
KNN:ää käytetään monilla aloilla sen yksinkertaisuuden ja tehokkuuden vuoksi:
KNN voidaan toteuttaa esimerkiksi scikit-learn -kirjastolla Pythonissa. Tässä on perusesimerkki KNN:n käytöstä luokitteluun:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
# Ladataan aineisto
iris = load_iris()
X, y = iris.data, iris.target
# Jaetaan aineisto opetus- ja testijoukkoihin
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Alustetaan KNN-luokittelija k=3
knn = KNeighborsClassifier(n_neighbors=3)
# Sovitetaan malli
knn.fit(X_train, y_train)
# Ennustetaan
y_pred = knn.predict(X_test)
# Arvioidaan tarkkuus
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")
K-lähimmän naapurin (KNN) algoritmi on keskeinen menetelmä monilla aloilla, kuten multimediahaun, datalouhinnan ja koneoppimisen parissa, erityisesti suurten aineistojen yhteydessä.
“Approximate k-NN Graph Construction: a Generic Online Approach”, Wan-Lei Zhao ym.:
Esittelee tehokkaan menetelmän sekä likimääräiseen k-lähimmän naapurin hakuun että graafien rakentamiseen. Artikkelissa kuvataan dynaaminen ja monipuolinen ratkaisu, joka soveltuu erilaisiin datakokoihin ja -ulottuvuuksiin sekä tukee online-päivityksiä, joita monissa muissa menetelmissä ei ole. Lue lisää.
“Parallel Nearest Neighbors in Low Dimensions with Batch Updates”, Magdalen Dobson ja Guy Blelloch:
Esittelee rinnakkaisia algoritmeja, joissa yhdistetään kd-puu ja Morton-järjestys zd-puurakenteeksi, optimoitu matalille ulottuvuuksille. Tekijät osoittavat menetelmänsä nopeammaksi kuin aiemmat algoritmit ja saavuttavat huomattavia nopeutuksia rinnakkaisprosessoinnilla. Zd-puu tukee ainutlaatuisesti rinnakkaisia eräpäivityksiä, mikä on uutta k-lähimmän naapurin tietorakenteissa. Lue lisää.
“Twin Neural Network Improved k-Nearest Neighbor Regression”, Sebastian J. Wetzel:
Tarkastelee uutta lähestymistapaa k-lähimmän naapurin regressioon käyttäen kaksosneuroverkkoja. Menetelmä keskittyy regressiotavoitteiden erojen ennustamiseen, mikä parantaa suorituskykyä perinteisiin neuroverkkoihin ja k-lähimmän naapurin regressiomenetelmiin verrattuna pienillä ja keskisuurilla aineistoilla. Lue lisää.
K-lähimmän naapurin (KNN) algoritmi on ei-parametrinen, valvotun oppimisen algoritmi, jota käytetään luokitteluun ja regressioon. Se ennustaa tuloksia tunnistamalla 'k' lähintä havaintoa kyselypisteeseen ja päättelee tuloksen näiden naapureiden perusteella.
KNN on helppo ymmärtää ja toteuttaa, ei vaadi erillistä koulutusvaihetta ja sopii sekä luokittelu- että regressiotehtäviin.
KNN voi olla laskennallisesti raskas suurilla aineistoilla, on herkkä poikkeaville arvoille ja sen suorituskyky voi heikentyä korkeissa ulottuvuuksissa ns. ulottuvuuden kirouksen vuoksi.
Optimaalinen 'k'-arvo määritetään tyypillisesti empiirisesti ristivalidoinnin avulla. Pieni 'k' voi johtaa ylisovittamiseen, kun taas suuri 'k' voi aiheuttaa alisovittamista; parittomia arvoja suositaan tasatilanteiden välttämiseksi.
Yleisimpiä etäisyysmittareita ovat euklidinen, manhattan, minkowski ja hammingin etäisyys, jotka valitaan datatyypin ja ongelman vaatimusten mukaan.
Tutustu, miten FlowHuntin tekoälytyökalut ja chatbotit voivat tehostaa data-analyysiäsi ja automatisoida työnkulkuja. Rakenna, testaa ja ota käyttöön tekoälyratkaisuja vaivattomasti.
K-Means-klusterointi on suosittu valvomaton koneoppimisalgoritmi, jolla jaetaan aineisto ennalta määrättyyn määrään erillisiä, päällekkäisiä klustereita minimoi...
Top-k-tarkkuus on koneoppimisen arviointimittari, joka tarkastelee, löytyykö oikea luokka ennustettujen k parhaan luokan joukosta, tarjoten kattavamman ja joust...
Syvä uskomusverkko (DBN) on edistynyt generatiivinen malli, joka hyödyntää syviä arkkitehtuureja ja rajoitettuja Boltzmannin koneita (RBM) oppiakseen hierarkkis...