首页 文章

KNearestNeighbour未在Scikit-Learn中以多线程运行

提问于
浏览
-1

我在我的机器上成功使用了scikit-learn . 我正在尝试anaconda实现(依赖于MKL进行多线程)和openblas实现 .

我真的很想使用并行版本的k-最近邻分类器,根据https://github.com/scikit-learn/scikit-learn/pull/4009,sklearn应该在1年前版本0.17中合并了这个更改 .

多线程可以成功地用于PCA和所有numpy操作 . 我可以告诉多线程正在工作,因为我在点产品和PCA时可以看到大量的线程 . 当我午餐KNN大概需要10分钟 . 我正在对MNIST的高维数据集(图像数字)进行分类 . 所以我正在做PCA以获得尺寸为35-50的向量,然后我正在进行非线性扩展,所以我得到了维度为600-100的向量 . 这就是为什么我需要并行性如此糟糕 .

我的sklearn版本是:

print('scikit-learn version is {} . ' . format(sklearn.version))scikit-learn版本为0.18.1 .

我正在使用python3,这是代码示例:

def classify_knn(train, test, train_labels):
    clf = KNeighborsClassifier(algorithm='ball_tree')
    clf = clf.fit(train, train_labels)
    return clf.predict(test)

我试过有没有'ball_tree' . 2017年没有人应该使用python 2.7,我也不会 .

1 回答

  • 0

    只是作为参数传递

    n_jobs = -1

    解决了这个问题 .

相关问题