Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一个巨大的数据集上运行gridsearchcv有什么推荐的策略吗?_Python_Scikit Learn_Cross Validation_Svc_Grid Search - Fatal编程技术网

Python 在一个巨大的数据集上运行gridsearchcv有什么推荐的策略吗?

Python 在一个巨大的数据集上运行gridsearchcv有什么推荐的策略吗?,python,scikit-learn,cross-validation,svc,grid-search,Python,Scikit Learn,Cross Validation,Svc,Grid Search,我试图在一个大约30万条记录的巨大数据集上评估svm。这是一个具有23个特性的多类问题。目前,gridsearchcv迭代参数需要很长时间。有没有加快这一进程的策略?我猜.300万条记录是一个合理的数字,我很困惑CPU使用率没有超过30%,RAM使用率被限制在50%。 我将n_作业设置为-1,并按照文档中的建议将pre_dispatch=1。没有什么变化。根据我的输入,我预计总共需要24次迭代。这是我的示例代码 from sklearn.multiclass import OneVsRestCl

我试图在一个大约30万条记录的巨大数据集上评估svm。这是一个具有23个特性的多类问题。目前,gridsearchcv迭代参数需要很长时间。有没有加快这一进程的策略?我猜.300万条记录是一个合理的数字,我很困惑CPU使用率没有超过30%,RAM使用率被限制在50%。 我将n_作业设置为-1,并按照文档中的建议将pre_dispatch=1。没有什么变化。根据我的输入,我预计总共需要24次迭代。这是我的示例代码

from sklearn.multiclass import OneVsRestClassifier
from sklearn.grid_search import GridSearchCV
from sklearn import svm
model_to_set = OneVsRestClassifier(svm.SVC())

parameters = {
    "estimator__C": [1,2,4,8],
    "estimator__kernel": ["poly","rbf","linear"],
    "estimator__degree":[1, 2, 3, 4],
}

model_tunning = GridSearchCV(model_to_set, param_grid=parameters,n_jobs=-1,pre_dispatch=1,
                             scoring='f1')

model_tunning.fit(mat[1:23], mat[0])

非常感谢您的帮助。

“CPU使用率没有超过30%”-您的Python进程是否使用多个内核?是的,n_jobs=-1不会处理这个问题吗?或者我还需要为此做些什么?在进程运行时,您是否实际观察了您的CPU利用率,例如使用
htop
?某些模块可能会干扰CPU相关性(例如)。当我使用随机林分类器运行相同的代码时,我的利用率会达到~100%,正如我在任务管理器中看到的那样,因此我所关注的位置应该不是问题。