Middle
Yaqin qo'shni izlash uchun qaysi kutubxonalarni ishlatish kerak?
sobes.tech AI
AIdan javob
Mashina o'rganish va ma'lumotlarni tahlil qilish vazifalarida eng yaqin qo'shnilarni topish uchun quyidagi kutubxonalar va vositalardan foydalaniladi:
- scikit-learn (Python) — k-Nearest Neighbors (k-NN) algoritmining amalga oshirilishini o'z ichiga oladi, tasniflash va regressiya uchun qulay.
- Faiss (Facebook AI Similarity Search) — C++ tilida yozilgan, Python uchun bog'lamlari bilan, katta ma'lumotlar to'plamlari uchun tezkor yaqin qo'shnilarni qidirish uchun optimallashtirilgan.
- Annoy (Approximate Nearest Neighbors Oh Yeah) — Spotify tomonidan ishlab chiqilgan, yaqin qo'shnilarni tezda taxminiy qidirish uchun, tavsiyalar uchun juda mos.
- HNSWlib — kichik dunyo graflaridan foydalanib, yaqin qo'shnilarni qidirish uchun samarali kutubxona.
- FLANN (Fast Library for Approximate Nearest Neighbors) — C++ tilida yozilgan, tezkor taxminiy qidirish uchun kutubxona.
Tanlov vazifaga bog'liq:
- Kichik va o'rtacha ma'lumotlar to'plamlari uchun scikit-learn mos keladi.
- Juda katta ma'lumotlar hajmi va yuqori unumdorlik tizimlari uchun Faiss yoki HNSWlib tavsiya etiladi.
scikit-learn yordamida yaqin qo'shnilarni qidirish misoli:
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)
# [1.5, 1.5] nuqtasi uchun 2 ta eng yaqin qo'shnini topish
distances, indices = neigh.kneighbors([[1.5, 1.5]])
print(indices) # qo'shnilarning indekslari
print(distances) # qo'shnilarga bo'lgan masofalar