我在这里理解这个错误信息时遇到了一些麻烦......
我最近在我的一些数据上使用了sklearn机器学习工具。我已经尝试使用以下代码输出我的数据的Silhouette系数:
distmat = []
for row in distmat_csv:
distmat.append(row[1:])
in_distmat.close()
distmat_array = np.array(distmat, dtype=object)
print distmat_array
out_metricsfile = open('Influenza A All Subtypes Human Strains %s in %s Clustering Metrics.txt' % (name1, name2), 'w+')
out_metricsfile.write('%s in %s Clustering Metrics \n' % (name1, name2))
out_metricsfile.write('Estimated number of clusters: %d \n' % n_clusters)
out_metricsfile.write("Silhouette Coefficient: %0.3f \n"
% metrics.silhouette_score(distmat_array, labels, metric='precomputed'))
out_metricsfile.close()
distmat数组只是我从CSV文件中读取的一系列数字。它看起来像这样:
[[0.000000 0.614841 0.613074 ..., 0.007067 0.007067 0.010601]
[0.614841 0.000000 0.012367 ..., 0.616608 0.613074 0.611307]
[0.613074 0.012367 0.000000 ..., 0.614841 0.611307 0.609541]
...,
[0.007067 0.616608 0.614841 ..., 0.000000 0.010601 0.014134]
[0.007067 0.613074 0.611307 ..., 0.010601 0.000000 0.010601]
[0.010601 0.611307 0.609541 ..., 0.014134 0.010601 0.000000]]
返回的错误消息如下所示:
Traceback (most recent call last):
File "script9-perform-affinity-propagation-and-display.py", line 92, in <module>
% metrics.silhouette_score(distmat_array, labels, metric='precomputed'))
File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 84, in silhouette_score
return np.mean(silhouette_samples(X, labels, metric=metric, **kwds))
File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 146, in silhouette_samples
for i in range(n)])
File "/Library/Python/2.7/site-packages/scikit_learn-0.13.1-py2.7-macosx-10.8-intel.egg/sklearn/metrics/cluster/unsupervised.py", line 176, in _intra_cluster_distance
a = np.mean(distances_row[mask])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/fromnumeric.py", line 2374, in mean
return mean(axis, dtype, out)
TypeError: unsupported operand type(s) for /: 'str' and 'float'
我坚持理解错误信息。我怎么知道我哪里出错了?如果有人善意的话,我在哪里出错?
答案 0 :(得分:0)
好的......所以我确实找出了问题所在。通过将“dtype”从“object”更改为“float”,问题就解决了......