kmodel = KMeans(n_clusters=k, n_jobs=1) 。 TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs'这个问题的具体解决办法
时间: 2024-03-27 13:36:06 浏览: 113
这个问题的具体解决办法是将参数`n_jobs`修改为`n_jobs_`,因为sklearn中的KMeans类并不支持`n_jobs`参数,而是使用`n_jobs_`参数来控制并行计算的数量。所以你需要将代码修改为:
```
kmodel = KMeans(n_clusters=k, n_jobs_=1)
```
这样就可以避免`TypeError`错误了。
相关问题
kmodel = KMeans(n_clusters=k, n_jobs=1) 。TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs'这个问题怎么解决
这个问题可能是因为您使用的版本的 scikit-learn 库不支持 `n_jobs` 参数。在 scikit-learn 0.23 版本之前,`KMeans` 类没有 `n_jobs` 参数。要解决这个问题,您可以尝试以下两种方法之一:
1. 更新 scikit-learn 库的版本。如果您的 scikit-learn 版本低于 0.23 版本,则可以通过升级到最新版本来解决问题。您可以使用以下命令在终端或命令提示符中更新 scikit-learn:
```
pip install --upgrade scikit-learn
```
2. 不使用 `n_jobs` 参数。如果升级 scikit-learn 不可行,您可以尝试不使用 `n_jobs` 参数。只需将 `n_jobs` 参数从 `KMeans` 类的初始化中删除即可:
```
kmodel = KMeans(n_clusters=k)
```
这将消除警告并确保代码在将来的版本中正常工作。
kmodel = KMeans(n_clusters=k, n_jobs_=1) # n_jobs是并行数,一般等于CPU数较好 TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs_'
非常抱歉,我的上一条回答有误。在`sklearn.cluster`中的`KMeans`类确实没有`n_jobs_`参数。如果你想要设置并行计算的数量,可以在实例化`KMeans`类时设置`n_jobs`参数:
```
kmodel = KMeans(n_clusters=k, n_jobs=1)
```
如果你仍然遇到`TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs'`的错误,可能是因为你的`sklearn`版本太旧,不支持`n_jobs`参数。建议你升级到最新版本的`scikit-learn`,或者将参数`n_jobs`设置为`None`,以使用默认的单线程计算:
```
kmodel = KMeans(n_clusters=k, n_jobs=None)
```
希望这次回答能够帮到你,如有疑问,请随时提出。
阅读全文