0

我在这里理解此错误消息时遇到了一些麻烦...

我最近一直在对我的一些数据使用 sklearn 机器学习工具。我尝试使用以下代码为我的数据输出轮廓系数:

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'

我一直在理解错误消息。我怎么知道我哪里出错了?如果有人足够友善,我在哪里出错了?

4

1 回答 1

0

好的...所以我实际上找出了问题所在。通过将“dtype”从“object”更改为“float”,问题就解决了……

于 2013-05-13T21:02:10.600 回答