2-4 分类器针对约会网站的测试代码
1. 算法思想
给一个测试数据个数在总数据m个中的比例,可以得到测试样本的个数n。假定前n个为测试集,则后m-n个为训练集进行计算。
2. 函数实现
# 测试数据集
def datingClassTest():
testRadio = 0.10 # 使用数据集的10%进行测试
datingDataMat, datingLabels = fileToMatrix('1.txt', 3)
normMat, ranges, minVals = autoNorm(datingDataMat)
# 样本个数
m = normMat.shape[0]
# 测试样本个数
numTestVecs = int(testRadio * m)
errorCount = 0.0
# 假设前numTestVecs个数据作为被测数据集,后m-numTestVecs数据作为训练集
for i in range(numTestVecs):
classifierResult = classifyByKnn(normMat[i, :], normMat[numTestVecs:m, :], datingLabels[numTestVecs:m], 3)
print('The classifier came back with : %d, the real answer is : %d' % (classifierResult, datingLabels[i]))
if classifierResult != datingLabels[i]:
errorCount += 1.0
print('The total error rate is : %f' % (errorC