Kosinisamankaltaisuus

Laske kahden vektorin kosinisamankaltaisuus eli niiden välisen kulman kosini – käytetään muun muassa datatieteessä ja koneoppimisessa.

Kosinisamankaltaisuuslaskuri

Valitse ulottuvuus, syötä vektorien a ja b komponentit ja lue kosinisamankaltaisuus oikealta. Desimaaleissa voit käyttää pilkkua tai pistettä.

Vektori a

Vektori b

Tulokset

  • Tulosta
  • Linkitä
  • Kosinisamankaltaisuus – vektorien suunnan vertailu

    Tällä laskurilla lasket kahden vektorin kosinisamankaltaisuuden eli niiden välisen kulman kosinin. Kosinisamankaltaisuus on suosittu mittari datatieteessä ja koneoppimisessa, koska se vertaa vektorien suuntaa pituudesta riippumatta. Syötä vektorien komponentit (2D, 3D tai 4D), niin näet samankaltaisuuden, kulman ja kosinietäisyyden heti.

    Mikä on kosinisamankaltaisuus?

    Kosinisamankaltaisuus mittaa, kuinka samansuuntaisia kaksi vektoria ovat. Se määritellään vektorien välisen kulman kosinina:

    cos θ = (a · b) / (|a| · |b|)

    Tulos on aina välillä −1…1. Koska kaava normalisoi vektorit niiden pituudella, kosinisamankaltaisuus riippuu vain vektorien suunnasta, ei niiden suuruudesta.

    Tuloksen tulkinta

    Laskentamenetelmä

    Laskenta etenee kolmessa osassa. Ensin lasketaan pistetulo kertomalla vastinkomponentit ja laskemalla tulot yhteen: a · b = a₁b₁ + a₂b₂ + … Sitten lasketaan kummankin vektorin pituus eli normi: |a| = √(a₁² + a₂² + …). Lopuksi pistetulo jaetaan pituuksien tulolla. Vektorien välinen kulma saadaan ottamalla tuloksesta arkuskosini.

    Vaiheittainen esimerkki

    Lasketaan vektorien a = (1, 2, 3) ja b = (4, 5, 6) kosinisamankaltaisuus.

    Vektorien välinen kulma on siis noin 12,9°, joten ne ovat lähes samansuuntaisia.

    Kosinisamankaltaisuus ja kosinietäisyys

    Samankaltaisuuden lisäksi käytetään usein kosinietäisyyttä, joka lasketaan kaavalla:

    kosinietäisyys = 1 − cos θ

    Kosinietäisyys on 0, kun vektorit ovat samansuuntaisia, ja kasvaa, kun vektorit eroavat toisistaan. Se on kätevä silloin, kun halutaan mittari, jossa pieni arvo tarkoittaa suurta samankaltaisuutta – esimerkiksi haku- ja luokittelutehtävissä.

    Missä kosinisamankaltaisuutta käytetään?

    Kosinisamankaltaisuus on yksi käytetyimmistä samankaltaisuusmittareista datatieteessä. Sitä sovelletaan tekstien vertailuun sanavektorien avulla, suosittelujärjestelmissä, hakukoneissa, kuvien ja äänen tunnistuksessa sekä upotusvektorien (embedding) vertailussa. Mittari toimii erityisen hyvin korkeaulotteisessa datassa, jossa vektorien pituudet vaihtelevat mutta niiden suunta kantaa olennaisen tiedon.

    Usein kysytyt kysymykset

    Mikä on kosinisamankaltaisuus?
    Kosinisamankaltaisuus (cosine similarity) mittaa, kuinka samansuuntaisia kaksi vektoria ovat. Se on vektorien välisen kulman kosini ja saa arvoja välillä −1…1. Arvo 1 tarkoittaa, että vektorit osoittavat täsmälleen samaan suuntaan, 0 että ne ovat kohtisuorassa ja −1 että ne osoittavat vastakkaisiin suuntiin. Vektorien pituus ei vaikuta tulokseen, vain niiden suunta.
    Miten kosinisamankaltaisuus lasketaan?
    Kosinisamankaltaisuus lasketaan jakamalla vektorien pistetulo niiden pituuksien tulolla: cos θ = (a · b) / (|a| · |b|). Pistetulo a · b saadaan kertomalla vastinkomponentit ja laskemalla tulot yhteen. Pituus |a| on komponenttien neliöiden summan neliöjuuri. Tämä laskuri tekee laskennan automaattisesti.
    Mitä eroa on kosinisamankaltaisuudella ja pistetulolla?
    Pistetulo riippuu sekä vektorien suunnasta että pituudesta, kun taas kosinisamankaltaisuus on normalisoitu eli riippuu vain suunnasta. Kosinisamankaltaisuus saadaan jakamalla pistetulo pituuksien tulolla, jolloin tulos on aina välillä −1…1. Tämä tekee siitä vertailukelpoisen mittarin eri kokoisten vektorien välillä.
    Mikä on kosinietäisyys?
    Kosinietäisyys on kosinisamankaltaisuutta täydentävä mittari, joka lasketaan kaavalla 1 − kosinisamankaltaisuus. Kun vektorit ovat samansuuntaisia, kosinietäisyys on 0, ja kun ne ovat kohtisuorassa, etäisyys on 1. Kosinietäisyyttä käytetään usein samankaltaisuuden sijaan, kun halutaan mittari, jossa pieni arvo tarkoittaa suurta samankaltaisuutta.
    Missä kosinisamankaltaisuutta käytetään?
    Kosinisamankaltaisuus on keskeinen mittari datatieteessä ja koneoppimisessa. Sitä käytetään muun muassa tekstidokumenttien vertailussa (sanavektorit), suosittelujärjestelmissä, hakukoneissa ja upotusvektorien (embedding) samankaltaisuuden mittaamisessa. Se sopii erityisen hyvin korkeaulotteiselle datalle, jossa vektorien pituudet vaihtelevat mutta suunta on olennainen.
    Oliko tästä laskurista apua?

    Linkitä tämä laskuri

    Kopioi koodi ja liitä se omalle sivustollesi.

    Suositut laskurit