Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 scikit学习随机森林永远无法完成训练,冻结_Python_Multithreading_Scikit Learn_Random Forest - Fatal编程技术网

Python scikit学习随机森林永远无法完成训练,冻结

Python scikit学习随机森林永远无法完成训练,冻结,python,multithreading,scikit-learn,random-forest,Python,Multithreading,Scikit Learn,Random Forest,我试图在ubuntu 14.04.-服务器机器上使用scikit learn来适应随机森林模型。我的数据的形状为(150000,270)verbose=10输出如下所示: 建筑树1/10 [并行(n|u作业=1)]:完成1次(共1次)已用时间:剩余6.1秒:0.0秒 建筑树2/10 [并行(n|u作业=1)]:完成2次(共2次)已用时间:剩余12.2秒:0.0秒 建筑树3/10 [并行(n_作业=1)]:完成3次,共3次已用时间:剩余18.3秒:0.0秒 建筑树4/10 [并行(n|u作业=1)

我试图在ubuntu 14.04.-服务器机器上使用scikit learn来适应随机森林模型。我的数据的形状为(150000,270)
verbose=10
输出如下所示:

建筑树1/10 [并行(n|u作业=1)]:完成1次(共1次)已用时间:剩余6.1秒:0.0秒 建筑树2/10 [并行(n|u作业=1)]:完成2次(共2次)已用时间:剩余12.2秒:0.0秒 建筑树3/10 [并行(n_作业=1)]:完成3次,共3次已用时间:剩余18.3秒:0.0秒 建筑树4/10 [并行(n|u作业=1)]:完成4次,共4次;已用时间:剩余24.9秒:0.0秒 构建树5/10 [并行(n_作业=1)]:完成5次(共5次)已用时间:剩余32.1秒:0.0秒 构建树6/10 [并行(n|u作业=1)]:完成6次(共6次)运行时间:剩余38.5秒:0.0秒 建筑树第7页,共10页 [并行(n|u作业=1)]:完成7次,共7次;已用时间:剩余45.3秒:0.0秒 建筑树第8页,共10页 [并行(n_作业=1)]:完成了8个作业中的8个;已用时间:52.0秒剩余时间:0.0秒 第9页,共10页 [并行(n|u作业=1)]:完成9次(共9次)耗时:剩余58.5秒:0.0秒 构建树10/10 [并行(n_作业=1)]:完成10次中的10次|经过:完成1.1分钟

在此之后,它会悬挂/冻结数小时。我尝试改变
n_作业
n_估计量
参数,以降低模型的复杂性/防止
n_作业的线程问题
。这没有帮助

我的模型如下所示:
随机森林回归器(随机状态=1234,n作业=1,n估计=10,最小样本数分裂=2,最小样本数叶子=1,详细度=10)

我读了很多关于BLAS/MKL线程问题的书,并尝试设置环境变量

os.environ['MKL\u NUM\u THREADS']=“1”

os.environ['OMP\u NUM\u THREADS']=“1”

os.environ['NUMEXPR\u NUM\u THREADS']=“1”

os.environ['JOBLIB\u START\u METHOD']='forkserver'

但它们都没有帮助。模特儿无法完成训练。 我的脚本与此结构类似:

import packages/libraries

## load data 
## define model
## fit model
## predict on new data
有没有人经历过相同/不同的事情


提前谢谢

似乎是内存问题

我建议分析程序运行时使用的内存量


也许试着用数据集中的10个样本运行它,看看它是否运行到完成

只是一个建议:可能一个有用的诊断方法是首先在较小的样本量上运行代码,比如15000或1500个示例。数据的大小没有帮助。我已经试过不同的尺寸,越来越小,越来越大…似乎有一种线程问题,导致任何锁或其他。。。。我在没有设置任何环境变量和
n_jobs=-1
的情况下进行了尝试,它确实工作得很好,但使用了所有可用的内核。。。如何限制使用的核心数量?只需设置
n_jobs=4
或任何其他整数,脚本只需使用一个核心即可;多处理。set_start_方法('forkserver')在运行或导入任何内容之前,在代码顶部。。它解决了问题吗?遗憾的是,这并没有改变任何事情。在htop中,我使用了10GB的RAM,相当于总内存的5%。。。。我不认为这是一个内存问题,因为我可以访问的服务器的资源非常巨大。。。