在Scikit-Learn

时间:2017-05-30 09:27:54

标签: scikit-learn

我在我的机器上成功使用了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 :(得分:0)

只是作为参数传递

  

n_jobs = -1

解决了这个问题。