使用Word2Vec生成词嵌入后做KMeans聚类遇警告的解决咨询
解决KMeans聚类的两个警告问题
1. 处理n_init参数的FutureWarning
这个警告提示n_init的默认值将在scikit-learn 1.4版本从10改为'auto',只需显式指定n_init参数值就能消除警告:
- 若想沿用当前默认的10次初始化:
from sklearn.cluster import KMeans # 显式设置n_init=10 kmeans = KMeans(n_clusters=你的聚类数, n_init=10, random_state=42) kmeans.fit(你的词嵌入数据)
- 若想提前适配新版本的默认行为,可设置
n_init='auto':
kmeans = KMeans(n_clusters=你的聚类数, n_init='auto', random_state=42)
2. 处理Windows MKL的内存泄漏警告
这个警告说明Windows环境下使用MKL时,KMeans存在潜在内存泄漏问题,解决方式是设置环境变量OMP_NUM_THREADS=1,有两种实现方式:
方式一:在Notebook内临时设置
在导入任何sklearn模块之前执行以下代码:
import os os.environ['OMP_NUM_THREADS'] = '1' # 之后再导入KMeans from sklearn.cluster import KMeans
方式二:系统层面永久设置
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」,输入:
- 变量名:
OMP_NUM_THREADS - 变量值:
1
- 变量名:
- 点击确定保存,重启Jupyter Notebook后生效
内容的提问来源于stack exchange,提问作者Mrunmay Mete
相关产品推荐
相关产品推荐

