Delen via


series_cosine_similarity()

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Bereken de cosinus-overeenkomst van twee numerieke vectoren.

De functie series_cosine_similarity() twee numerieke reeksen als invoer gebruikt en berekent de cosinus-gelijkenis.

Syntaxis

series_cosine_similarity( reeks1, reeks2, [*magnitude1, [*magnitude2]])

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
reeks1, reeks2 dynamic ✔️ Invoermatrices met numerieke gegevens.
grootte1, grootte2 real Optionele grootte van respectievelijk de eerste en de tweede vectoren. De grootte is de vierkantswortel van het puntproduct van de vector met zichzelf. Als de grootte niet is opgegeven, wordt deze berekend.

Retourneert

Retourneert een waarde van het type real waarvan de waarde de cosinus-overeenkomst is van reeks1 met reeks2. Als beide reekslengten niet gelijk zijn, wordt de langere reeks afgekapt tot de lengte van de kortere reeks. Elk niet-numeriek element van de invoerreeks wordt genegeerd.

Notitie

Als een of beide invoermatrices leeg zijn, wordt het resultaat null.

Prestaties optimaliseren

Voor verbeterde prestaties en verminderde opslagvereisten bij het gebruik van deze functie kunt u overwegen het Vector16 coderingsbeleid te gebruiken voor het opslaan van drijvendekommagectors waarvoor geen precisie van 64 bits is vereist, zoals ML-vectorinsluitingen. Het Vector16 profiel, dat gebruikmaakt van de Bfloat16 drijvendekommagepresentatie, kan de bewerking aanzienlijk optimaliseren en de opslaggrootte met een factor 4 verminderen. Raadpleeg de encoding-beleidstypenvoor meer informatie over het Vector16 coderingsbeleid.

Voorbeeld

datatable(s1:dynamic, s2:dynamic)
[
    dynamic([0.1,0.2,0.1,0.2]), dynamic([0.11,0.2,0.11,0.21]),
    dynamic([0.1,0.2,0.1,0.2]), dynamic([1,2,3,4]),
]
| extend cosine_similarity=series_cosine_similarity(s1, s2)
s1 s2 cosine_similarity
[0.1,0.2,0.1,0.2] [0.11,0.2,0.11,0.21] 0.99935343825504
[0.1,0.2,0.1,0.2] [1,2,3,4] 0.923760430703401