Dela via


series_cosine_similarity()

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Beräkna cosininlikiteten för två numeriska vektorer.

Funktionen series_cosine_similarity() tar två numeriska serier som indata och beräknar deras cosinniska likhet.

Syntax

series_cosine_similarity( series1, series2, [*magnitude1, [*magnitude2]])

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Krävs Beskrivning
series1, series2 dynamic ✔️ Indatamatriser med numeriska data.
magnitude1, magnitude2 real Valfri storlek för den första respektive den andra vektorerna. Magnituden är kvadratroten av punktprodukten av vektorn med sig själv. Om storleken inte anges beräknas den.

Returnerar

Returnerar ett värde av typen real vars värde är cosininlikiteten för series1 med series2. Om båda seriernas längd inte är lika med trunkeras den längre serien till längden på den kortare. Alla icke-numeriska element i indataserien ignoreras.

Not

Om en eller båda indatamatriserna är tomma blir resultatet null.

Optimera prestanda

Om du vill ha bättre prestanda och lägre lagringskrav när du använder den här funktionen bör du överväga att använda Vector16 kodningsprincip för lagring av flyttalsvektorer som inte kräver 64-bitars precision, till exempel ML-vektorinbäddningar. Profilen Vector16, som använder Bfloat16 flyttalsrepresentation, kan avsevärt optimera åtgärden och minska lagringsstorleken med en faktor 4. Mer information om Vector16 kodningsprincip finns i Kodningsprinciptyper.

Exempel

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