Changeset 3600:70d16e80ce40 in orange


Ignore:
Timestamp:
04/27/07 13:01:53 (7 years ago)
Author:
martinm <martinm@…>
Branch:
default
Convert:
fd93acb8ffeba36f5eb5c3a6772808efeb2e359a
Message:

no message

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/orngCN2.py

    r3299 r3600  
    171171# Kako nastavim v c++, da mi ni potrebno dodati imena 
    172172class CN2UnorderedLearnerClass(orange.RuleLearner): 
    173     def __init__(self, evaluator = LaplaceEvaluator(), beamWidth = 5, alpha = 1.0, **kwds): 
     173    def __init__(self, evaluator = orange.RuleEvaluator_Laplace(), beamWidth = 5, alpha = 1.0, **kwds): 
    174174        self.__dict__ = kwds 
    175175        self.ruleFinder = orange.RuleBeamFinder() 
     
    215215 
    216216    def __call__(self, example, result_type=orange.GetValue, retRules = False): 
    217         def add(disc1, disc2): 
     217        def add(disc1, disc2, sumd): 
    218218            disc = orange.DiscDistribution(disc1) 
     219            sumdisc = sumd 
    219220            for i,d in enumerate(disc): 
    220221                disc[i]+=disc2[i] 
    221             return disc 
     222                sumdisc += disc2[i] 
     223            return disc, sumdisc 
    222224 
    223225        # create empty distribution 
     
    225227        covRules = orange.RuleList() 
    226228        # iterate through examples - add distributions 
     229        sumdisc = 0. 
    227230        for r in self.rules: 
    228231            if r(example) and r.classDistribution: 
    229                 retDist = add(retDist, r.classDistribution) 
     232                retDist, sumdisc = add(retDist, r.classDistribution, sumdisc) 
    230233                covRules.append(r) 
    231         if not retDist.abs: 
     234        if not sumdisc: 
    232235            retDist = self.prior 
    233         retDist.normalize() 
    234         # return classifier(example, result_type=result_type) 
     236            sumdisc = self.prior.abs 
     237        for c in self.examples.domain.classVar: 
     238            retDist[c] /= sumdisc 
    235239        if retRules: 
    236240            if result_type == orange.GetValue: 
     
    239243              return (retDist, covRules) 
    240244            return (retDist.modus(),retDist,covRules) 
    241          
    242245        if result_type == orange.GetValue: 
    243246          return retDist.modus() 
Note: See TracChangeset for help on using the changeset viewer.