赞
踩
def computeSSE(center_point, cluster):
estimator = 0
for i in cluster:
if len(cluster[i]) != 0:
for point in cluster[i]:
estimator += (matrix[0][point] - center_point[i][0]) ** 2 + (matrix[1][point] - center_point[i][1]) ** 2
return estimator
for i in lines:
for j in lines:
i and j iterate over the elements of lines, not the indices. That means i and j are always lists, entire lines of numbers.
If you want to go over the indices (usually you don’t, but it may be the best option here), you want
for i in range(len(lines)):
for j in range(len(lines[i])):
This is awkward by design, as the Python designers want people to default to iterating over the elements of a sequence.
Also, note that your loop tries to access elements of lines before the first row and before the first column. Perhaps you want to start your loops on the second row and column.
修改后
def computeSSE(centroids, cluster):
estimator = 0
for i in range(len(cluster)):
if len(cluster[i]) != 0:
for j in range(len(cluster[i])):
estimator += (cluster[i][j][0] - centroids[i][0]) ** 2 + (
cluster[i][j][1] - centroids[i][1]) ** 2
return estimator
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。