kmodel = KMeans(n_clusters=k, n_jobs=1) # n_jobs是并行数,一般等于CPU数较好 TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs'
时间: 2024-03-27 09:36:10 浏览: 126
非常抱歉,我的回答还是有误。在`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`方法。
希望这次回答能够解决你的问题,如有疑问,请随时提出。
相关问题
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)
```
希望这次回答能够帮到你,如有疑问,请随时提出。
kmodel = KMeans(n_clusters=k, n_jobs=None) # n_jobs是并行数,一般等于CPU数较好 TypeError: KMeans.__init__() got an unexpected keyword argument 'n_jobs'
非常抱歉,我又犯了同样的错误。在`sklearn.cluster`中的`KMeans`类确实没有`n_jobs`参数。如果你想要设置并行计算的数量,可以使用`joblib`库,将`KMeans`类的`n_jobs`参数设置为-1,以使用所有可用的CPU核心:
```
from sklearn.cluster import KMeans
from joblib import Parallel, delayed
kmodel = KMeans(n_clusters=k, n_jobs=-1)
```
这个参数可以控制`fit`方法中的并行计算任务数量,但并不保证一定会使用所有CPU核心。`joblib`库可以根据可用的CPU核心数量自动调整计算任务的数量,以提高计算效率。
希望这次回答能够解决你的问题,如有疑问,请随时提出。
阅读全文