Changeset 4997:3f65c6a715a8 in orange


Ignore:
Timestamp:
07/18/08 23:13:34 (6 years ago)
Author:
janezd <janez.demsar@…>
Branch:
default
Convert:
c2b4b61d9bd7cd443988f1d055fbf8f5c3c95a87
Message:
  • added chi2
File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/orngInteract.py

    r4795 r4997  
    3232#       fixed an ugly bug in dep-dissimilarity matrix processing 
    3333 
    34 import orange 
     34import orange, statc 
    3535import orngContingency, numpy 
    3636import warnings, math, string, copy 
     37 
    3738from orangeom import Network 
    3839 
     
    155156        self.ents = {} 
    156157        self.corr = {} 
     158        self.chi2 = {} 
    157159        self.simple = {} 
    158160        for i in range(NA): 
     
    167169            self.way2[(i,-1,)] = atc 
    168170            self.ents[(i,-1)] = orngContingency.Entropy(atc.m) 
     171            N = sum(atc.a) 
     172            self.chi2[(i, i)] = statc.chisqprob(N * (numpy.sum(numpy.outer(atc.pa, atc.pa)) - 2 + len(atc.pa)), (len(atc.pa)-1)**2) 
     173 
     174#            self.chi2[(i, i)] = N * (numpy.sum(numpy.outer(atc.pa, atc.pa)) - 2 + len(atc.pa))    
    169175            if simple_too: 
    170176                simp = 0.0 
     
    194200                    self.ents[(j,i,)] = orngContingency.Entropy(c.m) 
    195201                    self.corr[(j,i,)] = gai 
     202                    self.chi2[(j,i)] = c.ChiSquareP()    
    196203                    if simple_too: 
    197204                        simp = 0.0 
     
    334341             
    335342            perc = int(abs(ig)*100.0/max(max_igain,self.attlist[-1][0])+0.5) 
    336  
    337             if self.entropy > 1e-6: 
    338                 w = float(100.0*ig/self.entropy) 
    339             else: 
    340                 w = float(0.0) 
    341              
    342             graph[i, j] = w 
     343            graph[i, j] = perc / 30 + 1 
    343344             
    344345            if self.entropy > 1e-6: 
     
    798799        f.write("}\n") 
    799800 
     801    def exportChi2Matrix(self, pretty_names = 1): 
     802        labels = [] 
     803        for i in range(self.NA): 
     804            t = '%s'%self.names[i] 
     805            if pretty_names: 
     806                t = string.replace(t,"ED_","") 
     807                t = string.replace(t,"D_","") 
     808                t = string.replace(t,"M_","") 
     809            labels.append(t) 
     810 
     811        diss = [[self.chi2[(i,j)] for i in range(j+1)] for j in range(self.NA)] 
     812        return diss, labels 
     813 
    800814    def depExportDissimilarityMatrix(self, truncation = 1000, pretty_names = 1, jaccard = 1, simple_metric=0,color_coding = 0, verbose=0, include_label=0): 
    801815        NA = self.NA 
Note: See TracChangeset for help on using the changeset viewer.