一、錯誤提示
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]].
三、問題處理
本人為第二種情況,通過打印數據維度,發現輸入的值的維度不一致。剔除掉維度不一致的數據即可。