コード例 #1
0
ファイル: test_gridsearch.py プロジェクト: NobodyWHU/milk
def test_gridminimise_return():
    from milksets.wine import load
    features,labels = load()
    learner = fast_classifier()
    gridminimise(learner, features, labels, { 'ignore' : [0] })
    _,error = gridminimise(learner, features, labels, { 'ignore' : [0] }, return_value=True, nfolds=5)
    cmat,_ = milk.nfoldcrossvalidation(features, labels, learner=learner, nfolds=5)
    assert error == cmat.sum()-cmat.trace()
コード例 #2
0
ファイル: test_gridsearch.py プロジェクト: zoe7791/milk
def test_gridminimise_return():
    from milksets.wine import load
    features, labels = load()
    learner = fast_classifier()
    gridminimise(learner, features, labels, {'ignore': [0]})
    _, error = gridminimise(learner,
                            features,
                            labels, {'ignore': [0]},
                            return_value=True,
                            nfolds=5)
    cmat, _ = milk.nfoldcrossvalidation(features,
                                        labels,
                                        learner=learner,
                                        nfolds=5)
    assert error == cmat.sum() - cmat.trace()
コード例 #3
0
ファイル: test_gridsearch.py プロジェクト: zoe7791/milk
def test_gridminimise():
    features = np.arange(100)
    labels = np.tile((0, 1), 50)
    paramspace = {
        'a': np.arange(4),
        'b': np.arange(-3, 3),
        'c': np.linspace(2., 10)
    }
    best, value = gridminimise(simple_learner(),
                               features,
                               labels,
                               paramspace,
                               measure=(lambda _, p: p[0]),
                               return_value=True)
    best = dict(best)
    val = f(best['a'], best['b'], best['c'])
    assert value == val * 100
    for a in np.arange(4):
        for b in np.arange(-3, 3):
            for c in np.linspace(2., 10):
                assert val <= f(a, b, c)
    gs = gridsearch(simple_learner(),
                    paramspace,
                    measure=(lambda _, p: p[0]),
                    annotate=True)
    model = gs.train(features, labels)
    assert model.value == value
    assert model.arguments == val
コード例 #4
0
ファイル: test_gridsearch.py プロジェクト: zoe7791/milk
def test_gridminimise():
    from milksets.wine import load
    features, labels = load()
    x = gridminimise(milk.supervised.svm_simple(kernel=np.dot, C=2.),
                     features[::2], labels[::2] == 0, {'C': (0.5, )})
    cval, = x
    assert cval == ('C', .5)
コード例 #5
0
ファイル: test_gridsearch.py プロジェクト: mpsampat/milk
def test_gridminimise():
    features = np.arange(100)
    labels = np.tile((0,1), 50)
    best = gridminimise(simple_learner(), features, labels, {'a': np.arange(4), 'b' : np.arange(-3,3), 'c' : np.linspace(2., 10) }, measure=(lambda _, p: p[0]))
    best = dict(best)
    val = f(best['a'], best['b'], best['c'])
    for a in np.arange(4):
        for b in np.arange(-3,3):
            for c in np.linspace(2., 10):
                assert val <= f(a,b,c)
コード例 #6
0
ファイル: test_gridsearch.py プロジェクト: NobodyWHU/milk
def test_gridminimise():
    features = np.arange(100)
    labels = np.tile((0,1), 50)
    paramspace = { 'a': np.arange(4), 'b' : np.arange(-3,3), 'c' : np.linspace(2., 10) }
    best,value = gridminimise(simple_learner(), features, labels, paramspace, measure=(lambda _, p: p[0]), return_value=True)
    best = dict(best)
    val = f(best['a'], best['b'], best['c'])
    assert value == val*100
    for a in np.arange(4):
        for b in np.arange(-3,3):
            for c in np.linspace(2., 10):
                assert val <= f(a,b,c)
    gs = gridsearch(simple_learner(), paramspace, measure=(lambda _, p: p[0]), annotate=True)
    model = gs.train(features, labels)
    assert model.value == value
    assert model.arguments == val
コード例 #7
0
    def train(self, features, labels, **kwargs):
        from milk.supervised.gridsearch import gridminimise
        c_features = np.concatenate([f for f, _ in features if len(f)])
        c_features = c_features[::self.sample]
        nprocs = parallel.get_procs(use_current=True)
        tow = multiprocessing.Queue()
        fromw = multiprocessing.Queue()
        for k in self.ks:
            for ri in xrange(self.rmax):
                tow.put((k, ri))
        for i in xrange(nprocs):
            tow.put(('shutdown', None))
        workers = [
            kmeans_cluster(c_features, tow, fromw) for i in xrange(nprocs)
        ]
        for w in workers:
            if nprocs > 1:
                w.start()
            else:
                w.execute()
        try:
            codebooks = [fromw.get() for i in xrange(len(self.ks) * self.rmax)]
        finally:
            tow.close()
            tow.join_thread()
            if nprocs > 1:
                for w in workers:
                    w.join()
            parallel.release_procs(len(workers), count_current=True)

        base = codebook_learner(self.base)
        base.normalise = self.normalise
        if len(codebooks) > 1:
            (best, ) = gridminimise(base,
                                    features,
                                    labels, {'codebook': codebooks},
                                    nfolds=self.nfolds)
            _, codebook = best
        else:
            (codebook, ) = codebooks
        base.codebook = codebook
        return base.train(features, labels)
コード例 #8
0
ファイル: precluster.py プロジェクト: chanov/robomow
    def train(self, features, labels, **kwargs):
        from milk.supervised.gridsearch import gridminimise

        c_features = np.concatenate([f for f, _ in features if len(f)])
        c_features = c_features[:: self.sample]
        nprocs = parallel.get_procs(use_current=True)
        tow = multiprocessing.Queue()
        fromw = multiprocessing.Queue()
        for k in self.ks:
            for ri in xrange(self.rmax):
                tow.put((k, ri))
        for i in xrange(nprocs):
            tow.put(("shutdown", None))
        workers = [kmeans_cluster(c_features, tow, fromw) for i in xrange(nprocs)]
        for w in workers:
            if nprocs > 1:
                w.start()
            else:
                w.execute()
        try:
            codebooks = [fromw.get() for i in xrange(len(self.ks) * self.rmax)]
        finally:
            tow.close()
            tow.join_thread()
            if nprocs > 1:
                for w in workers:
                    w.join()
            parallel.release_procs(len(workers), count_current=True)

        base = codebook_learner(self.base)
        base.normalise = self.normalise
        if len(codebooks) > 1:
            (best,) = gridminimise(base, features, labels, {"codebook": codebooks}, nfolds=self.nfolds)
            _, codebook = best
        else:
            (codebook,) = codebooks
        base.codebook = codebook
        return base.train(features, labels)
コード例 #9
0
ファイル: test_gridsearch.py プロジェクト: NobodyWHU/milk
def test_gridminimise():
    from milksets.wine import load
    features, labels = load()
    x = gridminimise(milk.supervised.svm_simple(kernel=np.dot, C=2.), features[::2], labels[::2] == 0, {'C' : (0.5,) })
    cval, = x
    assert cval == ('C', .5)