def main(resfile=None): DATADIR = '../dataset' def ftrain(name): return path.join(DATADIR, '{}-train.txt'.format(name)) def ftest(name): return path.join(DATADIR, '{}-test.txt'.format(name)) for fname in ['sonar', 'splice']: traindataMat, traintagMat = loadData(ftrain(fname)) testdataMat, testtagMat = loadData(ftest(fname)) traindataMat, testdataMat = norm(traindataMat, testdataMat) for dims in [10, 20, 30]: timestamp = time.time() projectionMat = pca(traindataMat, dims) # 投影 traindataMat_proj = traindataMat * projectionMat testdataMat_proj = testdataMat * projectionMat accuracy = _1NN(traindataMat_proj, testdataMat_proj, traintagMat, testtagMat) print("(PCA on %s)当维度为%d时,正确率为:" % (fname, dims), accuracy) print('time used:', time.time() - timestamp, 's') if resfile != None: resfile.write('PCA(norm), %s, k = %d, %.16f\n' % (fname, dims, accuracy))
def main(resfile=None): DATADIR = '../dataset' def ftrain(name): return path.join(DATADIR, '{}-train.txt'.format(name)) def ftest(name): return path.join(DATADIR, '{}-test.txt'.format(name)) for fname, KNN_K in {'sonar': 6, 'splice': 4}.items(): traindataMat, traintagMat = loadData(ftrain(fname)) testdataMat, testtagMat = loadData(ftest(fname)) for dims in [10, 20, 30]: timestamp = time.time() dataMat_dimReduced = isomap(vstack([traindataMat, testdataMat]), dims, KNN_K) accuracy = _1NN( dataMat_dimReduced[range(0, len(traindataMat)), :], dataMat_dimReduced[ range(len(traindataMat), len(dataMat_dimReduced)), :], mat(traintagMat), mat(testtagMat)) print("(ISOMAP on %s(%d-NN))当维度为%d时,正确率为:" % (fname, KNN_K, dims), accuracy) print("time used:", time.time() - timestamp, 's') if resfile != None: resfile.write('ISOMAP, %s(%d-NN), k = %d, %.16f\n' % (fname, KNN_K, dims, accuracy))