Ignore:
Timestamp:
06/04/12 15:44:23 (23 months ago)
Author:
Matija Polajnar <matija.polajnar@…>
Branch:
default
Message:

Fix AUX and stacking to use the new TestedExample structure.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/evaluation/scoring.py

    r10857 r10900  
    14841484    return wrapped 
    14851485 
     1486def replace_discrete_probabilities_with_list(method=False): 
     1487    if environ.orange_no_deprecated_members: 
     1488        return fun 
     1489 
     1490    def decorator(fun): 
     1491        @functools.wraps(fun) 
     1492        def wrapped(*args, **kwargs): 
     1493            res = args[method] if len(args)>method else kwargs.get("res", kwargs.get("test_results", None)) 
     1494            convert = res is not None 
     1495 
     1496            if convert: 
     1497                old_probs = [] 
     1498                for r in res.results: 
     1499                    old_probs.append(r.probabilities) 
     1500                    r.probabilities = [list(p) if type(p) is Orange.statistics.distribution.Discrete 
     1501                                       else p for p in r.probabilities] 
     1502            result = fun(*args, **kwargs) 
     1503            if convert: 
     1504                for r, old in zip(res.results, old_probs): 
     1505                    r.probabilities = old 
     1506            return result 
     1507        return wrapped 
     1508    return decorator 
     1509 
    14861510class AUC(list): 
    14871511    """ 
     
    15391563            self[:] = self.__call__(test_results) 
    15401564 
     1565    @replace_discrete_probabilities_with_list(method=True) 
    15411566    def __call__(self, test_results): 
    15421567        if len(test_results.class_values) < 2: 
     
    17221747        super(AUC_for_single_class, self).__init__(test_results, ignore_weights=ignore_weights) 
    17231748 
     1749    @replace_discrete_probabilities_with_list(method=True) 
    17241750    def __call__(self, test_results): 
    17251751        return self._compute_for_single_class(test_results, self.class_index) 
     
    17371763        super(AUC_for_pair_of_classes, self).__init__(test_results, ignore_weights=ignore_weights) 
    17381764 
     1765    @replace_discrete_probabilities_with_list(method=True) 
    17391766    def __call__(self, test_results): 
    17401767        return self._compute_for_pair_of_classes(test_results, self.class_index1, self.class_index2) 
     
    17481775    """ 
    17491776 
     1777    @replace_discrete_probabilities_with_list(method=True) 
    17501778    def __call__(self, test_results): 
    17511779        numberOfClasses = len(test_results.class_values) 
     
    17731801#Backward compatibility 
    17741802@replace_use_weights 
     1803@replace_discrete_probabilities_with_list 
    17751804def AUC_binary(res, ignore_weights=False): 
    17761805    auc = deprecated_function_name(AUC)(ignore_weights=ignore_weights) 
     
    17791808 
    17801809@replace_use_weights 
     1810@replace_discrete_probabilities_with_list 
    17811811def AUC_multi(res, ignore_weights=False, method=0): 
    17821812    auc = deprecated_function_name(AUC)(ignore_weights=ignore_weights, 
     
    18271857 
    18281858@deprecated_keywords({"unweighted": "ignore_weights"}) 
     1859@replace_discrete_probabilities_with_list 
    18291860def McNemar(res, ignore_weights=False, **argkw): 
    18301861    """ 
     
    18741905    return mcm 
    18751906 
    1876  
     1907@replace_discrete_probabilities_with_list 
    18771908def McNemar_of_two(res, lrn1, lrn2, ignore_weights=False): 
    18781909    """ 
     
    19041935        return 0 
    19051936 
    1906  
     1937@replace_discrete_probabilities_with_list 
    19071938def Friedman(res, stat=CA): 
    19081939    """ 
     
    19291960    return F, statc.chisqprob(F, k - 1), sums 
    19301961 
    1931  
     1962@replace_discrete_probabilities_with_list 
    19321963def Wilcoxon_pairs(res, avgranks, stat=CA): 
    19331964    """ 
Note: See TracChangeset for help on using the changeset viewer.