machine-learning - 在 Scikit-Learn 中使用近似最近邻进行分类

标签 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 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()

关于machine-learning - 在 Scikit-Learn 中使用近似最近邻进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37498331/

相关文章:

python - fmin_cg 函数用于最小化神经网络成本函数

python - 使用 sklearn 聚类单变量时间序列

Python 文本分类错误 - 预期字符串或类似字节的对象

c++ - C++中的15种类型分类是什么?

python - 使用 scikit-learn 对银行交易的多个输出进行分类

c# - 如何处理 System.IndexOutOfRangeException

python - 从 GridSearchCV 中为 cross_val_predict 提取最佳管道

machine-learning - Eps、DBSCAN 中哪些点算数

python - 导出 sklearn 模型以在 R 中运行

machine-learning - 如何调整最大熵的参数?