小编Eoi*_*igh的帖子

Python中更快的kNN算法

我想从头开始编写自己的kNN算法,原因是我需要权衡这些功能。问题是尽管删除了for循环并使用了内置的numpy功能,我的程序仍然非常慢。

谁能建议一种加快速度的方法?我不使用np.sqrtL2距离,因为这是不必要的,实际上会使速度大大降低。

class GlobalWeightedKNN:
    """
    A k-NN classifier with feature weights

    Returns: predictions of k-NN.
    """

    def __init__(self):
        self.X_train = None
        self.y_train = None
        self.k = None
        self.weights = None
        self.predictions = list()

    def fit(self, X_train, y_train, k, weights):        
        self.X_train = X_train
        self.y_train = y_train
        self.k = k
        self.weights = weights

    def predict(self, testing_data):
        """
        Takes a 2d array of query cases.

        Returns a list of predictions for k-NN classifier
        """

        np.fromiter((self.__helper(qc) for qc in testing_data), float)  
        return …
Run Code Online (Sandbox Code Playgroud)

python machine-learning knn

4
推荐指数
2
解决办法
3019
查看次数

标签 统计

knn ×1

machine-learning ×1

python ×1