gpt4 book ai didi

python - SciKit-Learn:使用随机森林时出现 Joblib 异常

转载 作者:行者123 更新时间:2023-11-30 08:59:49 26 4
gpt4 key购买 nike

我正在尝试做一些机器学习。我正在尝试预测一篇文章的参与时间。我的 X 数据集如下:

    _text_word_length   _title_char_length  _title_word_length  _text_char_length
0 1306 53 7 8056
1 1075 62 11 6127

我的目标 Y 值只是代表参与时间的 float 。

我按如下方式使用 SciKit-Learn:

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import cross_val_score, KFold
import numpy as np
clf = RandomForestRegressor(n_jobs=-1, n_estimators=250, max_features = 0.8, verbose = 2)
score = cross_val_score(estimator = clf, X = X1, y = Y1, cv = KFold(n_splits = 5, random_state = 100), n_jobs = -1, \
scoring = "neg_mean_squared_error")
np.mean([np.sqrt(-x) for x in score])

因为我使用的是详细模式,所以它输出随机森林的所有树。它几乎穿过了所有的树,然后我得到了这个:

JoblibException: JoblibException
___________________________________________________________________________
Multiprocessing exception:

然后有大量的文本(不会在这里复制,但可以根据要求复制)。最后,我看到了这一点:

ValueError: I/O operation on closed file

我完全迷失了,因为昨天的代码非常相似,所以我不确定我做错了什么。

有什么想法吗?

谢谢!

最佳答案

你能尝试下面的方法吗?因此,将所有代码放在 if name =='main' 之后,并使用适当的缩进。

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import cross_val_score, KFold
import numpy as np

if __name__ =='main':

clf = RandomForestRegressor(n_estimators=250, max_features = 0.8, verbose = 2)
score = cross_val_score(estimator = clf, X = X1, y = Y1, cv = KFold(n_splits = 5, random_state = 100), n_jobs = -1,scoring = "neg_mean_squared_error")
np.mean([np.sqrt(-x) for x in score])

请注意1) 在cross_val_score中评分=..之前应该有一个逗号而不是一个切片(/)

2) 在 cross_val_score 中仅使用一次 n_jobs =-1

关于python - SciKit-Learn:使用随机森林时出现 Joblib 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com