Python在使用kmeans聚类函数时报错:AttributeError: ‘NoneType‘ object has no attribute ‘split‘

在聚类分析过程中,想通过绘制手肘图寻找最优k值时,使用到了KMeans()函数,当n_clusters=1,会发生报错:
……
File "D:\Anaconda\lib\site-packages\threadpoolctl.py", line 646, in get_version
    config = get_config().split()
AttributeError: 'NoneType' object has no attribute 'split'

代码片段:

from sklearn.cluster import KMeans

# 通过迭代确定k值
X1 = data[['Age', 'Spending Score (1-100)', 'Annual Income (k$)']].values # 转为数组形式
inertia = []

for n in range(1 , 11):
    algorithm = (KMeans(n_clusters = n ,init='k-means++', n_init = 10 ,max_iter=300, 
                        tol=0.0001,  random_state= 111  , algorithm='elkan') )
    algorithm.fit(X1)
    inertia.append(algorithm.inertia_)

报错原因:
新版 KMeans算法的 n_cluster必须是大于 1 的,当n_cluster=1,即聚类结果为1,那么失去了聚类的意义。

解决方案:

循环时,跳过n_cluster=1的情况,直接从2开始。

如上面代码中把:

for n in range(1 , 11):

改成

for n in range(2 , 12):

即可。

参考文章:AttributeError: ‘NoneType‘ object has no attribute ‘split‘问题解决方法-pudn.com

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
在进行聚类分析中,当使用KMeans()函数,如果将n_clusters参数设置为1,可能会出现报错信息:AttributeError: 'NoneType' object has no attribute 'split'。这个错误通常是由于在代码中使用了过的库版本或者库之间的兼容性问题导致的。 解决方法之一是尝试更新numpy和scikit-learn库的版本。你可以使用以下命令安装特定版本的numpy和scikit-learn: ``` pip install numpy==1.22.4 pip install sklearn==1.1.1 ``` 这样可以尝试解决问题,因为有候旧版本的库可能存在一些bug或兼容性问题。然后再运行代码,看看问题是否解决。 值得注意的是,这个解决方法只适用于部分情况。如果尝试后仍然没有解决问题,那么可能需要进一步检查代码逻辑,或者查找其他可能的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python使用kmeans聚类函数报错AttributeError: ‘NoneTypeobject has no attributesplit](https://blog.csdn.net/guigenyi/article/details/127317293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [AttributeError: ‘NoneTypeobject has no attributesplit‘问题解决方法](https://blog.csdn.net/weixin_46713695/article/details/125423346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

切糕师学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值