Machine learning 在Scikit学习中使用近似近邻进行分类

Machine learning 在Scikit学习中使用近似近邻进行分类,machine-learning,scikit-learn,classification,nearest-neighbor,Machine Learning,Scikit Learn,Classification,Nearest Neighbor,我有一个带标签的数据集,有一个46D特征集和大约5000个样本,我想用近似近邻分类 因为我熟悉Scikit Learn,所以我想利用它来实现这个目标 scikit文档将LSHForest列为ANN的可能方法之一,但我不清楚如何将其应用于分类目的。这是一个很好的问题。不幸的是,scikit learn现在似乎不支持自定义邻居模型,但您可以自己实现简单的包装器,例如 from sklearn.neighbors import LSHForest import numpy as np from sci

我有一个带标签的数据集,有一个46D特征集和大约5000个样本,我想用近似近邻分类

因为我熟悉Scikit Learn,所以我想利用它来实现这个目标


scikit文档将LSHForest列为ANN的可能方法之一,但我不清楚如何将其应用于分类目的。

这是一个很好的问题。不幸的是,scikit learn现在似乎不支持自定义邻居模型,但您可以自己实现简单的包装器,例如

from sklearn.neighbors import LSHForest
import numpy as np
from scipy.stats import mode

class LSH_KNN:

    def __init__(self, **kwargs):
        self.n_neighbors = kwargs['n_neighbors']
        self.lsh = LSHForest(**kwargs)

    def fit(self, X, y):
        self.y = y
        self.lsh.fit(X)

    def predict(self, X):
        _, indices = self.lsh.kneighbors(X, n_neighbors = self.n_neighbors)
        votes, _ = mode(self.y[indices], axis=1)
        return votes.flatten()

谢谢你的回复。我一定会查一查。你也能告诉我,是否有任何方法可以集成该系统的近似邻居查找机制。我的主要问题是,我有所有这些ANN库供我使用,它们可以计算距离和索引,我如何在sklearn中利用它们进行分类?你必须编写自己的包装,比如任何东西的包装,以便输入。这真的很有帮助:)