一、错误提示
kmeans = MiniBatchKMeans(n_clusters= i, batch_size=40, random_state=33) kmeans.fit(pcm_energys) #报错点
二、原因分析
网查了好多资料大致分为这几种情况:
- 输入到模型里的数据没严格转换成 np.arry()形式,
- 矩阵没对齐,个别行成员数量与其他不一致等。
- 数据dtype不对或者说不一致,应该统一成 np.float64, int或者其他。
第一种情况举例:
这里要求是彻底的转换,不含嵌套,比如arry([[list([12.0, 25.0, 32.0, 47.0, 54.0, 66.0]), list([20.0, 21.0, 36.0, 41.0, 53.0, 69.0])]), 这种情况不彻底,会继续报错。
应该转换成:arry([[12.0, 25.0, 32.0, 47.0, 54.0, 66.0], [20.0, 21.0, 36.0, 41.0, 53.0, 69.0]].
三、问题处理
本人为第二种情况,通过打印数据维度,发现输入的值的维度不一致。剔除掉维度不一致的数据即可。