コード例 #1
0
ファイル: test_svm.py プロジェクト: narg95/goldenberry
    def test_basic_performance(self):
        data = orange.ExampleTable("iris.tab")

        tic = time.time()
        data = orange.ExampleTable("iris.tab")
        l1 = orngSVM.SVMLearner()
        l1.kernel_func = orngSVM.KernelWrapper(my_kernel)
        l1.kernel_type = orange.SVMLearner.Custom
        l1.probability = False
        c1 = l1(data)
        toc = time.time() - tic
        print "With Wrapper: %s" % toc

        tic = time.time()
        l1 = SvmLearner()
        l1.kernel = GbKernel(func=LinealKernel)
        l1.probability = False
        c1 = l1(data)
        toc = time.time() - tic
        print "Lambda Wrapper: %s" % toc

        tic = time.time()
        l1 = orngSVM.SVMLearner()
        l1.kernel_type = orange.SVMLearner.Linear
        l1.probability = False
        c1 = l1(data)
        toc = time.time() - tic
        print "Native Wrapper: %s" % toc
コード例 #2
0
ファイル: OWSVM.py プロジェクト: yisuax11/orange2
    def search_(self):
        learner=orngSVM.SVMLearner()
        for attr in ("name", "kernel_type", "degree", "shrinking", "probability", "normalization"):
            setattr(learner, attr, getattr(self, attr))

        for attr in ("gamma", "coef0", "C", "p", "eps", "nu"):
            setattr(learner, attr, float(getattr(self, attr)))

        learner.svm_type=0

        if self.useNu:
            learner.svm_type=1
        params=[]
        if self.useNu:
            params.append("nu")
        else:
            params.append("C")
        if self.kernel_type in [1,2]:
            params.append("gamma")
        if self.kernel_type==1:
            params.append("degree")
        try:
            learner.tuneParameters(self.data, params, 4, verbose=0,
                                   progressCallback=self.progres)
        except UnhandledException:
            pass
        for param in params:
            setattr(self, param, getattr(learner, param))
            
        self.finishSearch()
コード例 #3
0
ファイル: OWSVM.py プロジェクト: yisuax11/orange2
    def applySettings(self):
        self.learner=orngSVM.SVMLearner()
        for attr in ("name", "kernel_type", "degree", "shrinking", "probability", "normalization"):
            setattr(self.learner, attr, getattr(self, attr))

        for attr in ("gamma", "coef0", "C", "p", "eps", "nu"):
            setattr(self.learner, attr, float(getattr(self, attr)))

        self.learner.svm_type=orngSVM.SVMLearner.C_SVC

        if self.useNu:
            self.learner.svm_type=orngSVM.SVMLearner.Nu_SVC

        if self.preprocessor:
            self.learner = self.preprocessor.wrapLearner(self.learner)
        self.classifier=None
        self.supportVectors=None
        
        if self.data:
            if self.data.domain.classVar.varType==orange.VarTypes.Continuous:
                self.learner.svm_type+=3
            self.classifier=self.learner(self.data)
            self.supportVectors=self.classifier.supportVectors
            self.classifier.name=self.name
            
        self.send("Learner", self.learner)
        self.send("Classifier", self.classifier)
        self.send("Support Vectors", self.supportVectors)
コード例 #4
0
ファイル: test_svm.py プロジェクト: narg95/goldenberry
 def test_integration_SVM(self):
     data = orange.ExampleTable("iris.tab")
     l1 = orngSVM.SVMLearner()
     l1.kernel_func = orngSVM.KernelWrapper(MyKernel().my_kernel)
     l1.kernel_type = orange.SVMLearner.Custom
     l1.probability = True
     c1 = l1(data)
