Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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))