学习慕课python聚类测试,出现了float() argument must be a string or a number, not 'list’的错误。
正确的可运行程序如下:
import numpy as np#导入numpy库
from sklearn.cluster import KMeans#导入K-means库进行聚类算法
def loadData(filePath):
fr = open(filePath,'r+',encoding='UTF-8')
lines = fr.readlines()
retData = []
retCityName = []
for line in lines:
items = line.strip().split(",")
retCityName.append(items[0])
retData.append([float(items[i]) for i in range(1,len(items))])
return retData,retCityName
if __name__ == '__main__':
data,cityName = loadData('H:/pythonlianxi/city.txt')#读取数据文件
km = KMeans(n_clusters=4)#分成4个簇,进行聚类
label = km.fit_predict(data)#聚类后各数据所属的标签
expenses = np.sum(km.cluster_centers_,axis=1)
#print(expenses)
CityCluster = [[],[],[],[]]
for i in range(