コード例 #5
0
ファイル: OWSVM.py プロジェクト: stefie10/slu_hri
    def applySettings(self):
        self.learner=orngSVM.SVMLearner()
        for attr in ("name", "kernel_type", "degree", "shrinking", "probability", "normalization"):
            setattr(self.learner, attr, getattr(self, attr))

        for attr in ("gamma", "coef0", "C", "p", "eps", "nu"):
            setattr(self.learner, attr, float(getattr(self, attr)))

        self.learner.svm_type=orngSVM.SVMLearner.C_SVC

        if self.useNu:
            self.learner.svm_type=orngSVM.SVMLearner.Nu_SVC

        self.classifier=None
        self.supportVectors=None
        if self.nomogram and self.data and self.data.domain.classVar.varType==orange.VarTypes.Discrete and \
                len(self.data.domain.classVar.values)==2 and self.kernel_type==0:
            import orngLR_Jakulin
            self.learner=orngSVM.BasicSVMLearner()
            for attr in ("name", "shrinking"):
                setattr(self.learner, attr, getattr(self, attr))
            for attr in ("gamma", "coef0", "C", "p", "eps", "nu"):
                setattr(self.learner, attr, float(getattr(self, attr)))
            self.learner.kernel=self.kernel_type
            self.learner.for_nomogram=1
            self.classifier=orngLR_Jakulin.MarginMetaLearner(self.learner, folds=1)(self.data)
            self.classifier.name=self.name
            self.classifier.domain=self.data.domain
            self.classifier.data=self.data
            self.supportVectors=self.data.getitemsref(self.classifier.classifier.model["SVi"])
        elif self.data:
            if self.data.domain.classVar.varType==orange.VarTypes.Continuous:
                self.learner.svm_type+=3
            self.classifier=self.learner(self.data)
            self.supportVectors=self.classifier.supportVectors
            self.classifier.name=self.name
        if self.learner:
            self.send("Learner", self.learner)
        if self.classifier:
            self.send("Classifier", self.classifier)
        if self.supportVectors:
            self.send("Support Vectors", self.supportVectors)
コード例 #6
0
    def applySettings(self):
        if self.kernel_type == orngSVM.SVMLearner.Custom and None is self.kernel_func:
            return

        self.learner=orngSVM.SVMLearner()
        parameters = {}
        for attr in ("name", "kernel_type", "kernel_func", "degree", "shrinking", "probability", "normalization"):
            setattr(self.learner, attr, getattr(self, attr))
            parameters[attr] = getattr(self, attr)

        for attr in ("gamma", "coef0", "C", "p", "eps", "nu"):
            setattr(self.learner, attr, float(getattr(self, attr)))
            parameters[attr] = getattr(self, attr)

        self.learner.weight = ast.literal_eval(self.weight)

        self.learner.svm_type=orngSVM.SVMLearner.C_SVC

        if self.useNu:
            self.learner.svm_type=orngSVM.SVMLearner.Nu_SVC
            parameters["svm_type"] = orngSVM.SVMLearner.Nu_SVC
        
        self.classifier=None
        self.supportVectors=None
        
        if self.data:
            if self.data.domain.classVar.varType==orange.VarTypes.Continuous:
                self.learner.svm_type+=3
            self.classifier=self.learner(self.data)
            self.supportVectors = self.classifier.supportVectors
            self.classifier.name=self.name
            
        self.send("Learner", self.learner)
        self.send("Learner Factory", GbFactory(orngSVM.SVMLearner, parameters))
        self.send("Classifier", self.classifier)
        self.send("Support Vectors", self.supportVectors) 
コード例 #7
0
import orange, orngSVM
data = orange.ExampleTable("iris.tab")
l1 = orngSVM.SVMLearner()
l1.kernelFunc = orngSVM.RBFKernelWrapper(
    orange.ExamplesDistanceConstructor_Euclidean(data), gamma=0.5)
l1.kernel_type = orange.SVMLearner.Custom
l1.probability = True
c1 = l1(data)
l1.name = "SVM - RBF(Euclidean)"

l2 = orngSVM.SVMLearner()
l2.kernelFunc = orngSVM.RBFKernelWrapper(
    orange.ExamplesDistanceConstructor_Hamming(data), gamma=0.5)
