[问题背景]
假定有这样的数据集,txt格式,ANSI编码:
YZN,133,108,76
ZHY,96,145,101
WYZ,132,107,60
DHY,100,102,120
CYH,139,99,93
LHY,73,149,81
ZHY,85,148,93
TQP,39,138,85
ZZL,145,112,71
HJC,101,116,118
XZY,99,98,117
每行第一列是学生姓名,第二列是语文成绩,第三列是数学成绩,第四列是英语成绩。
目标是利用KMeans对学生进行聚类,例如聚成3类。
[问题分析]
数据预处理:
def loadData(filePath):
fr = open(filePath, 'r+')
lines = fr.readlines()
retName = []
retData = []
for line in lines:
items = line.strip().split(',')
retName.append(items[0])
retData.append([float(items[i]) for i in range(1,len(items))])
return retName, retData
编写loadData()函数,作用是传入grade.txt,传出两个列表:
Name = ['YZN', 'ZHY', 'WYZ