1
我正在做一个关于机器学习分类任务的模型评估技术的论文,我使用了一些sklearn模型,因为我可以写大部分的通用代码,因为我有很多不同的数据集。 Sklearns模型输出的一部分是predict_proba
,其中概率估计值。对于有大量数据点的大型数据集,要计算每个数据点的predict_proba
需要很长时间。我装了htop
看到蟒蛇仅使用计算单核,所以我写了以下功能:Python和Sklearn更快的计算时间
from joblib import Parallel, delayed
import multiprocessing
num_cores = multiprocessing.cpu_count()
def makeprob(r,first,p2,firstm):
reshaped_r = first[r].reshape(1,p2)
probo = clf.predict_proba(reshaped_r)
probo = probo.max()
print('Currently at %(perc)s percent' % {'perc': (r/firstm)*100})
return probo
# using multiple cores to run the function 'makeprob'
results = Parallel(n_jobs=num_cores)(delayed(makeprob)(r,first,p2,firstm) for r in range(firstm))
现在我htop
看到正在使用的所有内核,速度高达为显著,但不接近我想要的速度,如果有人知道加快速度的方法,或者指向正确的方向,以便在这种情况下获得更快的计算增益,那将会很好。