MCPcopy Create free account
hub / github.com/Dod-o/Statistical-Learning-Method_Code / model_test

Function model_test

KNN/KNN.py:123–157  ·  view source on GitHub ↗

测试正确率 :param trainDataArr:训练集数据集 :param trainLabelArr: 训练集标记 :param testDataArr: 测试集数据集 :param testLabelArr: 测试集标记 :param topK: 选择多少个邻近点参考 :return: 正确率

(trainDataArr, trainLabelArr, testDataArr, testLabelArr, topK)

Source from the content-addressed store, hash-verified

121
122
123def model_test(trainDataArr, trainLabelArr, testDataArr, testLabelArr, topK):
124 '''
125 测试正确率
126 :param trainDataArr:训练集数据集
127 :param trainLabelArr: 训练集标记
128 :param testDataArr: 测试集数据集
129 :param testLabelArr: 测试集标记
130 :param topK: 选择多少个邻近点参考
131 :return: 正确率
132 '''
133 print('start test')
134 #将所有列表转换为矩阵形式,方便运算
135 trainDataMat = np.mat(trainDataArr); trainLabelMat = np.mat(trainLabelArr).T
136 testDataMat = np.mat(testDataArr); testLabelMat = np.mat(testLabelArr).T
137
138 #错误值技术
139 errorCnt = 0
140 #遍历测试集,对每个测试集样本进行测试
141 #由于计算向量与向量之间的时间耗费太大,测试集有6000个样本,所以这里人为改成了
142 #测试200个样本点,如果要全跑,将行注释取消,再下一行for注释即可,同时下面的print
143 #和return也要相应的更换注释行
144 # for i in range(len(testDataMat)):
145 for i in range(200):
146 # print('test %d:%d'%(i, len(trainDataArr)))
147 print('test %d:%d' % (i, 200))
148 #读取测试集当前测试样本的向量
149 x = testDataMat[i]
150 #获取预测的标记
151 y = getClosest(trainDataMat, trainLabelMat, x, topK)
152 #如果预测标记与实际标记不符,错误值计数加1
153 if y != testLabelMat[i]: errorCnt += 1
154
155 #返回正确率
156 # return 1 - (errorCnt / len(testDataMat))
157 return 1 - (errorCnt / 200)
158
159
160

Callers 1

KNN.pyFile · 0.70

Calls 1

getClosestFunction · 0.85

Tested by

no test coverage detected