代码来源:北京理工pythong机器学习公开课。网址https://www.bilibili.com/video/av71711733?p=5。数据集是我自己找的。
import numpy as np
from sklearn.cluster import KMeans
def loadData(filePath):
fr = open(filePath,'r+')
lines = fr.readlines()
retData = []
retCompanyName = []
for line in lines:
items = line.strip().split(",")
retCompanyName.append(items[0])
retData.append([float(items[i])
for i in range(1,len(items))])
return retData,retCompanyName
if __name__=='__main__':
data,companies=loadData('travel insurance.csv')
km=KMeans(n_clusters=3)
label = km.fit_predict(data)
expenses = np.sum(km.cluster_centers_,axis=1)
CompanyCluster = [[],[],[]]
for i in range(len(companies)):
CompanyCluster[label[i]].append(companies[i])
for i in range(len(CompanyCluster)):
print("Expenses.%.2f" %expenses[i])
print(CompanyCluster[i])
报错内容:
Traceback (most recent call last):
File "G:/Studying/Shtrathclyde/All Python/BDT/Diagram Test.py", line 20, in
label = km.fit_predict(data)
File "D:\software_for_class\Anaconda\lib\site-packages\sklearn\cluster\k_means_.py", line 995, in fit_predict
return self.fit(X, sample_weight=sample_weight).labels_
File "D:\software_for_class\Anaconda\lib\site-packages\sklearn\cluster\k_means_.py", line 969, in fit
return_n_iter=True)
File "D:\software_for_class\Anaconda\lib\site-packages\sklearn\cluster\k_means_.py", line 309, in k_means
order=order, copy=copy_x)
File "D:\software_for_class\Anaconda\lib\site-packages\sklearn\utils\validation.py", line 558, in check_array
context))
ValueError: Found array with 0 feature(s) (shape=(1, 0)) while a minimum of 1 is required.
Process finished with exit code 1