Sobes.tech
Middle

Milliseid raamatukogusid kasutada lähimate naabrite otsimiseks?

sobes.tech AI

Vastus AI-lt

Masinõppe ja andmeanalüüsi ülesannete puhul kasutatakse sageli järgmisi teeke ja tööriistu:

  • scikit-learn (Python) — sisaldab k-Nearest Neighbors (k-NN) algoritmi rakendust, sobib klassifikatsiooniks ja regressiooniks.
  • Faiss (Facebook AI Similarity Search) — C++ raamatukogu koos Python sidemetega, optimeeritud kiireks lähimate naabrite otsimiseks suurtes andmekogudes.
  • Annoy (Approximate Nearest Neighbors Oh Yeah) — Spotify loodud raamatukogu kiireks ligikaudseks naabrite otsimiseks, sobib soovituste jaoks.
  • HNSWlib — tõhus raamatukogu lähimate naabrite otsimiseks väikese maailma graafide kasutamisega.
  • FLANN (Fast Library for Approximate Nearest Neighbors) — C++ raamatukogu kiireks ligikaudseks otsimiseks.

Valik sõltub ülesandest:

  • Väikeste ja keskmise suurusega andmekogumite jaoks sobib scikit-learn.
  • Väga suurte andmemahtude ja kõrge jõudlusega süsteemide jaoks — Faiss või HNSWlib.

Näide scikit-learni kasutamisest lähimate naabrite otsimiseks:

from sklearn.neighbors import NearestNeighbors
import numpy as np

X = np.array([[0, 0], [1, 1], [2, 2], [3, 3]])
neigh = NearestNeighbors(n_neighbors=2)
neigh.fit(X)

# Leia 2 lähimat naabrit punktile [1.5, 1.5]
distances, indices = neigh.kneighbors([[1.5, 1.5]])
print(indices)  # naabrite indeksid
print(distances)  # kaugused naabriteni