l2.kernel_type = orange.SVMLearner.Custom
l2.probability = True
c2 = l2(data)
l2.name = "SVM - RBF(Hamming)"

l3 = orngSVM.SVMLearner()
l3.kernelFunc = orngSVM.CompositeKernelWrapper(
    orngSVM.RBFKernelWrapper(
        orange.ExamplesDistanceConstructor_Euclidean(data), gamma=0.5),
    orngSVM.RBFKernelWrapper(orange.ExamplesDistanceConstructor_Hamming(data),
                             gamma=0.5),
    l=0.5)
l3.kernel_type = orange.SVMLearner.Custom
l3.probability = True
c3 = l1(data)
l3.name = "SVM - Composite"

import orngTest, orngStat
コード例 #8
0
def svm(input_dict):
    import orngSVM
    output_dict = {}
    output_dict['svmout'] = orngSVM.SVMLearner(name='SVM (Orange)')
    return output_dict
コード例 #9
0
    for j in range(len(learners)):
        tneg[j] = tneg[j]/n
    for j in range(len(learners)):
        fpos[j] = fpos[j]/n
    for j in range(len(learners)):
        fneg[j] = fneg[j]/n
    return (acc, tpos, tneg, fpos, fneg)
    
# set up the learners
bayes = Orange.classification.bayes.NaiveLearner(name="bayes")
adjustedbayes = Orange.classification.bayes.NaiveLearner(m=1, adjust_threshold=True, name="adjusted bayes")

tree = orngTree.TreeLearner(name="tree")
adjustedtree = orngTree.TreeLearner(m_pruning=2, max_depth=100, name="adjusted tree")

svmlinear = orngSVM.SVMLearner(svm_type = orngSVM.SVMLearner.Nu_SVC, kernel_type = orange.SVMLearner.Linear, name="svm linear")
svmrbf = orngSVM.SVMLearner(name="svm rbf")
svmpolynomial = orngSVM.SVMLearner(svm_type = orngSVM.SVMLearner.Nu_SVR, kernel_type = orange.SVMLearner.Polynomial, name="svm polynomial")

sop = Orange.classification.rules.CN2Learner(beam_width=100, name="sop")
adjustedsop = Orange.classification.rules.CN2Learner(beam_width=50, alpha=1, name="adjusted sop")

learners = [sop, tree, bayes, svmlinear, svmrbf, svmpolynomial]

# compute accuracies on data
data = orange.ExampleTable("1625-hiv-continuous-input.tab") #forest-fire-oregon.tab #breast-cancer-wisconsin.tab #forestfires0.tab
b = test_rnd_sampling(data, learners)
acc = b[0]
#sens = b[1]
#spec = b[2]
tpos = b[1]
コード例 #10
0
import orange, orngSVM
data = orange.ExampleTable("iris.tab")
lin = orngSVM.SVMLearner(kernel_type=orngSVM.SVMLearner.Linear,
                         name="SVM - Linear")
poly = orngSVM.SVMLearner(kernel_type=orngSVM.SVMLearner.Polynomial,
                          name="SVM - Poly")
rbf = orngSVM.SVMLearner(kernel_type=orngSVM.SVMLearner.RBF, name="SVM - RBF")

learners = [lin, poly, rbf]
import orngTest, orngStat
res = orngTest.crossValidation(learners, data)
print "%15s%8s%8s" % ("Name", "CA", "AUC")
for l, ca, auc in zip(learners, orngStat.CA(res), orngStat.AUC(res)):
    print "%-15s   %.3f   %.3f" % (l.name, ca, auc)
