Changeset 7209:13635fd4d278 in orange


Ignore:
Timestamp:
02/02/11 17:45:48 (3 years ago)
Author:
miha <miha.stajdohar@…>
Branch:
default
Convert:
564fd195910adfb8d66fcb87f61cd56332ab1800
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/classification/svm/__init__.py

    r7203 r7209  
    9696import math 
    9797 
     98from collections import defaultdict 
     99 
    98100import Orange.core 
    99 import Orange.classify.svm.kernels 
     101import Orange.classification.svm.kernels 
    100102 
    101103from Orange.core import SVMLearner as _SVMLearner 
     
    106108                        SVMClassifier, \ 
    107109                        SVMClassifierSparse 
    108                
    109 C_SVC = _SVMLearner.C_SVC 
    110 Nu_SVC = _SVMLearner.Nu_SVC 
    111 OneClass = _SVMLearner.OneClass 
    112 Nu_SVR = _SVMLearner.Nu_SVR 
    113 Epsilon_SVR = _SVMLearner.Epsilon_SVR 
    114  
    115110 
    116111# ORANGE Support Vector Machines 
     
    161156class SVMLearner(_SVMLearner): 
    162157    __new__ = _orange__new__(_SVMLearner) 
    163          
     158     
     159    C_SVC = _SVMLearner.C_SVC 
     160    Nu_SVC = _SVMLearner.Nu_SVC 
     161    OneClass = _SVMLearner.OneClass 
     162    Nu_SVR = _SVMLearner.Nu_SVR 
     163    Epsilon_SVR = _SVMLearner.Epsilon_SVR 
     164             
    164165    def __init__(self, svm_type=Nu_SVC, kernel_type=kernels.RBF, kernelFunc=None,  
    165166                 C=1.0, nu=0.5, p=0.1, gamma=0.0, degree=3, coef0=0,  
     
    426427        SVMLearnerSparse.__init__(self, **kwds) 
    427428 
    428 from collections import defaultdict 
     429class LinearLearner(Orange.core.LinearLearner): 
     430     
     431    """A wrapper around Orange.core.LinearLearner with a default 
     432    solver_type == L2Loss_SVM_Dual  
     433     
     434    .. note:: The default in Orange.core.LinearLearner is L2_LR 
     435     
     436    """ 
     437     
     438    def __new__(cls, data=None, weightId=0, **kwargs): 
     439        self = Orange.core.LinearLearner.__new__(cls, **kwargs) 
     440        if data: 
     441            self.__init__(**kwargs) 
     442            return self.__call__(data, weightId) 
     443        else: 
     444            return self 
     445         
     446    def __init__(self, **kwargs): 
     447        if kwargs.get("solver_type", None) in [Orange.core.LinearLearner.L2_LR,  
     448                                               None]: 
     449            kwargs = dict(kwargs) 
     450            kwargs["solver_type"] = Orange.core.LinearLearner.L2Loss_SVM_Dual 
     451        for name, val in kwargs.items(): 
     452            setattr(self, name, val) 
    429453 
    430454def getLinearSVMWeights(classifier, sum=True): 
     
    633657                file.write(" "+str(i+1)+":"+str(ex[attr])) 
    634658        file.write("\n") 
    635              
    636 class LinearLearner(Orange.core.LinearLearner): 
    637      
    638     """A wrapper around Orange.core.LinearLearner with a default 
    639     solver_type == L2Loss_SVM_Dual  
    640      
    641     .. note:: The default in Orange.core.LinearLearner is L2_LR 
    642      
    643     """ 
    644      
    645     def __new__(cls, data=None, weightId=0, **kwargs): 
    646         self = Orange.core.LinearLearner.__new__(cls, **kwargs) 
    647         if data: 
    648             self.__init__(**kwargs) 
    649             return self.__call__(data, weightId) 
    650         else: 
    651             return self 
    652          
    653     def __init__(self, **kwargs): 
    654         if kwargs.get("solver_type", None) in [Orange.core.LinearLearner.L2_LR,  
    655                                                None]: 
    656             kwargs = dict(kwargs) 
    657             kwargs["solver_type"] = Orange.core.LinearLearner.L2Loss_SVM_Dual 
    658         for name, val in kwargs.items(): 
    659             setattr(self, name, val) 
    660  
     659       
Note: See TracChangeset for help on using the changeset viewer.