我在我的机器上成功使用了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 回答
只是作为参数传递
解决了这个问题 .