コード例 #11
0
    def train(self, keyword, learner="svm"):
        training_docs, test_docs, train_label, test_label = self.get_training_test_sets(
            keyword, 0.8)

        if (len(train_label) == 0):
            return None

        F_train = []
        print "--------------TRAIN:", keyword, "-------------------"
        for i, doc_i in enumerate(training_docs):
            #print self.documents[i]
            myfeatures = self.get_features(keyword, self.documents[doc_i])
            if (not '1' in myfeatures):
                continue

            myfeatures.append(str(int(train_label[i])))
            F_train.append(myfeatures)

        if (len(F_train) == 0):
            return None

        #create the attributes and domain
        table = orange.ExampleTable(self.get_domain())

        #define the rest of the table by addign elements to it
        for i in range(len(F_train)):
            #print self.known_objects
            #print "i=", i
            #print "ftrain[i]", zip(self.known_objects, F_train[i]),
            #print " label[i]", train_label[i]
            #F_train[i].append(str(int(train_label[i])))
            table.append(F_train[i])

        #perform the learning

        if (learner == "bayes"):
            print "running bayes"
            classifier = orngBayes.BayesLearner(table)
            #classifier = orngBayes.BayesLearner(table, m=2)
        elif (learner == "tree"):
            print "running tree"
            classifier = orngTree.TreeLearner(table)
        elif (learner == "svm"):
            #can't load the svmlearner
            print "running svm"
            classifier = orngSVM.SVMLearner(table,
                                            svm_type=orange.SVMLearner.Nu_SVC,
                                            nu=0.3,
                                            probability=True)
        elif (learner == "boosting"):
            #problem here too
            #this is meant to be adaboost
            classifier = orngTree.BoostedLearner(table)
        elif (learner == "randomforest"):
            #problem here too
            classifier = orngEnsemble.RandomForestLearner(table,
                                                          trees=50,
                                                          name="forest")

        else:
            print "unknown learner"
            raise

        return classifier
コード例 #12
0
    def train(self):
        F_train_obs = []
        F_train_trans = []
        print "--------------creating tables-------------------"
        for i, obs in enumerate(self.dataset.observations):
            print i, "of", len(self.dataset.observations)

            f_obs, f_trans = self.dataset.to_orange_entries(obs)

            for i, fs in enumerate(f_obs):
                print i, f_obs[0]
                F_train_obs.append(fs)

            for fs in f_trans:
                F_train_trans.append(fs)

        if (len(F_train_obs) == 0):
            return None

        print ">> adding elements to tables"
        #create the attributes and domain
        #define the rest of the table by addign elements to it
        table_obs = orange.ExampleTable(self.get_domain_obs())

        for i in range(len(F_train_obs)):
            table_obs.append(F_train_obs[i])

        table_trans = orange.ExampleTable(self.get_domain_trans())
        for i in range(len(F_train_trans)):
            table_trans.append(F_train_trans[i])

        #perform the learning
        print "training"
        if (self.learner == "bayes"):
            print "training bayes obs"
            self.classifier_obs = orngBayes.BayesLearner(table_obs)
            print "training bayes trans"
            self.classifier_trans = orngBayes.BayesLearner(table_trans)
        elif (self.learner == "tree"):
            print "running tree"
            self.classifier_obs = orngTree.TreeLearner(table_obs)
            self.classifier_trans = orngTree.TreeLearner(table_trans)
        elif (self.learner == "svm"):
            #can't load the svmlearner
            print "trianing observation svm"
            self.classifier_obs = orngSVM.SVMLearner(
                table_obs,
                svm_type=orange.SVMLearner.Nu_SVC,
                nu=0.3,
                probability=True)

            print "trianing transition svm"
            self.classifier_trans = orngSVM.SVMLearner(
                table_trans,
                svm_type=orange.SVMLearner.Nu_SVC,
                nu=0.3,
                probability=True)
        elif (self.learner == "boosting"):
            #problem here too
            #this is meant to be adaboost
            self.classifier_obs = orngTree.BoostedLearner(table_obs)
            self.classifier_trans = orngTree.BoostedLearner(table_trans)
        elif (self.learner == "randomforest"):
            #problem here too
            self.classifier_obs = orngEnsemble.RandomForestLearner(
                table_obs, trees=50, name="forest")
            self.classifier_trans = orngEnsemble.RandomForestLearner(
                table_trans, trees=50, name="forest")
        else:
            print "unknown learner"
            raise

        return self.classifier_obs, self.classifier_trans