如何解决使用稀疏矩阵错误计算Silhouette_score或silhouette_samples
这是我的代码:
prediction = DBSCAN(metric='precomputed').fit_predict(mat)
score = silhouette_score(mat,prediction,metric="precomputed")
samples = silhouette_samples(mat,metric="precomputed")
当我将稀疏矩阵传递给Silhouette_score / silhouette_samples时,出现以下错误:
File "C:\anaconda3\lib\site-packages\sklearn\metrics\cluster\_unsupervised.py",line 218,in silhouette_samples
if np.any(np.abs(np.diagonal(X)) > atol):
File "<__array_function__ internals>",line 6,in diagonal
File "C:\anaconda3\lib\site-packages\numpy\core\fromnumeric.py",line 1629,in diagonal
return asanyarray(a).diagonal(offset=offset,axis1=axis1,axis2=axis2)
ValueError: diag requires an array of at least two dimensions
当我使用mat.todense()方法将矩阵a转换为密集矩阵时,所有矩阵均按预期工作。有没有办法使它与稀疏矩阵一起工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。