调用KMeans出现init() got an unexpected keyword argument 'n_jobs'的问题如何解决
时间: 2023-07-29 20:14:38 浏览: 260
这个问题通常是因为你的 scikit-learn 版本过低导致的。`n_jobs` 参数是在 scikit-learn 0.18 版本中引入的,如果你的版本过低则无法识别该参数。
解决方法是将 scikit-learn 升级到最新版本,可以使用以下命令:
```
pip install -U scikit-learn
```
如果已经安装了最新版本,仍然出现该问题,则可能是你的代码中使用了过时的参数或者调用方式。可以参考官方文档对代码进行更新。
相关问题
TypeError: KMeans.__init__() got an unexpected keyword argument n_jobs
非常抱歉,我的回答还是有误。在`sklearn.cluster`中的`KMeans`类确实没有`n_jobs`参数。如果你想要设置并行计算的数量,可以使用`joblib`库中的`Parallel`和`delayed`函数来实现并行化计算。具体的代码如下:
```
from sklearn.cluster import KMeans
from joblib import Parallel, delayed
kmodel = KMeans(n_clusters=k)
# 将fit方法并行化
Parallel(n_jobs=1, backend='multiprocessing')(delayed(kmodel.fit)(data) for data in data_list)
```
这里使用`Parallel`函数将`fit`方法并行化,`n_jobs`参数指定了并行计算任务数量,`delayed`函数用于将`fit`方法封装成一个可调用的函数,并对数据列表中的每个数据调用一次`fit`方法。
希望这次回答能够解决你的问题,如有疑问,请随时提出。
解决TypeError: KMeans.init() got an unexpected keyword argument 'n_jobs'
这个错误可能是因为您正在使用的 Scikit-learn 版本不支持 `n_jobs` 参数。`n_jobs` 参数在 Scikit-learn 的版本 0.18 中引入,如果您的版本低于此版本,则会出现此错误。
要解决此问题,您可以升级 Scikit-learn 到最新版本(建议),或者使用不使用 `n_jobs` 参数的旧版本 KMeans 初始化方法。例如:
```python
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, init='k-means++', max_iter=300)
```
在这个例子中,我们使用了旧版本的 KMeans 初始化方法,并且没有使用 `n_jobs` 参数。
阅读全文