Changeset 8506:78e7ed99658a in orange


Ignore:
Timestamp:
07/28/11 10:42:38 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
fbec3dea907693a688e0ed16aa991a1ac5881479
Message:

Merge changes from trunk

Files:
1 deleted
58 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/__init__.py

    r8378 r8506  
    9090_import("misc.render") 
    9191_import("misc.selection") 
    92 _import("misc.r") 
     92#_import("misc.r") 
  • orange/Orange/classification/bayes.py

    r8042 r8107  
    1 """  
    2 .. index:: naive Bayes classifier 
    3     
    4 .. index::  
    5    single: classification; naive Bayes classifier 
    6  
    7 ********************************** 
    8 Naive Bayes classifier (``bayes``) 
    9 ********************************** 
    10  
    11 The most primitive Bayesian classifier is :obj:`NaiveLearner`.  
    12 `Naive Bayes classification algorithm <http://en.wikipedia.org/wiki/Naive_Bayes_classifier>`_  
    13 estimates conditional probabilities from training data and uses them 
    14 for classification of new data instances. The algorithm learns very fast if all features 
    15 in the training data set are discrete. If a number of features are continues, though, the  
    16 algorithm runs slower due to time spent to estimate continuous conditional distributions. 
    17  
    18 The following example demonstrates a straightforward invocation of 
    19 this algorithm (`bayes-run.py`_, uses `titanic.tab`_): 
    20  
    21 .. literalinclude:: code/bayes-run.py 
    22    :lines: 7- 
    23  
    24 .. index:: Naive Bayesian Learner 
    25 .. autoclass:: Orange.classification.bayes.NaiveLearner 
    26    :members: 
    27    :show-inheritance: 
    28   
    29 .. autoclass:: Orange.classification.bayes.NaiveClassifier 
    30    :members: 
    31    :show-inheritance: 
    32     
    33     
    34 Examples 
    35 ======== 
    36  
    37 :obj:`NaiveLearner` can estimate probabilities using relative frequencies or 
    38 m-estimate (`bayes-mestimate.py`_, uses `lenses.tab`_): 
    39  
    40 .. literalinclude:: code/bayes-mestimate.py 
    41     :lines: 7- 
    42  
    43 Observing conditional probabilities in an m-estimate based classifier shows a 
    44 shift towards the second class - as compared to probabilities above, where 
    45 relative frequencies were used. Note that the change in error estimation did 
    46 not have any effect on apriori probabilities 
    47 (`bayes-thresholdAdjustment.py`_, uses `adult-sample.tab`_): 
    48  
    49 .. literalinclude:: code/bayes-thresholdAdjustment.py 
    50     :lines: 7- 
    51      
    52 Setting adjustThreshold parameter can sometimes improve the results. Those are 
    53 the classification accuracies of 10-fold cross-validation of a normal naive 
    54 bayesian classifier, and one with an adjusted threshold:: 
    55  
    56     [0.7901746265516516, 0.8280138859667578] 
    57  
    58 Probabilities for continuous features are estimated with \ 
    59 :class:`ProbabilityEstimatorConstructor_loess`. 
    60 (`bayes-plot-iris.py`_, uses `iris.tab`_): 
    61  
    62 .. literalinclude:: code/bayes-plot-iris.py 
    63     :lines: 4- 
    64      
    65 .. image:: code/bayes-iris.png 
    66    :scale: 50 % 
    67  
    68 If petal lengths are shorter, the most probable class is "setosa". Irises with 
    69 middle petal lengths belong to "versicolor", while longer petal lengths indicate 
    70 for "virginica". Critical values where the decision would change are at about 
    71 5.4 and 6.3. 
    72  
    73  
    74 .. _bayes-run.py: code/bayes-run.py 
    75 .. _bayes-thresholdAdjustment.py: code/bayes-thresholdAdjustment.py 
    76 .. _bayes-mestimate.py: code/bayes-mestimate.py 
    77 .. _bayes-plot-iris.py: code/bayes-plot-iris.py 
    78 .. _adult-sample.tab: code/adult-sample.tab 
    79 .. _iris.tab: code/iris.tab 
    80 .. _titanic.tab: code/iris.tab 
    81 .. _lenses.tab: code/lenses.tab 
    82  
    83 Implementation details 
    84 ====================== 
    85  
    86 The following two classes are implemented in C++ (*bayes.cpp*). They are not 
    87 intended to be used directly. Here we provide implementation details for those 
    88 interested. 
    89  
    90 Orange.core.BayesLearner 
    91 ------------------------ 
    92 Fields estimatorConstructor, conditionalEstimatorConstructor and 
    93 conditionalEstimatorConstructorContinuous are empty (None) by default. 
    94  
    95 If estimatorConstructor is left undefined, p(C) will be estimated by relative 
    96 frequencies of examples (see ProbabilityEstimatorConstructor_relative). 
    97 When conditionalEstimatorConstructor is left undefined, it will use the same 
    98 constructor as for estimating unconditional probabilities (estimatorConstructor 
    99 is used as an estimator in ConditionalProbabilityEstimatorConstructor_ByRows). 
    100 That is, by default, both will use relative frequencies. But when 
    101 estimatorConstructor is set to, for instance, estimate probabilities by 
    102 m-estimate with m=2.0, the same estimator will be used for estimation of 
    103 conditional probabilities, too. 
    104 P(c|vi) for continuous attributes are, by default, estimated with loess (a 
    105 variant of locally weighted linear regression), using 
    106 ConditionalProbabilityEstimatorConstructor_loess. 
    107 The learner first constructs an estimator for p(C). It tries to get a 
    108 precomputed distribution of probabilities; if the estimator is capable of 
    109 returning it, the distribution is stored in the classifier's field distribution 
    110 and the just constructed estimator is disposed. Otherwise, the estimator is 
    111 stored in the classifier's field estimator, while the distribution is left 
    112 empty. 
    113  
    114 The same is then done for conditional probabilities. Different constructors are 
    115 used for discrete and continuous attributes. If the constructed estimator can 
    116 return all conditional probabilities in form of Contingency, the contingency is 
    117 stored and the estimator disposed. If not, the estimator is stored. If there 
    118 are no contingencies when the learning is finished, the resulting classifier's 
    119 conditionalDistributions is None. Alternatively, if all probabilities are 
    120 stored as contingencies, the conditionalEstimators fields is None. 
    121  
    122 Field normalizePredictions is copied to the resulting classifier. 
    123  
    124 Orange.core.BayesClassifier 
    125 --------------------------- 
    126 Class NaiveClassifier represents a naive bayesian classifier. Probability of 
    127 class C, knowing that values of features :math:`F_1, F_2, ..., F_n` are 
    128 :math:`v_1, v_2, ..., v_n`, is computed as :math:`p(C|v_1, v_2, ..., v_n) = \ 
    129 p(C) \\cdot \\frac{p(C|v_1)}{p(C)} \\cdot \\frac{p(C|v_2)}{p(C)} \\cdot ... \ 
    130 \\cdot \\frac{p(C|v_n)}{p(C)}`. 
    131  
    132 Note that when relative frequencies are used to estimate probabilities, the 
    133 more usual formula (with factors of form :math:`\\frac{p(v_i|C)}{p(v_i)}`) and 
    134 the above formula are exactly equivalent (without any additional assumptions of 
    135 independency, as one could think at a first glance). The difference becomes 
    136 important when using other ways to estimate probabilities, like, for instance, 
    137 m-estimate. In this case, the above formula is much more appropriate.  
    138  
    139 When computing the formula, probabilities p(C) are read from distribution, which 
    140 is of type Distribution, and stores a (normalized) probability of each class. 
    141 When distribution is None, BayesClassifier calls estimator to assess the 
    142 probability. The former method is faster and is actually used by all existing 
    143 methods of probability estimation. The latter is more flexible. 
    144  
    145 Conditional probabilities are computed similarly. Field conditionalDistribution 
    146 is of type DomainContingency which is basically a list of instances of 
    147 Contingency, one for each attribute; the outer variable of the contingency is 
    148 the attribute and the inner is the class. Contingency can be seen as a list of 
    149 normalized probability distributions. For attributes for which there is no 
    150 contingency in conditionalDistribution a corresponding estimator in 
    151 conditionalEstimators is used. The estimator is given the attribute value and 
    152 returns distributions of classes. 
    153  
    154 If neither, nor pre-computed contingency nor conditional estimator exist, the 
    155 attribute is ignored without issuing any warning. The attribute is also ignored 
    156 if its value is undefined; this cannot be overriden by estimators. 
    157  
    158 Any field (distribution, estimator, conditionalDistributions, 
    159 conditionalEstimators) can be None. For instance, BayesLearner normally 
    160 constructs a classifier which has either distribution or estimator defined. 
    161 While it is not an error to have both, only distribution will be used in that 
    162 case. As for the other two fields, they can be both defined and used 
    163 complementarily; the elements which are missing in one are defined in the 
    164 other. However, if there is no need for estimators, BayesLearner will not 
    165 construct an empty list; it will not construct a list at all, but leave the 
    166 field conditionalEstimators empty. 
    167  
    168 If you only need probabilities of individual class call BayesClassifier's 
    169 method p(class, example) to compute the probability of this class only. Note 
    170 that this probability will not be normalized and will thus, in general, not 
    171 equal the probability returned by the call operator. 
    172 """ 
    173  
    1741import Orange 
    1752from Orange.core import BayesClassifier as _BayesClassifier 
     
    18512     
    18613    .. 
    187         :param adjustTreshold: sets the corresponding attribute 
    188         :type adjustTreshold: boolean 
     14        :param adjust_threshold: sets the corresponding attribute 
     15        :type adjust_threshold: boolean 
    18916        :param m: sets the :obj:`estimatorConstructor` to 
    19017            :class:`orange.ProbabilityEstimatorConstructor_m` with specified m 
    19118        :type m: integer 
    192         :param estimatorConstructor: sets the corresponding attribute 
    193         :type estimatorConstructor: orange.ProbabilityEstimatorConstructor 
    194         :param conditionalEstimatorConstructor: sets the corresponding attribute 
    195         :type conditionalEstimatorConstructor: 
     19        :param estimator_constructor: sets the corresponding attribute 
     20        :type estimator_constructor: orange.ProbabilityEstimatorConstructor 
     21        :param conditional_estimator_constructor: sets the corresponding attribute 
     22        :type conditional_estimator_constructor: 
    19623                :class:`orange.ConditionalProbabilityEstimatorConstructor` 
    197         :param conditionalEstimatorConstructorContinuous: sets the corresponding 
     24        :param conditional_estimator_constructor_continuous: sets the corresponding 
    19825                attribute 
    199         :type conditionalEstimatorConstructorContinuous:  
     26        :type conditional_estimator_constructor_continuous:  
    20027                :class:`orange.ConditionalProbabilityEstimatorConstructor` 
    20128                 
     
    20532    Constructor parameters set the corresponding attributes. 
    20633     
    207     .. attribute:: adjustTreshold 
     34    .. attribute:: adjust_threshold 
    20835     
    20936        If set and the class is binary, the classifier's 
     
    21946        This attribute is ignored if you also set estimatorConstructor. 
    22047         
    221     .. attribute:: estimatorConstructor 
     48    .. attribute:: estimator_constructor 
    22249     
    22350        Probability estimator constructor for 
     
    22653        Setting this attribute disables the above described attribute m. 
    22754         
    228     .. attribute:: conditionalEstimatorConstructor 
     55    .. attribute:: conditional_estimator_constructor 
    22956     
    23057        Probability estimator constructor 
     
    23259        the estimator for prior probabilities will be used. 
    23360         
    234     .. attribute:: conditionalEstimatorConstructorContinuous 
     61    .. attribute:: conditional_estimator_constructor_continuous 
    23562     
    23663        Probability estimator constructor for conditional probabilities for 
     
    292119      "conditionalEstimatorConstructorContinuous":"conditional_estimator_constructor_continuous", 
    293120      "weightID": "weight_id" 
    294 }, in_place=False)(NaiveLearner) 
     121}, in_place=True)(NaiveLearner) 
    295122 
    296123 
     
    300127    :class:`Orange.core.BayesClassifier` that does the actual classification. 
    301128     
    302     :param baseClassifier: an :class:`Orange.core.BayesLearner` to wrap. If 
     129    :param base_classifier: an :class:`Orange.core.BayesLearner` to wrap. If 
    303130            not set, a new :class:`Orange.core.BayesLearner` is created. 
    304     :type baseClassifier: :class:`Orange.core.BayesLearner` 
     131    :type base_classifier: :class:`Orange.core.BayesLearner` 
    305132     
    306133    .. attribute:: distribution 
     
    312139        An object that returns a probability of class p(C) for a given class C. 
    313140         
    314     .. attribute:: conditionalDistributions 
     141    .. attribute:: conditional_distributions 
    315142     
    316143        A list of conditional probabilities. 
    317144         
    318     .. attribute:: conditionalEstimators 
     145    .. attribute:: conditional_estimators 
    319146     
    320147        A list of estimators for conditional probabilities. 
    321148         
    322     .. attribute:: adjustThreshold 
     149    .. attribute:: adjust_threshold 
    323150     
    324151        For binary classes, this tells the learner to 
     
    328155    """ 
    329156     
    330     def __init__(self, baseClassifier=None): 
    331         if not baseClassifier: baseClassifier = _BayesClassifier() 
    332         self.nativeBayesClassifier = baseClassifier 
    333         for k, v in self.nativeBayesClassifier.__dict__.items(): 
     157    def __init__(self, base_classifier=None): 
     158        if not base_classifier: base_classifier = _BayesClassifier() 
     159        self.native_bayes_classifier = base_classifier 
     160        for k, v in self.native_bayes_classifier.__dict__.items(): 
    334161            self.__dict__[k] = v 
    335162   
     
    347174              :class:`Orange.statistics.Distribution` or a tuple with both 
    348175        """ 
    349         return self.nativeBayesClassifier(instance, result_type, *args, **kwdargs) 
     176        return self.native_bayes_classifier(instance, result_type, *args, **kwdargs) 
    350177 
    351178    def __setattr__(self, name, value): 
    352         if name == "nativeBayesClassifier": 
     179        if name == "native_bayes_classifier": 
    353180            self.__dict__[name] = value 
    354181            return 
    355         if name in self.nativeBayesClassifier.__dict__: 
    356             self.nativeBayesClassifier.__dict__[name] = value 
     182        if name in self.native_bayes_classifier.__dict__: 
     183            self.native_bayes_classifier.__dict__[name] = value 
    357184        self.__dict__[name] = value 
    358185     
     
    370197         
    371198        """ 
    372         return self.nativeBayesClassifier.p(class_, instance) 
     199        return self.native_bayes_classifier.p(class_, instance) 
    373200     
    374201    def __str__(self): 
    375         """return classifier in human friendly format.""" 
    376         nValues=len(self.classVar.values) 
    377         frmtStr=' %10.3f'*nValues 
    378         classes=" "*20+ ((' %10s'*nValues) % tuple([i[:10] for i in self.classVar.values])) 
     202        """Return classifier in human friendly format.""" 
     203        nvalues=len(self.class_var.values) 
     204        frmtStr=' %10.3f'*nvalues 
     205        classes=" "*20+ ((' %10s'*nvalues) % tuple([i[:10] for i in self.class_var.values])) 
    379206         
    380207        return "\n".join([ 
     
    388215                    ("%20s" % i.variable.values[v][:20]) + (frmtStr % tuple(i[v])) 
    389216                    for v in xrange(len(i.variable.values)))] 
    390                 ) for i in self.conditionalDistributions])]) 
     217                ) for i in self.conditional_distributions 
     218                        if i.variable.var_type == Orange.data.variable.Discrete])]) 
    391219             
    392220 
  • orange/Orange/classification/majority.py

    r8042 r8104  
    1717 
    1818    MajorityLearner will most often be used as is, without setting any 
    19     features. Nevertheless, it has two. 
     19    parameters. Nevertheless, it has two. 
    2020 
    21     .. attribute:: estimatorConstructor 
     21    .. attribute:: estimator_constructor 
    2222     
    2323        An estimator constructor that can be used for estimation of 
     
    2626        this class. 
    2727         
    28     .. attribute:: aprioriDistribution 
     28    .. attribute:: apriori_distribution 
    2929     
    3030        Apriori class distribution that is passed to estimator 
     
    3636    same class probabilities. 
    3737 
    38     .. attribute:: defaultVal 
     38    .. attribute:: default_val 
    3939     
    4040        Value that is returned by the classifier. 
    4141     
    42     .. attribute:: defaultDistribution 
     42    .. attribute:: default_distribution 
    4343 
    4444        Class probabilities returned by the classifier. 
    4545 
    4646The ConstantClassifier's constructor can be called without arguments, 
    47 with value (for defaultVal), variable (for classVar). If the value is 
    48 given and is of type orange.Value (alternatives are an integer index 
    49 of a discrete value or a continuous value), its field variable is will 
    50 either be used for initializing classVar if variable is not given as 
     47with value (for default_val), variable (for class_var). If the value is 
     48given and is of type Orange.data.Value (alternatives are an integer index 
     49of a discrete value or a continuous value), its field variable will 
     50either be used for initializing class_var if variable is not given as 
    5151an argument, or checked against the variable argument, if it is given.  
    5252 
  • orange/Orange/feature/__init__.py

    r8042 r8506  
    11""" 
    2  
    3 .. index:: feature 
    4  
    5 This module provides functionality for feature scoring, selection,  
    6 discretization, continuzation, imputation, construction and feature 
    7 interaction analysis. 
    8  
    9 ======= 
    10 Scoring 
    11 ======= 
    12  
    13 .. automodule:: Orange.feature.scoring 
    14  
    15 ========= 
    16 Selection 
    17 ========= 
    18  
    19 .. automodule:: Orange.feature.selection 
    20  
    21 ============== 
    22 Discretization 
    23 ============== 
    24  
    25 .. automodule:: Orange.feature.discretization 
    26  
    27 ============== 
    28 Continuization 
    29 ============== 
    30  
    31 .. index:: continuization 
    32  
    33 .. automodule:: Orange.feature.continuization 
    34  
    35 ========== 
    36 Imputation 
    37 ========== 
    38  
    39 .. automodule:: Orange.feature.imputation 
    40  
     2Feature scoring, selection, discretization, continuzation, imputation, 
     3construction and feature interaction analysis. 
    414""" 
    425 
  • orange/Orange/feature/continuization.py

    r8042 r8112  
     1""" 
     2################################### 
     3Continuization (``continuization``) 
     4################################### 
     5""" 
     6 
    17from Orange.core import DomainContinuizer 
  • orange/Orange/feature/discretization.py

    r8042 r8112  
    11""" 
     2################################### 
     3Discretization (``discretization``) 
     4################################### 
    25 
    36.. index:: discretization 
  • orange/Orange/feature/imputation.py

    r8042 r8112  
    11""" 
     2########################### 
     3Imputation (``imputation``) 
     4########################### 
    25 
    36.. index:: imputation 
  • orange/Orange/feature/scoring.py

    r8042 r8506  
    11""" 
     2##################### 
     3Scoring (``scoring``) 
     4##################### 
    25 
    36.. index:: feature scoring 
     
    69   single: feature; feature scoring 
    710 
    8 Feature scoring is used in feature subset selection for classification 
    9 problems. The goal is to find "good" features that are relevant for the given 
    10 classification task. 
    11  
    12 Here is a simple script that reads the data, uses :obj:`attMeasure` to 
    13 derive feature scores and prints out these for the first three best scored 
    14 features. Same scoring function is then used to report (only) on three best 
    15 score features. 
     11Features selection aims to find relevant features for the given 
     12prediction task. 
     13 
     14The following example computes feature scores, both with 
     15:obj:`score_all` and by scoring each feature individually, and prints out  
     16the best three features.  
    1617 
    1718.. _scoring-all.py: code/scoring-all.py 
    1819.. _voting.tab: code/voting.tab 
    1920 
    20 `scoring-all.py`_ (uses `voting.tab`_): 
    21  
    2221.. literalinclude:: code/scoring-all.py 
    2322    :lines: 7- 
    2423 
    25 The script should output this:: 
    26  
    27     Feature scores for best three features: 
     24The output:: 
     25 
     26    Feature scores for best three features (with score_all): 
    2827    0.613 physician-fee-freeze 
    29     0.255 adoption-of-the-budget-resolution 
     28    0.255 el-salvador-aid 
    3029    0.228 synfuels-corporation-cutback 
    3130 
    32 .. autoclass:: Orange.feature.scoring.OrderAttributesByMeasure 
    33    :members: 
    34  
    35 .. automethod:: Orange.feature.scoring.MeasureAttribute_Distance 
    36  
    37 .. autoclass:: Orange.feature.scoring.MeasureAttribute_DistanceClass 
    38    :members: 
    39     
    40 .. automethod:: Orange.feature.scoring.MeasureAttribute_MDL 
    41  
    42 .. autoclass:: Orange.feature.scoring.MeasureAttribute_MDLClass 
    43    :members: 
    44  
    45 .. automethod:: Orange.feature.scoring.mergeAttrValues 
    46  
    47 .. automethod:: Orange.feature.scoring.attMeasure 
     31    Feature scores for best three features (scored individually): 
     32    0.613 physician-fee-freeze 
     33    0.255 el-salvador-aid 
     34    0.228 synfuels-corporation-cutback 
     35 
    4836 
    4937============ 
     
    5139============ 
    5240 
    53 There are a number of different measures for assessing the relevance of  
    54 features with respect to much information they contain about the  
    55 corresponding class. These procedures are also known as feature scoring.  
    56 Orange implements several methods that all stem from 
    57 :obj:`Orange.feature.scoring.Measure`. The most of common ones compute 
    58 certain statistics on conditional distributions of class values given 
    59 the feature values; in Orange, these are derived from 
    60 :obj:`Orange.feature.scoring.MeasureAttributeFromProbabilities`. 
     41Implemented methods for scoring relevances of features to the class 
     42are subclasses of :obj:`Measure`. Those that compute statistics on 
     43conditional distributions of class values given the feature values are 
     44derived from :obj:`MeasureFromProbabilities`. 
    6145 
    6246.. class:: Measure 
    6347 
    64     This is the base class for a wide range of classes that measure quality of 
    65     features. The class itself is, naturally, abstract. Its fields merely 
    66     describe what kinds of features it can handle and what kind of data it  
    67     requires. 
    68  
    69     .. attribute:: handlesDiscrete 
    70      
    71     Tells whether the measure can handle discrete features. 
    72  
    73     .. attribute:: handlesContinuous 
    74      
    75     Tells whether the measure can handle continuous features. 
    76  
    77     .. attribute:: computesThresholds 
    78      
    79     Tells whether the measure implements the :obj:`thresholdFunction`. 
     48    Abstract base class for feature scoring. Its attributes describe which 
     49    features it can handle and the required data. 
     50 
     51    **Capabilities** 
     52 
     53    .. attribute:: handles_discrete 
     54     
     55        Indicates whether the measure can handle discrete features. 
     56 
     57    .. attribute:: handles_continuous 
     58     
     59        Indicates whether the measure can handle continuous features. 
     60 
     61    .. attribute:: computes_thresholds 
     62     
     63        Indicates whether the measure implements the :obj:`threshold_function`. 
     64 
     65    **Input specification** 
    8066 
    8167    .. attribute:: needs 
    8268     
    83     Tells what kind of data the measure needs. This can be either 
    84     :obj:`NeedsGenerator`, :obj:`NeedsDomainContingency`, 
    85     :obj:`NeedsContingency_Class`. The first need an instance generator (Relief 
    86     is an example of such measure), the second can compute the quality from 
    87     :obj:`Orange.statistics.contingency.Domain` and the latter only needs the 
    88     contingency (:obj:`Orange.statistics.contingency.VarClass`) the feature 
    89     distribution and the apriori class distribution. Most measures only need the 
    90     latter. 
    91  
    92     Several (but not all) measures can treat unknown feature values in 
    93     different ways, depending on field :obj:`unknownsTreatment` (this field is 
    94     not defined in :obj:`Measure` but in many derived classes). Undefined  
    95     values can be: 
    96      
    97     * ignored (:obj:`Measure.IgnoreUnknowns`); this has the same effect as if  
    98       the example for which the feature value is unknown are removed. 
    99  
    100     * punished (:obj:`Measure.ReduceByUnknown`); the feature quality is 
    101       reduced by the proportion of unknown values. In impurity measures, this 
    102       can be interpreted as if the impurity is decreased only on examples for 
    103       which the value is defined and stays the same for the others, and the 
    104       feature quality is the average impurity decrease. 
    105        
    106     * imputed (:obj:`Measure.UnknownsToCommon`); here, undefined values are 
    107       replaced by the most common feature value. If you want a more clever 
    108       imputation, you should do it in advance. 
    109  
    110     * treated as a separate value (:obj:`MeasureAttribute.UnknownsAsValue`) 
    111  
    112     The default treatment is :obj:`ReduceByUnknown`, which is optimal in most 
    113     cases and does not make additional presumptions (as, for instance, 
    114     :obj:`UnknownsToCommon` which supposes that missing values are not for 
    115     instance, results of measurements that were not performed due to 
    116     information extracted from the other features). Use other treatments if 
    117     you know that they make better sense on your data. 
    118  
    119     The only method supported by all measures is the call operator to which we 
    120     pass the data and get the number representing the quality of the feature. 
    121     The number does not have any absolute meaning and can vary widely for 
    122     different feature measures. The only common characteristic is that 
    123     higher the value, better the feature. If the feature is so bad that  
    124     it's quality cannot be measured, the measure returns 
    125     :obj:`Measure.Rejected`. None of the measures described here do so. 
    126  
    127     There are different sets of arguments that the call operator can accept. 
    128     Not all classes will accept all kinds of arguments. Relief, for instance, 
    129     cannot be computed from contingencies alone. Besides, the feature and 
    130     the class need to be of the correct type for a particular measure. 
    131  
    132     There are three call operators just to make your life simpler and faster. 
    133     When working with the data, your method might have already computed, for 
    134     instance, contingency matrix. If so and if the quality measure you use is 
    135     OK with that (as most measures are), you can pass the contingency matrix 
    136     and the measure will compute much faster. If, on the other hand, you only 
    137     have examples and haven't computed any statistics on them, you can pass 
    138     examples (and, optionally, an id for meta-feature with weights) and the 
    139     measure will compute the contingency itself, if needed. 
    140  
    141     .. method:: __call__(attribute, examples[, apriori class distribution][, weightID]) 
    142     .. method:: __call__(attribute, domain contingency[, apriori class distribution]) 
    143     .. method:: __call__(contingency, class distribution[, apriori class distribution]) 
    144  
    145         :param attribute: gives the feature whose quality is to be assessed. 
    146           This can be either a descriptor, an index into domain or a name. In 
    147           the first form, if the feature is given by descriptor, it doesn't 
    148           need to be in the domain. It needs to be computable from the 
    149           feature in the domain, though. 
    150            
    151         Data is given either as examples (and, optionally, id for meta-feature 
    152         with weight), contingency tables 
    153         (:obj:`Orange.statistics.contingency.Domain`) or distributions 
    154         (:obj:`Orange.statistics.distribution.Distribution`) for all 
    155         attributes. In the latter for, what is given as the class distribution 
    156         depends upon what you do with unknown values (if there are any).  If 
    157         :obj:`unknownsTreatment` is :obj:`IgnoreUnknowns`, the class 
    158         distribution should be computed on examples for which the feature value 
    159         is defined. Otherwise, class distribution should be the overall class 
    160         distribution. 
    161  
    162         The optional argument with apriori class distribution is 
    163         most often ignored. It comes handy if the measure makes any probability 
    164         estimates based on apriori class probabilities (such as m-estimate). 
    165  
    166     .. method:: thresholdFunction(attribute, examples[, weightID]) 
    167      
    168     This function computes the qualities for different binarizations of the 
    169     continuous feature :obj:`attribute`. The feature should of course be 
    170     continuous. The result of a function is a list of tuples, where the first 
    171     element represents a threshold (all splits in the middle between two 
    172     existing feature values), the second is the measured quality for a 
    173     corresponding binary feature and the last one is the distribution which 
    174     gives the number of examples below and above the threshold. The last 
    175     element, though, may be missing; generally, if the particular measure can 
    176     get the distribution without any computational burden, it will do so and 
    177     the caller can use it. If not, the caller needs to compute it itself. 
     69        The type of data needed: :obj:`NeedsGenerator`, :obj:`NeedsDomainContingency`, 
     70        or :obj:`NeedsContingency_Class`. 
     71 
     72    .. attribute:: NeedsGenerator 
     73 
     74        Constant. Indicates that the measure Needs an instance generator on the input (as, for example, the 
     75        :obj:`Relief` measure). 
     76 
     77    .. attribute:: NeedsDomainContingency 
     78 
     79        Constant. Indicates that the measure needs :obj:`Orange.statistics.contingency.Domain`. 
     80 
     81    .. attribute:: NeedsContingency_Class 
     82 
     83        Constant. Indicates, that the measure needs the contingency 
     84        (:obj:`Orange.statistics.contingency.VarClass`), feature 
     85        distribution and the apriori class distribution (as most 
     86        measures). 
     87 
     88    **Treatment of unknown values** 
     89 
     90    .. attribute:: unknowns_treatment 
     91 
     92        Not defined in :obj:`Measure` but defined in 
     93        classes that are able to treat unknown values. Either 
     94        :obj:`IgnoreUnknowns`, :obj:`ReduceByUnknown`. 
     95        :obj:`UnknownsToCommon`, or :obj:`UnknownsAsValue`. 
     96 
     97    .. attribute:: IgnoreUnknowns 
     98 
     99        Constant. Examples for which the feature value is unknown are removed. 
     100 
     101    .. attribute:: ReduceByUnknown 
     102 
     103        Constant. Features with unknown values are  
     104        punished. The feature quality is reduced by the proportion of 
     105        unknown values. For impurity measures the impurity decreases 
     106        only where the value is defined and stays the same otherwise, 
     107 
     108    .. attribute:: UnknownsToCommon 
     109 
     110        Constant. Undefined values are replaced by the most common value. 
     111 
     112    .. attribute:: UnknownsAsValue 
     113 
     114        Constant. Unknown values are treated as a separate value. 
     115 
     116    **Methods** 
     117 
     118    .. method:: __call__(attribute, instances[, apriori_class_distribution][, weightID]) 
     119 
     120        :param attribute: the chosen feature, either as a descriptor,  
     121          index, or a name. 
     122        :type attribute: :class:`Orange.data.variable.Variable` or int or string 
     123        :param instances: data. 
     124        :type instances: `Orange.data.Table` 
     125        :param weightID: id for meta-feature with weight. 
     126 
     127        Abstract. All measures need to support `__call__` with these 
     128        parameters.  Described below. 
     129 
     130    .. method:: __call__(attribute, domain_contingency[, apriori_class_distribution]) 
     131 
     132        :param attribute: the chosen feature, either as a descriptor,  
     133          index, or a name. 
     134        :type attribute: :class:`Orange.data.variable.Variable` or int or string 
     135        :param domain_contingency:  
     136        :type domain_contingency: :obj:`Orange.statistics.contingency.Domain` 
     137 
     138        Abstract. Described below. 
     139         
     140    .. method:: __call__(contingency, class_distribution[, apriori_class_distribution]) 
     141 
     142        :param contingency: 
     143        :type contingency: :obj:`Orange.statistics.contingency.VarClass` 
     144        :param class_distribution: distribution of the class 
     145          variable. If :obj:`unknowns_treatment` is :obj:`IgnoreUnknowns`, 
     146          it should be computed on instances where feature value is 
     147          defined. Otherwise, class distribution should be the overall 
     148          class distribution. 
     149        :type class_distribution:  
     150          :obj:`Orange.statistics.distribution.Distribution` 
     151        :param apriori_class_distribution: Optional and most often 
     152          ignored. Useful if the measure makes any probability estimates 
     153          based on apriori class probabilities (such as the m-estimate). 
     154        :return: Feature score - the higher the value, the better the feature. 
     155          If the quality cannot be measured, return :obj:`Measure.Rejected`. 
     156        :rtype: float or :obj:`Measure.Rejected`. 
     157 
     158        Abstract. 
     159 
     160        Different forms of `__call__` enable optimization.  For instance, 
     161        if contingency matrix has already been computed, you can speed 
     162        up the computation by passing it to the measure (if it supports 
     163        that form - most do). Otherwise the measure will have to compute the 
     164        contingency itself. 
     165 
     166        Not all classes will accept all kinds of arguments. :obj:`Relief`, 
     167        for instance, only supports the form with instances on the input. 
     168 
     169        The code sample below shows the use of :obj:`GainRatio` with 
     170        different call types. 
     171 
     172        .. literalinclude:: code/scoring-calls.py 
     173            :lines: 7- 
     174 
     175    .. method:: threshold_function(attribute, examples[, weightID]) 
     176     
     177        Abstract.  
     178         
     179        Assess different binarizations of the continuous feature 
     180        :obj:`attribute`.  Return a list of tuples, where the first 
     181        element is a threshold (between two existing values), the second 
     182        is the quality of the corresponding binary feature, and the last 
     183        the distribution of examples below and above the threshold. The 
     184        last element is optional. 
     185 
     186    .. method:: best_threshold 
     187 
     188        Return the best threshold for binarization. Parameters? 
     189 
    178190 
    179191    The script below shows different ways to assess the quality of astigmatic, 
    180     tear rate and the first feature (whichever it is) in the dataset lenses. 
     192    tear rate and the first feature in the dataset lenses. 
    181193 
    182194    .. literalinclude:: code/scoring-info-lenses.py 
     
    190202        0.548794984818 
    191203 
    192     You shouldn't use this shortcut with ReliefF, though; see the explanation 
    193     in the section on ReliefF. 
    194  
    195     It is also possible to assess the quality of features that do not exist 
    196     in the features. For instance, you can assess the quality of discretized 
    197     features without constructing a new domain and dataset that would include 
    198     them. 
    199  
    200     `scoring-info-iris.py`_ (uses `iris.tab`_): 
     204    You shouldn't use this with :obj:`Relief`; see :obj:`Relief` for the explanation. 
     205 
     206    It is also possible to score features that are not  
     207    in the domain. For instance, you can score discretized 
     208    features on the fly: 
    201209 
    202210    .. literalinclude:: code/scoring-info-iris.py 
    203211        :lines: 7-11 
    204212 
    205     The quality of the new feature d1 is assessed on data, which does not 
    206     include the new feature at all. (Note that ReliefF won't do that since 
    207     it would be too slow. ReliefF requires the feature to be present in the 
    208     dataset.) 
    209  
    210     Finally, you can compute the quality of meta-features. The following 
    211     script adds a meta-feature to an example table, initializes it to random 
    212     values and measures its information gain. 
    213  
    214     `scoring-info-lenses.py`_ (uses `lenses.tab`_): 
    215  
    216     .. literalinclude:: code/scoring-info-lenses.py 
    217         :lines: 54- 
     213    Note that this is not possible with :obj:`Relief`, as it would be too slow. 
    218214 
    219215    To show the computation of thresholds, we shall use the Iris data set. 
     
    225221 
    226222    If we hadn't constructed the feature in advance, we could write  
    227     `Orange.feature.scoring.Relief().thresholdFunction("petal length", data)`. 
     223    `Orange.feature.scoring.Relief().threshold_function("petal length", data)`. 
    228224    This is not recommendable for ReliefF, since it may be a lot slower. 
    229225 
     
    232228    feature will have the optimal ReliefF (or any other measure):: 
    233229 
    234         thresh, score, distr = meas.bestThreshold("petal length", data) 
     230        thresh, score, distr = meas.best_threshold("petal length", data) 
    235231        print "Best threshold: %5.3f (score %5.3f)" % (thresh, score) 
    236232 
    237 .. class:: MeasureAttributeFromProbabilities 
    238  
    239     This is the abstract base class for feature quality measures that can be 
     233.. class:: MeasureFromProbabilities 
     234 
     235    Bases: :obj:`Measure` 
     236 
     237    Abstract base class for feature quality measures that can be 
    240238    computed from contingency matrices only. It relieves the derived classes 
    241239    from having to compute the contingency matrix by defining the first two 
    242240    forms of call operator. (Well, that's not something you need to know if 
    243     you only work in Python.) Additional feature of this class is that you can 
    244     set probability estimators. If none are given, probabilities and 
    245     conditional probabilities of classes are estimated by relative frequencies. 
    246  
    247     .. attribute:: unknownsTreatment 
     241    you only work in Python.) 
     242 
     243    .. attribute:: unknowns_treatment 
    248244      
    249     Defines what to do with unknown values. See the possibilities described above. 
    250  
    251     .. attribute:: estimatorConstructor 
    252     .. attribute:: conditionalEstimatorConstructor 
    253      
    254     The classes that are used to estimate unconditional and conditional 
    255     probabilities of classes, respectively. You can set this to, for instance,  
    256     :obj:`ProbabilityEstimatorConstructor_m` and  
    257     :obj:`ConditionalProbabilityEstimatorConstructor_ByRows` 
    258     (with estimator constructor again set to  
    259     :obj:`ProbabilityEstimatorConstructor_m`), respectively. 
     245        See :obj:`Measure.unknowns_treatment`. 
     246 
     247    .. attribute:: estimator_constructor 
     248    .. attribute:: conditional_estimator_constructor 
     249     
     250        The classes that are used to estimate unconditional and 
     251        conditional probabilities of classes, respectively. You can set 
     252        this to, for instance, :obj:`ProbabilityEstimatorConstructor_m` 
     253        and :obj:`ConditionalProbabilityEstimatorConstructor_ByRows` 
     254        (with estimator constructor again set to 
     255        :obj:`ProbabilityEstimatorConstructor_m`), respectively. 
     256        Both default to relative frequencies. 
    260257 
    261258=========================== 
     
    263260=========================== 
    264261 
    265 This script scores features with gain ratio and relief. 
    266  
    267 `scoring-relief-gainRatio.py`_ (uses `voting.tab`_): 
     262This script uses :obj:`GainRatio` and :obj:`Relief`. 
    268263 
    269264.. literalinclude:: code/scoring-relief-gainRatio.py 
    270265    :lines: 7- 
    271266 
    272 Notice that on this data the ranks of features match rather well:: 
     267Notice that on this data the ranks of features match:: 
    273268     
    274269    Relief GainRt Feature 
     
    279274    0.166  0.345  adoption-of-the-budget-resolution 
    280275 
    281 The following section describes the feature quality measures suitable for  
    282 discrete features and outcomes.  
    283 See  `scoring-info-lenses.py`_, `scoring-info-iris.py`_, 
    284 `scoring-diff-measures.py`_ and `scoring-regression.py`_ 
    285 for more examples on their use. 
     276Undocumented: MeasureAttribute_IM, MeasureAttribute_chiSquare, MeasureAttribute_gainRatioA, MeasureAttribute_logOddsRatio, MeasureAttribute_splitGain. 
    286277 
    287278.. index::  
     
    290281.. class:: InfoGain 
    291282 
    292     The most popular measure, information gain :obj:`Info` measures the expected 
    293     decrease of the entropy. 
     283    Measures the expected decrease of entropy. 
    294284 
    295285.. index::  
     
    298288.. class:: GainRatio 
    299289 
    300     Gain ratio :obj:`GainRatio` was introduced by Quinlan in order to avoid 
    301     overestimation of multi-valued features. It is computed as information 
    302     gain divided by the entropy of the feature's value. (It has been shown, 
    303     however, that such measure still overstimates the features with multiple 
    304     values.) 
     290    Information gain divided by the entropy of the feature's 
     291    value. Introduced by Quinlan in order to avoid overestimation of 
     292    multi-valued features. It has been shown, however, that it 
     293    still overestimates features with multiple values. 
    305294 
    306295.. index::  
     
    309298.. class:: Gini 
    310299 
    311     Gini index :obj:`Gini` was first introduced by Breiman and can be interpreted 
    312     as the probability that two randomly chosen examples will have different 
    313     classes. 
     300    The probability that two randomly chosen examples will have different 
     301    classes; first introduced by Breiman. 
    314302 
    315303.. index::  
     
    318306.. class:: Relevance 
    319307 
    320     Relevance of features :obj:`Relevance` is a measure that discriminate 
    321     between features on the basis of their potential value in the formation of 
    322     decision rules. 
     308    The potential value for decision rules. 
    323309 
    324310.. index::  
     
    332318    .. attribute:: cost 
    333319      
    334     Cost matrix, see :obj:`Orange.classification.CostMatrix` for details. 
    335  
    336     If cost of predicting the first class for an example that is actually in 
     320        Cost matrix, see :obj:`Orange.classification.CostMatrix` for details. 
     321 
     322    If cost of predicting the first class of an example that is actually in 
    337323    the second is 5, and the cost of the opposite error is 1, than an appropriate 
    338     measure can be constructed and used for feature 3 as follows:: 
     324    measure can be constructed as follows:: 
    339325 
    340326        >>> meas = Orange.feature.scoring.Cost() 
     
    343329        0.083333350718021393 
    344330 
    345     This tells that knowing the value of feature 3 would decrease the 
    346     classification cost for appx 0.083 per example. 
     331    Knowing the value of feature 3 would decrease the 
     332    classification cost for approximately 0.083 per example. 
    347333 
    348334.. index::  
     
    351337.. class:: Relief 
    352338 
    353     ReliefF :obj:`Relief` was first developed by Kira and Rendell and then 
    354     substantially generalized and improved by Kononenko. It measures the 
    355     usefulness of features based on their ability to distinguish between 
    356     very similar examples belonging to different classes. 
     339    Assesses features' ability to distinguish between very similar 
     340    examples from different classes.  First developed by Kira and Rendell 
     341    and then improved by Kononenko. 
    357342 
    358343    .. attribute:: k 
    359344     
    360     Number of neighbours for each example. Default is 5. 
     345       Number of neighbours for each example. Default is 5. 
    361346 
    362347    .. attribute:: m 
    363348     
    364     Number of reference examples. Default is 100. Set to -1 to take all the 
    365     examples. 
    366  
    367     .. attribute:: checkCachedData 
    368      
    369     A flag best left alone unless you know what you do. 
    370  
    371 Computation of ReliefF is rather slow since it needs to find k nearest 
    372 neighbours for each of m reference examples (or all examples, if m is set to 
    373 -1). Since we normally compute ReliefF for all features in the dataset, 
    374 :obj:`Relief` caches the results. When it is called to compute a quality of 
    375 certain feature, it computes qualities for all features in the dataset. 
    376 When called again, it uses the stored results if the data has not changeddomain 
    377 is still the same and the example table has not changed. Checking is done by 
    378 comparing the data table version :obj:`Orange.data.Table` for details) and then 
    379 computing a checksum of the data and comparing it with the previous checksum. 
    380 The latter can take some time on large tables, so you may want to disable it 
    381 by setting `checkCachedData` to :obj:`False`. In most cases it will do no harm, 
    382 except when the data is changed in such a way that it passed unnoticed by the  
    383 version' control, in which cases the computed ReliefFs can be false. Hence: 
    384 disable it if you know that the data does not change or if you know what kind 
    385 of changes are detected by the version control. 
    386  
    387 Caching will only have an effect if you use the same instance for all 
    388 features in the domain. So, don't do this:: 
    389  
    390     for attr in data.domain.attributes: 
    391         print Orange.feature.scoring.Relief(attr, data) 
    392  
    393 In this script, cached data dies together with the instance of :obj:`Relief`, 
    394 which is constructed and destructed for each feature separately. It's way 
    395 faster to go like this:: 
    396  
    397     meas = Orange.feature.scoring.Relief() 
    398     for attr in table.domain.attributes: 
    399         print meas(attr, data) 
    400  
    401 When called for the first time, meas will compute ReliefF for all features 
    402 and the subsequent calls simply return the stored data. 
    403  
    404 Class :obj:`Relief` works on discrete and continuous classes and thus  
    405 implements functionality of algorithms ReliefF and RReliefF. 
    406  
    407 .. note:: 
    408    ReliefF can also compute the threshold function, that is, the feature 
    409    quality at different thresholds for binarization. 
    410  
    411 Finally, here is an example which shows what can happen if you disable the  
    412 computation of checksums:: 
    413  
    414     table = Orange.data.Table("iris") 
    415     r1 = Orange.feature.scoring.Relief() 
    416     r2 = Orange.feature.scoring.Relief(checkCachedData = False) 
    417  
    418     print "%.3f\\t%.3f" % (r1(0, table), r2(0, table)) 
    419     for ex in table: 
    420         ex[0] = 0 
    421     print "%.3f\\t%.3f" % (r1(0, table), r2(0, table)) 
    422  
    423 The first print prints out the same number, 0.321 twice. Then we annulate the 
    424 first feature. r1 notices it and returns -1 as it's ReliefF, 
    425 while r2 does not and returns the same number, 0.321, which is now wrong. 
     349        Number of reference examples. Default is 100. Set to -1 to take all the 
     350        examples. 
     351 
     352    .. attribute:: check_cached_data 
     353     
     354        Check if the cached data is changed with data checksum. Slow 
     355        on large tables.  Defaults to True. Disable it if you know that 
     356        the data will not change. 
     357 
     358    ReliefF is slow since it needs to find k nearest neighbours for each 
     359    of m reference examples.  As we normally compute ReliefF for all 
     360    features in the dataset, :obj:`Relief` caches the results. When called 
     361    to score a certain feature, it computes all feature scores. 
     362    When called again, it uses the stored results if the domain and the 
     363    data table have not changed (data table version and the data checksum 
     364    are compared). Caching will only work if you use the same instance. 
     365    So, don't do this:: 
     366 
     367        for attr in data.domain.attributes: 
     368            print Orange.feature.scoring.Relief(attr, data) 
     369 
     370    But this:: 
     371 
     372        meas = Orange.feature.scoring.Relief() 
     373        for attr in table.domain.attributes: 
     374            print meas(attr, data) 
     375 
     376    Class :obj:`Relief` works on discrete and continuous classes and thus  
     377    implements functionality of algorithms ReliefF and RReliefF. 
     378 
     379    .. note:: 
     380       Relief can also compute the threshold function, that is, the feature 
     381       quality at different thresholds for binarization. 
     382 
    426383 
    427384======================= 
     
    429386======================= 
    430387 
    431 Except for ReliefF, the only feature quality measure available for regression 
    432 problems is based on a mean square error. 
     388:obj:`Relief` can be also used for regression. 
    433389 
    434390.. index::  
     
    439395    Implements the mean square error measure. 
    440396 
    441     .. attribute:: unknownsTreatment 
    442      
    443     Tells what to do with unknown feature values. See description on the top 
    444     of this page. 
     397    .. attribute:: unknowns_treatment 
     398     
     399        What to do with unknown values. See :obj:`Measure.unknowns_treatment`. 
    445400 
    446401    .. attribute:: m 
    447402     
    448     Parameter for m-estimate of error. Default is 0 (no m-estimate). 
     403        Parameter for m-estimate of error. Default is 0 (no m-estimate). 
     404 
     405============ 
     406Other 
     407============ 
     408 
     409.. autoclass:: Orange.feature.scoring.OrderAttributes 
     410   :members: 
     411 
     412.. autofunction:: Orange.feature.scoring.Distance 
     413 
     414.. autoclass:: Orange.feature.scoring.DistanceClass 
     415   :members: 
     416    
     417.. autofunction:: Orange.feature.scoring.MDL 
     418 
     419.. autoclass:: Orange.feature.scoring.MDLClass 
     420   :members: 
     421 
     422.. autofunction:: Orange.feature.scoring.merge_values 
     423 
     424.. autofunction:: Orange.feature.scoring.score_all 
    449425 
    450426========== 
     
    470446 
    471447import Orange.core as orange 
     448import Orange.misc 
    472449 
    473450from orange import MeasureAttribute as Measure 
     451from orange import MeasureAttributeFromProbabilities as MeasureFromProbabilities 
    474452from orange import MeasureAttribute_info as InfoGain 
    475453from orange import MeasureAttribute_gainRatio as GainRatio 
     
    480458from orange import MeasureAttribute_MSE as MSE 
    481459 
     460 
    482461###### 
    483462# from orngEvalAttr.py 
    484 class OrderAttributesByMeasure: 
    485     """Construct an instance that orders features by their scores. 
    486      
    487     :param measure: a feature measure, derived from  
    488       :obj:`Orange.feature.scoring.Measure`. 
     463class OrderAttributes: 
     464    """Orders features by their scores. 
     465     
     466    .. attribute::  measure 
     467     
     468        A measure derived from :obj:`~Orange.feature.scoring.Measure`. 
     469        If None, :obj:`Relief` will be used. 
    489470     
    490471    """ 
     
    493474 
    494475    def __call__(self, data, weight): 
    495         """Take :obj:`Orange.data.table` data table and an instance of 
    496         :obj:`Orange.feature.scoring.Measure` to score and order features.   
     476        """Score and order all features. 
    497477 
    498478        :param data: a data table used to score features 
    499479        :type data: Orange.data.table 
    500480 
    501         :param weight: meta feature that stores weights of individual data 
    502           instances 
     481        :param weight: meta attribute that stores weights of instances 
    503482        :type weight: Orange.data.variable 
    504483 
     
    513492        return [x[0] for x in measured] 
    514493 
    515 def MeasureAttribute_Distance(attr = None, data = None): 
    516     """Instantiate :obj:`MeasureAttribute_DistanceClass` and use it to return 
     494def Distance(attr=None, data=None): 
     495    """Instantiate :obj:`DistanceClass` and use it to return 
    517496    the score of a given feature on given data. 
    518497     
     
    524503     
    525504    """ 
    526     m = MeasureAttribute_DistanceClass() 
     505    m = DistanceClass() 
    527506    if attr != None and data != None: 
    528507        return m(attr, data) 
     
    530509        return m 
    531510 
    532 class MeasureAttribute_DistanceClass(orange.MeasureAttribute): 
    533     """Implement the 1-D feature distance measure described in Kononenko.""" 
    534     def __call__(self, attr, data, aprioriDist = None, weightID = None): 
     511class DistanceClass(Measure): 
     512    """The 1-D feature distance measure described in Kononenko.""" 
     513 
     514    @Orange.misc.deprecated_keywords({"aprioriDist": "apriori_dist"}) 
     515    def __call__(self, attr, data, apriori_dist=None, weightID=None): 
    535516        """Take :obj:`Orange.data.table` data table and score the given  
    536517        :obj:`Orange.data.variable`. 
     
    542523        :type data: Orange.data.table 
    543524 
    544         :param aprioriDist:  
    545         :type aprioriDist: 
     525        :param apriori_dist:  
     526        :type apriori_dist: 
    546527         
    547528        :param weightID: meta feature used to weight individual data instances 
     
    564545            return 0 
    565546 
    566 def MeasureAttribute_MDL(attr = None, data = None): 
    567     """Instantiate :obj:`MeasureAttribute_MDLClass` and use it n given data to 
     547def MDL(attr=None, data=None): 
     548    """Instantiate :obj:`MDLClass` and use it n given data to 
    568549    return the feature's score.""" 
    569     m = MeasureAttribute_MDLClass() 
     550    m = MDLClass() 
    570551    if attr != None and data != None: 
    571552        return m(attr, data) 
     
    573554        return m 
    574555 
    575 class MeasureAttribute_MDLClass(orange.MeasureAttribute): 
     556class MDLClass(Measure): 
    576557    """Score feature based on the minimum description length principle.""" 
    577     def __call__(self, attr, data, aprioriDist = None, weightID = None): 
     558 
     559    @Orange.misc.deprecated_keywords({"aprioriDist": "apriori_dist"}) 
     560    def __call__(self, attr, data, apriori_dist=None, weightID=None): 
    578561        """Take :obj:`Orange.data.table` data table and score the given  
    579562        :obj:`Orange.data.variable`. 
     
    585568        :type data: Orange.data.table 
    586569 
    587         :param aprioriDist:  
    588         :type aprioriDist: 
     570        :param apriori_dist:  
     571        :type apriori_dist: 
    589572         
    590573        :param weightID: meta feature used to weight individual data instances 
     
    626609    return ret 
    627610 
    628 def mergeAttrValues(data, attrList, attrMeasure, removeUnusedValues = 1): 
     611 
     612@Orange.misc.deprecated_keywords({"attrList": "attr_list", "attrMeasure": "attr_measure", "removeUnusedValues": "remove_unused_values"}) 
     613def merge_values(data, attr_list, attr_measure, remove_unused_values = 1): 
    629614    import orngCI 
    630     #data = data.select([data.domain[attr] for attr in attrList] + [data.domain.classVar]) 
    631     newData = data.select(attrList + [data.domain.classVar]) 
    632     newAttr = orngCI.FeatureByCartesianProduct(newData, attrList)[0] 
     615    #data = data.select([data.domain[attr] for attr in attr_list] + [data.domain.classVar]) 
     616    newData = data.select(attr_list + [data.domain.class_var]) 
     617    newAttr = orngCI.FeatureByCartesianProduct(newData, attr_list)[0] 
    633618    dist = orange.Distribution(newAttr, newData) 
    634619    activeValues = [] 
    635620    for i in range(len(newAttr.values)): 
    636621        if dist[newAttr.values[i]] > 0: activeValues.append(i) 
    637     currScore = attrMeasure(newAttr, newData) 
     622    currScore = attr_measure(newAttr, newData) 
    638623    while 1: 
    639624        bestScore, bestMerge = currScore, None 
    640625        for i1, ind1 in enumerate(activeValues): 
    641             oldInd1 = newAttr.getValueFrom.lookupTable[ind1] 
     626            oldInd1 = newAttr.get_value_from.lookupTable[ind1] 
    642627            for ind2 in activeValues[:i1]: 
    643                 newAttr.getValueFrom.lookupTable[ind1] = ind2 
    644                 score = attrMeasure(newAttr, newData) 
     628                newAttr.get_value_from.lookupTable[ind1] = ind2 
     629                score = attr_measure(newAttr, newData) 
    645630                if score >= bestScore: 
    646631                    bestScore, bestMerge = score, (ind1, ind2) 
    647                 newAttr.getValueFrom.lookupTable[ind1] = oldInd1 
     632                newAttr.get_value_from.lookupTable[ind1] = oldInd1 
    648633 
    649634        if bestMerge: 
    650635            ind1, ind2 = bestMerge 
    651636            currScore = bestScore 
    652             for i, l in enumerate(newAttr.getValueFrom.lookupTable): 
     637            for i, l in enumerate(newAttr.get_value_from.lookupTable): 
    653638                if not l.isSpecial() and int(l) == ind1: 
    654                     newAttr.getValueFrom.lookupTable[i] = ind2 
     639                    newAttr.get_value_from.lookupTable[i] = ind2 
    655640            newAttr.values[ind2] = newAttr.values[ind2] + "+" + newAttr.values[ind1] 
    656641            del activeValues[activeValues.index(ind1)] 
     
    658643            break 
    659644 
    660     if not removeUnusedValues: 
     645    if not remove_unused_values: 
    661646        return newAttr 
    662647 
    663648    reducedAttr = orange.EnumVariable(newAttr.name, values = [newAttr.values[i] for i in activeValues]) 
    664     reducedAttr.getValueFrom = newAttr.getValueFrom 
    665     reducedAttr.getValueFrom.classVar = reducedAttr 
     649    reducedAttr.get_value_from = newAttr.get_value_from 
     650    reducedAttr.get_value_from.class_var = reducedAttr 
    666651    return reducedAttr 
    667652 
    668653###### 
    669654# from orngFSS 
    670 def attMeasure(data, measure=Relief(k=20, m=50)): 
     655def score_all(data, measure=Relief(k=20, m=50)): 
    671656    """Assess the quality of features using the given measure and return 
    672657    a sorted list of tuples (feature name, measure). 
     
    675660    :type data: :obj:`Orange.data.table` 
    676661    :param measure:  feature scoring function. Derived from 
    677       :obj:`Orange.feature.scoring.Measure`. Defaults to Defaults to  
     662      :obj:`Orange.feature.scoring.Measure`. Defaults to  
    678663      :obj:`Orange.feature.scoring.Relief` with k=20 and m=50. 
    679664    :type measure: :obj:`Orange.feature.scoring.Measure`  
  • orange/Orange/feature/selection.py

    r8042 r8506  
    11""" 
     2######################### 
     3Selection (``selection``) 
     4######################### 
    25 
    36.. index:: feature selection 
     
    165168import Orange.core as orange 
    166169 
    167 from Orange.feature.scoring import attMeasure 
     170from Orange.feature.scoring import score_all 
    168171 
    169172# from orngFSS 
    170173def bestNAtts(scores, N): 
    171174    """Return the best N features (without scores) from the list returned 
    172     by function :obj:`Orange.feature.scoring.attMeasure`. 
    173      
    174     :param scores: a list such as one returned by  
    175       :obj:`Orange.feature.scoring.attMeasure` 
     175    by :obj:`Orange.feature.scoring.score_all`. 
     176     
     177    :param scores: a list such as returned by  
     178      :obj:`Orange.feature.scoring.score_all` 
    176179    :type scores: list 
    177180    :param N: number of best features to select.  
     
    184187def attsAboveThreshold(scores, threshold=0.0): 
    185188    """Return features (without scores) from the list returned by 
    186     :obj:`Orange.feature.scoring.attMeasure` with score above or 
     189    :obj:`Orange.feature.scoring.score_all` with score above or 
    187190    equal to a specified threshold. 
    188191     
    189192    :param scores: a list such as one returned by 
    190       :obj:`Orange.feature.scoring.attMeasure` 
     193      :obj:`Orange.feature.scoring.score_all` 
    191194    :type scores: list 
    192195    :param threshold: score threshold for attribute selection. Defaults to 0. 
     
    205208    :type data: Orange.data.table 
    206209    :param scores: a list such as one returned by  
    207       :obj:`Orange.feature.scoring.attMeasure` 
     210      :obj:`Orange.feature.scoring.score_all` 
    208211    :type scores: list 
    209212    :param N: number of features to select 
     
    218221    """Construct and return a new set of examples that includes a class and  
    219222    features from the list returned by  
    220     :obj:`Orange.feature.scoring.attMeasure` that have the score above or  
     223    :obj:`Orange.feature.scoring.score_all` that have the score above or  
    221224    equal to a specified threshold. 
    222225     
     
    224227    :type data: Orange.data.table 
    225228    :param scores: a list such as one returned by 
    226       :obj:`Orange.feature.scoring.attMeasure`     
     229      :obj:`Orange.feature.scoring.score_all`     
    227230    :type scores: list 
    228231    :param threshold: score threshold for attribute selection. Defaults to 0. 
     
    253256     
    254257    """ 
    255     measl = attMeasure(data, measure) 
     258    measl = score_all(data, measure) 
    256259    while len(data.domain.attributes)>0 and measl[-1][1]<margin: 
    257260        data = selectBestNAtts(data, measl, len(data.domain.attributes)-1) 
    258261#        print 'remaining ', len(data.domain.attributes) 
    259         measl = attMeasure(data, measure) 
     262        measl = score_all(data, measure) 
    260263    return data 
    261264 
     
    304307 
    305308        """ 
    306         ma = attMeasure(data, self.measure) 
     309        ma = score_all(data, self.measure) 
    307310        return selectAttsAboveThresh(data, ma, self.threshold) 
    308311 
     
    327330        self.n = n 
    328331    def __call__(self, data): 
    329         ma = attMeasure(data, self.measure) 
     332        ma = score_all(data, self.measure) 
    330333        self.n = min(self.n, len(data.domain.attributes)) 
    331334        return selectBestNAtts(data, ma, self.n) 
  • orange/OrangeCanvas/orngDoc.py

    r8052 r8106  
    341341            return 
    342342         
    343         with self.signalManager.freeze(): 
    344             while widget.inLines != []: self.removeLine1(widget.inLines[0]) 
    345             while widget.outLines != []:  self.removeLine1(widget.outLines[0]) 
     343        #with self.signalManager.freeze(): 
     344        while widget.inLines != []: self.removeLine1(widget.inLines[0]) 
     345        while widget.outLines != []:  self.removeLine1(widget.outLines[0]) 
    346346     
    347             self.signalManager.removeWidget(widget.instance) 
     347        self.signalManager.removeWidget(widget.instance) 
    348348             
    349349        self.widgets.remove(widget) 
  • orange/doc/Orange/rst/Orange.feature.rst

    r8264 r8506  
    1 ********************* 
     1##################### 
    22Feature (``feature``) 
    3 ********************* 
     3##################### 
    44 
    55.. automodule:: Orange.feature 
     6 
     7.. toctree:: 
     8   :maxdepth: 2 
     9 
     10   Orange.feature.scoring 
     11   Orange.feature.selection 
     12   Orange.feature.discretization 
     13   Orange.feature.continuization 
     14   Orange.feature.imputation 
  • orange/doc/Orange/rst/code/majority-classification.py

    r8042 r8102  
    11# Description: Shows how to "learn" the majority class and compare other classifiers to the default classification 
    22# Category:    default classification accuracy, statistics 
    3 # Classes:     MajorityLearner, Orange.evaluation.testing.crossValidation 
     3# Classes:     MajorityLearner, Orange.evaluation.testing.cross_validation 
    44# Uses:        monks-1 
    55# Referenced:  majority.htm 
    66 
    77import Orange 
    8 import orngStat 
    98 
    109table = Orange.data.Table("monks-1") 
     
    1514learners = [treeLearner, bayesLearner, majorityLearner] 
    1615 
    17 res = Orange.evaluation.testing.crossValidation(learners, table) 
    18 CAs = orngStat.CA(res, reportSE = 1) 
     16res = Orange.evaluation.testing.cross_validation(learners, table) 
     17CAs = Orange.evaluation.scoring.CA(res, reportSE=True) 
    1918 
    2019print "Tree:    %5.3f+-%5.3f" % CAs[0] 
  • orange/doc/Orange/rst/code/mean-regression.py

    r8042 r8102  
    1313learners = [treeLearner, meanLearner] 
    1414 
    15 res = Orange.evaluation.testing.crossValidation(learners, table) 
     15res = Orange.evaluation.testing.cross_validation(learners, table) 
    1616MSEs = Orange.evaluation.scoring.MSE(res) 
    1717 
  • orange/doc/Orange/rst/code/scoring-all.py

    r8042 r8506  
    22# Category:    feature scoring 
    33# Uses:        voting 
    4 # Referenced:  Orange.feature.html#scoring 
    5 # Classes:     Orange.feature.scoring.attMeasure, Orange.features.scoring.GainRatio 
     4# Referenced:  Orange.feature.scoring 
     5# Classes:     Orange.feature.scoring.score_all, Orange.feature.scoring.Relief 
    66 
    77import Orange 
    88table = Orange.data.Table("voting") 
    99 
    10 print 'Feature scores for best three features:' 
    11 ma = Orange.feature.scoring.attMeasure(table) 
    12 for m in ma[:3]: 
    13     print "%5.3f %s" % (m[1], m[0]) 
     10def print_best_3(ma): 
     11    for m in ma[:3]: 
     12        print "%5.3f %s" % (m[1], m[0]) 
     13 
     14print 'Feature scores for best three features (with score_all):' 
     15ma = Orange.feature.scoring.score_all(table) 
     16print_best_3(ma) 
     17 
     18print 
     19 
     20print 'Feature scores for best three features (scored individually):' 
     21meas = Orange.feature.scoring.Relief(k=20, m=50) 
     22mr = [ (a.name, meas(a, table)) for a in table.domain.attributes ] 
     23mr.sort(key=lambda x: -x[1]) #sort decreasingly by the score 
     24print_best_3(mr) 
     25 
     26 
     27 
     28 
  • orange/doc/Orange/rst/code/scoring-diff-measures.py

    r8042 r8506  
    33# Uses:        measure 
    44# Referenced:  Orange.feature.html#scoring 
    5 # Classes:     Orange.feature.scoring.attMeasure, Orange.features.scoring.Info, Orange.features.scoring.GainRatio, Orange.features.scoring.Gini, Orange.features.scoring.Relevance, Orange.features.scoring.Cost, Orange.features.scoring.Relief 
     5# Classes:     Orange.features.scoring.Info, Orange.features.scoring.GainRatio, Orange.features.scoring.Gini, Orange.features.scoring.Relevance, Orange.features.scoring.Cost, Orange.features.scoring.Relief 
    66 
    77import Orange 
     
    2424    print fstr % (("- no unknowns:",) + tuple([meas(i, table) for i in range(attrs)])) 
    2525 
    26     meas.unknownsTreatment = meas.IgnoreUnknowns 
     26    meas.unknowns_treatment = meas.IgnoreUnknowns 
    2727    print fstr % (("- ignore unknowns:",) + tuple([meas(i, table2) for i in range(attrs)])) 
    2828 
    29     meas.unknownsTreatment = meas.ReduceByUnknowns 
     29    meas.unknowns_treatment = meas.ReduceByUnknowns 
    3030    print fstr % (("- reduce unknowns:",) + tuple([meas(i, table2) for i in range(attrs)])) 
    3131 
    32     meas.unknownsTreatment = meas.UnknownsToCommon 
     32    meas.unknowns_treatment = meas.UnknownsToCommon 
    3333    print fstr % (("- unknowns to common:",) + tuple([meas(i, table2) for i in range(attrs)])) 
    3434 
    35     meas.unknownsTreatment = meas.UnknownsAsValue 
     35    meas.unknowns_treatment = meas.UnknownsAsValue 
    3636    print fstr % (("- unknowns as value:",) + tuple([meas(i, table2) for i in range(attrs)])) 
    3737    print 
  • orange/doc/Orange/rst/code/scoring-info-iris.py

    r8042 r8115  
    1212 
    1313meas = Orange.feature.scoring.Relief() 
    14 for t in meas.thresholdFunction("petal length", table): 
     14for t in meas.threshold_function("petal length", table): 
    1515    print "%5.3f: %5.3f" % t 
    1616 
    17 thresh, score, distr = meas.bestThreshold("petal length", table) 
     17thresh, score, distr = meas.best_threshold("petal length", table) 
    1818print "\nBest threshold: %5.3f (score %5.3f)" % (thresh, score) 
  • orange/doc/Orange/rst/code/scoring-info-lenses.py

    r8042 r8115  
    55# Classes:     Orange.feature.scoring.Measure, Orange.features.scoring.Info 
    66 
    7 import Orange 
    8 import random 
     7import Orange, random 
     8 
    99table = Orange.data.Table("lenses") 
    1010 
     
    1414print "Information gain of 'astigmatic': %6.4f" % meas(astigm, table) 
    1515 
    16 classdistr = Orange.data.value.Distribution(table.domain.classVar, table) 
    17 cont = Orange.probability.distributions.ContingencyAttrClass("tear_rate", table) 
     16classdistr = Orange.statistics.distribution.Distribution(table.domain.class_var, table) 
     17cont = Orange.statistics.contingency.VarClass("tear_rate", table) 
    1818print "Information gain of 'tear_rate': %6.4f" % meas(cont, classdistr) 
    1919 
    20 dcont = Orange.probability.distributions.DomainContingency(table) 
     20dcont = Orange.statistics.contingency.Domain(table) 
    2121print "Information gain of the first attribute: %6.4f" % meas(0, dcont) 
    2222print 
     
    3838print 
    3939 
    40 dcont = Orange.probability.distributions.DomainContingency(table) 
     40dcont = Orange.statistics.contingency.Domain(table) 
    4141print "Computing information gain from DomainContingency" 
    4242print fstr % (("- by attribute number:",) + tuple([meas(i, dcont) for i in range(attrs)])) 
     
    4646 
    4747print "Computing information gain from DomainContingency" 
    48 cdist = Orange.data.value.Distribution(table.domain.classVar, table) 
    49 print fstr % (("- by attribute number:",) + tuple([meas(Orange.probability.distributions.ContingencyAttrClass(i, table), cdist) for i in range(attrs)])) 
    50 print fstr % (("- by attribute name:",) + tuple([meas(Orange.probability.distributions.ContingencyAttrClass(i, table), cdist) for i in names])) 
    51 print fstr % (("- by attribute descriptor:",) + tuple([meas(Orange.probability.distributions.ContingencyAttrClass(i, table), cdist) for i in table.domain.attributes])) 
     48cdist = Orange.statistics.distribution.Distribution(table.domain.class_var, table) 
     49print fstr % (("- by attribute number:",) + tuple([meas(Orange.statistics.contingency.VarClass(i, table), cdist) for i in range(attrs)])) 
     50print fstr % (("- by attribute name:",) + tuple([meas(Orange.statistics.contingency.VarClass(i, table), cdist) for i in names])) 
     51print fstr % (("- by attribute descriptor:",) + tuple([meas(Orange.statistics.contingency.VarClass(i, table), cdist) for i in table.domain.attributes])) 
    5252print 
    5353 
    5454values = ["v%i" % i for i in range(len(table.domain[2].values)*len(table.domain[3].values))] 
    5555cartesian = Orange.data.variable.Discrete("cart", values = values) 
    56 cartesian.getValueFrom = Orange.classification.lookup.ClassifierByLookupTable(cartesian, table.domain[2], table.domain[3], values) 
     56cartesian.get_value_from = Orange.classification.lookup.ClassifierByLookupTable(cartesian, table.domain[2], table.domain[3], values) 
    5757 
    5858print "Information gain of Cartesian product of %s and %s: %6.4f" % (table.domain[2].name, table.domain[3].name, meas(cartesian, table)) 
    5959 
    6060mid = Orange.core.newmetaid() 
    61 table.domain.addmeta(mid, Orange.data.variable.Discrete(values = ["v0", "v1"])) 
    62 table.addMetaAttribute(mid) 
     61table.domain.add_meta(mid, Orange.data.variable.Discrete(values = ["v0", "v1"])) 
     62table.add_meta_attribute(mid) 
    6363 
    6464rg = random.Random() 
    6565rg.seed(0) 
    6666for ex in table: 
    67     ex[mid] = Orange.data.value.Value(rg.randint(0, 1)) 
     67    ex[mid] = Orange.data.Value(rg.randint(0, 1)) 
    6868 
    6969print "Information gain for a random meta attribute: %6.4f" % meas(mid, table) 
  • orange/doc/Orange/rst/code/scoring-regression.py

    r8042 r8115  
    55# Classes:     Orange.feature.scoring.MSE 
    66 
    7 import Orange 
    8 import random 
     7import Orange, random 
     8 
    99data = Orange.data.Table("measure-c") 
    1010 
     
    2424    print fstr % (("- no unknowns:",) + tuple([meas(i, data) for i in range(attrs)])) 
    2525 
    26     meas.unknownsTreatment = meas.IgnoreUnknowns 
     26    meas.unknowns_treatment = meas.IgnoreUnknowns 
    2727    print fstr % (("- ignore unknowns:",) + tuple([meas(i, data2) for i in range(attrs)])) 
    2828 
    29     meas.unknownsTreatment = meas.ReduceByUnknowns 
     29    meas.unknowns_treatment = meas.ReduceByUnknowns 
    3030    print fstr % (("- reduce unknowns:",) + tuple([meas(i, data2) for i in range(attrs)])) 
    3131 
    32     meas.unknownsTreatment = meas.UnknownsToCommon 
     32    meas.unknowns_treatment = meas.UnknownsToCommon 
    3333    print fstr % (("- unknowns to common:",) + tuple([meas(i, data2) for i in range(attrs)])) 
    3434    print 
  • orange/doc/Orange/rst/code/scoring-relief-caching.py

    r7510 r8115  
    11# Description: Shows why ReliefF needs to check the cached neighbours 
    2 # Category:    feature scoring 
     2# Category:    statistics 
     3# Classes:     MeasureAttribute_relief 
    34# Uses:        iris 
    4 # Referenced:  Orange.feature.html#scoring 
    5 # Classes:     Orange.feature.scoring.Relief 
     5# Referenced:  MeasureAttribute.htm 
    66 
    77import orange 
     
    99 
    1010r1 = orange.MeasureAttribute_relief() 
    11 r2 = orange.MeasureAttribute_relief(checkCachedData = False) 
     11r2 = orange.MeasureAttribute_relief(check_cached_data = False) 
    1212 
    1313print "%.3f\t%.3f" % (r1(0, data), r2(0, data)) 
  • orange/doc/Orange/rst/code/scoring-relief-gainRatio.py

    r8042 r8506  
    33# Uses:        voting 
    44# Referenced:  Orange.feature.html#scoring 
    5 # Classes:     Orange.feature.scoring.attMeasure, Orange.features.scoring.GainRatio 
     5# Classes:     Orange.feature.scoring.score_all, Orange.features.scoring.GainRatio 
    66 
    77import Orange 
     
    99 
    1010print 'Relief GainRt Feature' 
    11 ma_def = Orange.feature.scoring.attMeasure(table) 
     11ma_def = Orange.feature.scoring.score_all(table) 
    1212gr = Orange.feature.scoring.GainRatio() 
    13 ma_gr  = Orange.feature.scoring.attMeasure(table, gr) 
     13ma_gr  = Orange.feature.scoring.score_all(table, gr) 
    1414for i in range(5): 
    1515    print "%5.3f  %5.3f  %s" % (ma_def[i][1], ma_gr[i][1], ma_def[i][0]) 
  • orange/doc/Orange/rst/code/selection-bayes.py

    r8042 r8506  
    33# Uses:        voting 
    44# Referenced:  Orange.feature.html#selection 
    5 # Classes:     Orange.feature.scoring.attMeasure, Orange.feature.selection.bestNAtts 
     5# Classes:     Orange.feature.scoring.score_all, Orange.feature.selection.bestNAtts 
    66 
    77import Orange 
    8 import orngTest, orngEval 
     8 
    99 
    1010class BayesFSS(object): 
     
    2121       
    2222    def __call__(self, table, weight=None): 
    23         ma = Orange.feature.scoring.attMeasure(table) 
     23        ma = Orange.feature.scoring.score_all(table) 
    2424        filtered = Orange.feature.selection.selectBestNAtts(table, ma, self.N) 
    2525        model = Orange.classification.bayes.NaiveLearner(filtered) 
     
    3333        return self.classifier(example, resultType) 
    3434 
     35 
    3536# test above wraper on a data set 
    36 import orngStat, orngTest 
    3737table = Orange.data.Table("voting") 
    3838learners = (Orange.classification.bayes.NaiveLearner(name='Naive Bayes'), 
    3939            BayesFSS(name="with FSS")) 
    40 results = orngTest.crossValidation(learners, table) 
     40results = Orange.evaluation.testing.cross_validation(learners, table) 
    4141 
    4242# output the results 
    4343print "Learner      CA" 
    4444for i in range(len(learners)): 
    45     print "%-12s %5.3f" % (learners[i].name, orngStat.CA(results)[i]) 
     45    print "%-12s %5.3f" % (learners[i].name, Orange.evaluation.scoring.CA(results)[i]) 
  • orange/doc/Orange/rst/code/selection-best3.py

    r7319 r8506  
    33# Uses:        voting 
    44# Referenced:  Orange.feature.html#selection 
    5 # Classes:     Orange.feature.scoring.attMeasure, Orange.feature.selection.bestNAtts 
     5# Classes:     Orange.feature.scoring.score_all, Orange.feature.selection.bestNAtts 
    66 
    77import Orange 
     
    99 
    1010n = 3 
    11 ma = Orange.feature.scoring.attMeasure(table) 
     11ma = Orange.feature.scoring.score_all(table) 
    1212best = Orange.feature.selection.bestNAtts(ma, n) 
    1313print 'Best %d features:' % n 
  • orange/doc/catalog-rst/rst/orange_theme/footer.html

    r8264 r8506  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/catalog-rst/rst/orange_theme/header.html

    r7013 r8118  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="/orange/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    1414            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     
    1616                <input type="hidden" name="cof" value="FORID:10" /> 
    1717                <input type="hidden" name="ie" value="UTF-8" /> 
    18                 <img src="/orange/search.png" height="12"/> 
     18                <img src="/search.png" height="12"/> 
    1919                <input type="text" name="q" size="25"/> 
    2020                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     
    2525            <table id="uplinks"> 
    2626                <tr> 
    27                     <td><a href="/orange/features.html">Features</a></td> 
    28                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    29                     <td><a href="/orange/doc">Documentation</a></td> 
    30                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    3131                </tr> 
    3232            </table> 
  • orange/doc/catalog-rst/rst/orange_theme/static/footer.html

    r8264 r8506  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/catalog-rst/rst/orange_theme/static/header.html

    r7013 r8118  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="/orange/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    1414            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     
    1616                <input type="hidden" name="cof" value="FORID:10" /> 
    1717                <input type="hidden" name="ie" value="UTF-8" /> 
    18                 <img src="/orange/search.png" height="12"/> 
     18                <img src="/search.png" height="12"/> 
    1919                <input type="text" name="q" size="25"/> 
    2020                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     
    2525            <table id="uplinks"> 
    2626                <tr> 
    27                     <td><a href="/orange/features.html">Features</a></td> 
    28                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    29                     <td><a href="/orange/doc">Documentation</a></td> 
    30                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    3131                </tr> 
    3232            </table> 
  • orange/doc/catalog/Classify/RandomForest.htm

    r6129 r8118  
    4040<p>Random forest is a classification technique that proposed by <a href="#Breiman2001">Leo Brieman (2001)</a>, given the set of class-labeled data, builds a set of classification trees. Each tree is developed from a bootstrap sample from the training data. When developing individual trees, an arbitrary subset of attributes is drawn (hence the term "random") from which the best attribute for the split is selected. The classification is based on the majority vote from individually developed tree classifiers in the forest.</p> 
    4141 
    42 <p>Random forest widget provides for a GUI to Orange's own implementation of random forest (<a href="/orange/doc/modules/orngEnsemble.htm">orngEnsemble</a> module). The widget output the learner, and, given the training data on its input, the random forest. Additional output channel is provided for a selected classification tree (from the forest) for the purpose of visualization or further analysis.</p> 
     42<p>Random forest widget provides for a GUI to Orange's own implementation of random forest (<a href="/doc/modules/orngEnsemble.htm">orngEnsemble</a> module). The widget output the learner, and, given the training data on its input, the random forest. Additional output channel is provided for a selected classification tree (from the forest) for the purpose of visualization or further analysis.</p> 
    4343 
    4444<table><tr> 
  • orange/doc/catalog/Visualize/SurveyPlot.htm

    r5811 r8118  
    3838</p>Implementation in Orange supports sorting by two selected attributes (<span class="option">Sorting</span>). The attributes shown in the plot are listed in <span class="option">Shown attributes</span> box, all other appear in the list of <span class="option">Hidden attributes</span>.</p> 
    3939 
    40 <p>Below is a snapshot of survey plot widget for an <a href="/orange/doc/datasets/iris.tab">Iris data set</a>. Plot nicely shows that petal width and length and sepal length are correlated. It is also very clear that Iris-setosa can be classified based on petal length or width alone, while for the Iris versicolor and virginica there is some ambiguity with some potential outliers, one of which is highlighted in the snapshot.</p> 
     40<p>Below is a snapshot of survey plot widget for an <a href="/doc/datasets/iris.tab">Iris data set</a>. Plot nicely shows that petal width and length and sepal length are correlated. It is also very clear that Iris-setosa can be classified based on petal length or width alone, while for the Iris versicolor and virginica there is some ambiguity with some potential outliers, one of which is highlighted in the snapshot.</p> 
    4141 
    4242<img class="screenshot" src="SurveyPlot-Iris.png" alt="Survey Plot widget"> 
  • orange/doc/catalog/iconlist.html

    r5811 r8118  
     1<body onresize="placeWidgets();"> 
     2<h2>Data</h2> 
    13 
     4<div id="cat_Data"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div><h2>Visualize</h2> 
     5 
     6<div id="cat_Visualize"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div><h2>Classify</h2> 
     7 
     8<div id="cat_Classify"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div><h2>Evaluate</h2> 
     9 
     10<div id="cat_Evaluate"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div><h2>Associate</h2> 
     11 
     12<div id="cat_Associate"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div><h2>Regression</h2> 
     13 
     14<div id="cat_Regression"><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table><table class="cattable"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table></div> 
    215<style> 
    3 div.catdiv h2 { 
    4   border-bottom: none; 
     16.cattable td { 
     17  vertical-align: top; 
     18  text-align: center; 
    519  padding-left: 20px; 
    6   padding-top: 5px; 
    7   font-size: 14px; 
    8   margin-bottom: 5px; 
     20  padding-right: 10px; 
     21  margin: 0; 
     22  padding-top: 0; 
     23  padding-bottom: 0; 
    924} 
    1025 
    11 div.catdiv { 
    12   margin-left: 10px; 
    13   margin-right: 10px; 
    14   background-color: #eeeeee; 
    15   padding-right: 20px; 
     26.cattable td img { 
     27  padding-top: 20px; 
    1628} 
    1729 
    18 div.catdiv table { 
    19   width: 100%; 
    20   margin: 10px; 
     30</style> 
     31 
     32 
     33<script> 
     34function widget(name, icon, description, contact) { 
     35  this.name = name; 
     36  this.icon = icon; 
     37  this.description = description; 
     38  this.contact = contact; 
    2139} 
    2240 
    23 div.catdiv table td { 
    24   background-color: white; 
    25   height: 20px; 
    26   margin: 25px; 
    27   vertical-align: center; 
    28   border-left: solid #eeeeee 10px; 
    29   border-bottom: solid #eeeeee 3px; 
    30   padding-left: 5px; 
     41function category(name, widgets) { 
     42  this.name = name; 
     43  this.widgets = widgets; 
    3144} 
    3245 
    33 div.catdiv table td.left { 
    34   width: 3%; 
     46function placeWidgets() { 
     47  var tab; 
     48  var availWidth = document.body.clientWidth; 
     49  for (cat = 0; cat < categories.length; cat++) { 
     50    div = document.getElementById("cat_"+categories[cat].name); 
     51    rows = div.childNodes; 
     52    row = 0; 
     53    crow = rows[row].firstChild.firstChild.childNodes; 
     54    col = 0; 
     55    widgets = categories[cat].widgets; 
     56    for(wid = 0; wid < widgets.length; wid++) { 
     57      incell = '<img src="'+widgets[wid].icon+'"/><br/><span>'+widgets[wid].name+'</span>' 
     58      crow[col].innerHTML = incell; 
     59      if (crow[col].getBoundingClientRect().right > availWidth) { 
     60        for(; col<15; col++) { 
     61          crow[col].innerHTML = ""; 
     62        } 
     63        row++; 
     64        col = 0; 
     65        crow = rows[row].firstChild.firstChild.childNodes; 
     66        crow[0].innerHTML = incell; 
     67      } 
     68      else { 
     69        col++; 
     70      } 
     71    } 
     72    col++; 
     73    for(row++; row<15; row++) { 
     74      crow = rows[row].firstChild.firstChild.childNodes; 
     75      for(; col<15; col++) { 
     76        crow[col].innerHTML = ""; 
     77      } 
     78      row.height=0; 
     79      col=0; 
     80    } 
     81  } 
    3582} 
    3683 
    37 div.catdiv table td.right { 
    38   border-left: none; 
    39   width: 22%; 
    40 } 
     84categories = [ 
     85new category('Data', [ 
     86  new widget('File', '/orange/doc/catalog/icons/File.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     87  new widget('Data Table', '/orange/doc/catalog/icons/DataTable.png', '', 'Peter Juvan (peter.juvan@fri.uni-lj.si)'), 
     88  new widget('Select Attributes', '/orange/doc/catalog/icons/SelectAttributes.png', '', 'Peter Juvan (peter.juvan@fri.uni-lj.si)'), 
     89  new widget('Rank', '/orange/doc/catalog/icons/Rank.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     90  new widget('Purge Domain', '/orange/doc/catalog/icons/PurgeDomain.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     91  new widget('Merge Data', '/orange/doc/catalog/icons/MergeData.png', '', 'Peter Juvan (peter.juvan@fri.uni-lj.si)'), 
     92  new widget('Concatenate', '/orange/doc/catalog/icons/Concatenate.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     93  new widget('Data Sampler', '/orange/doc/catalog/icons/DataSampler.png', '', 'Aleksander Sadikov (aleksander.sadikov(@at@)fri.uni-lj.si)'), 
     94  new widget('Select Data', '/orange/doc/catalog/icons/SelectData.png', '', 'Peter Juvan (peter.juvan@fri.uni-lj.si)'), 
     95  new widget('Save', '/orange/doc/catalog/icons/Save.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     96  new widget('Discretize', '/orange/doc/catalog/icons/Discretize.png', '', 'Ales Erjavec (ales.erjavec(@at@)fri.uni-lj.si)'), 
     97  new widget('Continuize', '/orange/doc/catalog/icons/Continuize.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     98  new widget('Impute', '/orange/doc/catalog/icons/Impute.png', '', 'Janez Demsar'), 
     99  new widget('Outliers', '/orange/doc/catalog/icons/Outliers.png', '', 'Marko Toplak (marko.toplak(@at@)gmail.com)')] 
     100), 
     101new category('Visualize', [ 
     102  new widget('Attribute Statistics', '/orange/doc/catalog/icons/AttributeStatistics.png', '', 'Jure Zabkar (jure.zabkar@fri.uni-lj.si)')] 
     103), 
     104new category('Classify', [ 
     105  new widget('Naive Bayes', '/orange/doc/catalog/icons/NaiveBayes.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     106  new widget('Logistic Regression', '/orange/doc/catalog/icons/LogisticRegression.png', '', 'Martin Mozina (martin.mozina(@at@)fri.uni-lj.si)'), 
     107  new widget('Majority', '/orange/doc/catalog/icons/Majority.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     108  new widget('Classification Tree Viewer', '/orange/doc/catalog/icons/ClassificationTreeViewer.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     109  new widget('Classification Tree Graph', '/orange/doc/catalog/icons/ClassificationTreeGraph.png', '', 'Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)'), 
     110  new widget('CN2 Rules Viewer', '/orange/doc/catalog/icons/CN2RulesViewer.png', '', 'Ales Erjavec (ales.erjavec(@at@)fri.uni-lj.si)'), 
     111  new widget('Nomogram', '/orange/doc/catalog/icons/Nomogram.png', '', 'Martin Mozina (martin.mozina(@at@)fri.uni-lj.si)'), 
     112  new widget('Classification Tree', '/orange/doc/catalog/icons/ClassificationTree.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     113  new widget('CN2', '/orange/doc/catalog/icons/CN2.png', '', 'Ales Erjavec (ales.erjavec(@at@)fri.uni-lj.si)'), 
     114  new widget('C4.5', '/orange/doc/catalog/icons/C4.5.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)'), 
     115  new widget('Interactive Tree Builder', '/orange/doc/catalog/icons/InteractiveTreeBuilder.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)')] 
     116), 
     117new category('Evaluate', [ 
     118  new widget('Confusion Matrix', '/orange/doc/catalog/icons/ConfusionMatrix.png', '', 'Janez Demsar'), 
     119  new widget('ROC Analysis', '/orange/doc/catalog/icons/ROCAnalysis.png', '', 'Tomaz Curk'), 
     120  new widget('Lift Curve', '/orange/doc/catalog/icons/LiftCurve.png', '', 'Tomaz Curk'), 
     121  new widget('Calibration Plot', '/orange/doc/catalog/icons/CalibrationPlot.png', '', 'Tomaz Curk'), 
     122  new widget('Test Learners', '/orange/doc/catalog/icons/TestLearners.png', '', 'Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)'), 
     123  new widget('Predictions', '/orange/doc/catalog/icons/Predictions.png', '', 'Blaz Zupan (blaz.zupan(@at@)fri.uni-lj.si)')] 
     124), 
     125new category('Associate', [ 
     126  new widget('Association Rules', '/orange/doc/catalog/icons/AssociationRules.png', '', 'Janez Demsar (janez.demsar(@at@)fri.uni-lj.si)')] 
     127), 
     128new category('Regression', [ 
     129  new widget('Regression Tree', '/orange/doc/catalog/icons/RegressionTree.png', '', 'Ales Erjavec (ales.erjavec(@at@)fri.uni-lj.si)'), 
     130  new widget(' Regression Tree Graph', '/orange/doc/catalog/icons/RegressionTreeGraph.png', '', 'Ales Erjavec (ales.erjavec(@at@)fri.uni-lj.si)'), 
     131  new widget('Pade', '/orange/doc/catalog/icons/Pade.png', '', '')] 
     132), 
     133]; 
    41134 
    42 div.catdiv table td.empty { 
    43   background-color: #eeeeee; 
    44 } 
     135placeWidgets(); 
     136</script> 
    45137 
    46 div.catdiv table td.left-nodoc { 
    47   width: 3%; 
    48   color: #aaaaaa; 
    49 } 
    50  
    51 div.catdiv table td.right-nodoc { 
    52   width: 22%; 
    53   border-left: none; 
    54   color: #aaaaaa; 
    55 } 
    56  
    57 div.catdiv table img { 
    58   border: none; 
    59   height: 28px; 
    60   width: 28px; 
    61 } 
    62 </style> 
    63  
    64 <p style="font-size: 24px; font-weight: bold">Catalog of widgets</p> 
    65  
    66 <div class="catdiv"><h2>Data</h2> 
    67  
    68 <table> 
    69 <tr> 
    70  
    71   <td id="cid1" class="left"> 
    72     <a href="Data/File.htm"> 
    73       <img src="icons/File.png"> 
    74     </a> 
    75   </td> 
    76   <td class="right" onmouseover="document.getElementById('cid1').style.backgroundColor='yellow'" 
    77     onmouseout="document.getElementById('cid1').style.backgroundColor=null"> 
    78     <a href="Data/File.htm"> 
    79       File 
    80     </a></td> 
    81  
    82   <td id="cid2" class="left"> 
    83     <a href="Data/DataTable.htm"> 
    84       <img src="icons/DataTable.png"> 
    85     </a> 
    86   </td> 
    87   <td class="right" onmouseover="document.getElementById('cid2').style.backgroundColor='yellow'" 
    88     onmouseout="document.getElementById('cid2').style.backgroundColor=null"> 
    89     <a href="Data/DataTable.htm"> 
    90       Data Table 
    91     </a></td> 
    92  
    93   <td id="cid3" class="left"> 
    94     <a href="Data/SelectAttributes.htm"> 
    95       <img src="icons/SelectAttributes.png"> 
    96     </a> 
    97   </td> 
    98   <td class="right" onmouseover="document.getElementById('cid3').style.backgroundColor='yellow'" 
    99     onmouseout="document.getElementById('cid3').style.backgroundColor=null"> 
    100     <a href="Data/SelectAttributes.htm"> 
    101       Select Attributes 
    102     </a></td> 
    103  
    104   <td id="cid4" class="left"> 
    105     <a href="Data/Rank.htm"> 
    106       <img src="icons/Rank.png"> 
    107     </a> 
    108   </td> 
    109   <td class="right" onmouseover="document.getElementById('cid4').style.backgroundColor='yellow'" 
    110     onmouseout="document.getElementById('cid4').style.backgroundColor=null"> 
    111     <a href="Data/Rank.htm"> 
    112       Rank 
    113     </a></td> 
    114 </tr> 
    115 <tr> 
    116  
    117   <td id="cid5" class="left"> 
    118     <a href="Data/PurgeDomain.htm"> 
    119       <img src="icons/PurgeDomain.png"> 
    120     </a> 
    121   </td> 
    122   <td class="right" onmouseover="document.getElementById('cid5').style.backgroundColor='yellow'" 
    123     onmouseout="document.getElementById('cid5').style.backgroundColor=null"> 
    124     <a href="Data/PurgeDomain.htm"> 
    125       Purge Domain 
    126     </a></td> 
    127  
    128   <td id="cid6" class="left"> 
    129     <a href="Data/MergeData.htm"> 
    130       <img src="icons/MergeData.png"> 
    131     </a> 
    132   </td> 
    133   <td class="right" onmouseover="document.getElementById('cid6').style.backgroundColor='yellow'" 
    134     onmouseout="document.getElementById('cid6').style.backgroundColor=null"> 
    135     <a href="Data/MergeData.htm"> 
    136       Merge Data 
    137     </a></td> 
    138  
    139   <td id="cid7" class="left"> 
    140     <a href="Data/Concatenate.htm"> 
    141       <img src="icons/Concatenate.png"> 
    142     </a> 
    143   </td> 
    144   <td class="right" onmouseover="document.getElementById('cid7').style.backgroundColor='yellow'" 
    145     onmouseout="document.getElementById('cid7').style.backgroundColor=null"> 
    146     <a href="Data/Concatenate.htm"> 
    147       Concatenate 
    148     </a></td> 
    149  
    150   <td id="cid8" class="left"> 
    151     <a href="Data/DataSampler.htm"> 
    152       <img src="icons/DataSampler.png"> 
    153     </a> 
    154   </td> 
    155   <td class="right" onmouseover="document.getElementById('cid8').style.backgroundColor='yellow'" 
    156     onmouseout="document.getElementById('cid8').style.backgroundColor=null"> 
    157     <a href="Data/DataSampler.htm"> 
    158       Data Sampler 
    159     </a></td> 
    160 </tr> 
    161 <tr> 
    162  
    163   <td id="cid9" class="left"> 
    164     <a href="Data/SelectData.htm"> 
    165       <img src="icons/SelectData.png"> 
    166     </a> 
    167   </td> 
    168   <td class="right" onmouseover="document.getElementById('cid9').style.backgroundColor='yellow'" 
    169     onmouseout="document.getElementById('cid9').style.backgroundColor=null"> 
    170     <a href="Data/SelectData.htm"> 
    171       Select Data 
    172     </a></td> 
    173  
    174   <td id="cid10" class="left"> 
    175     <a href="Data/Save.htm"> 
    176       <img src="icons/Save.png"> 
    177     </a> 
    178   </td> 
    179   <td class="right" onmouseover="document.getElementById('cid10').style.backgroundColor='yellow'" 
    180     onmouseout="document.getElementById('cid10').style.backgroundColor=null"> 
    181     <a href="Data/Save.htm"> 
    182       Save 
    183     </a></td> 
    184  
    185   <td id="cid11" class="left"> 
    186     <a href="Data/Discretize.htm"> 
    187       <img src="icons/Discretize.png"> 
    188     </a> 
    189   </td> 
    190   <td class="right" onmouseover="document.getElementById('cid11').style.backgroundColor='yellow'" 
    191     onmouseout="document.getElementById('cid11').style.backgroundColor=null"> 
    192     <a href="Data/Discretize.htm"> 
    193       Discretize 
    194     </a></td> 
    195  
    196   <td id="cid12" class="left"> 
    197     <a href="Data/Continuize.htm"> 
    198       <img src="icons/Continuize.png"> 
    199     </a> 
    200   </td> 
    201   <td class="right" onmouseover="document.getElementById('cid12').style.backgroundColor='yellow'" 
    202     onmouseout="document.getElementById('cid12').style.backgroundColor=null"> 
    203     <a href="Data/Continuize.htm"> 
    204       Continuize 
    205     </a></td> 
    206 </tr> 
    207 <tr> 
    208  
    209   <td id="cid13" class="left"> 
    210     <a href="Data/Impute.htm"> 
    211       <img src="icons/Impute.png"> 
    212     </a> 
    213   </td> 
    214   <td class="right" onmouseover="document.getElementById('cid13').style.backgroundColor='yellow'" 
    215     onmouseout="document.getElementById('cid13').style.backgroundColor=null"> 
    216     <a href="Data/Impute.htm"> 
    217       Impute 
    218     </a></td> 
    219  
    220   <td id="cid14" class="left"> 
    221     <a href="Data/Outliers.htm"> 
    222       <img src="icons/Outliers.png"> 
    223     </a> 
    224   </td> 
    225   <td class="right" onmouseover="document.getElementById('cid14').style.backgroundColor='yellow'" 
    226     onmouseout="document.getElementById('cid14').style.backgroundColor=null"> 
    227     <a href="Data/Outliers.htm"> 
    228       Outliers 
    229     </a></td> 
    230 <td class="empty"></td><td class="empty"></td></tr></table></div> 
    231 <div class="catdiv"><h2>Visualize</h2> 
    232  
    233 <table> 
    234 <tr> 
    235  
    236   <td id="cid15" class="left-nodoc"> 
    237       <img src="icons/Distributions.png"> 
    238   </td> 
    239   <td class="right-nodoc"> 
    240       Distributions 
    241   </td> 
    242  
    243   <td id="cid16" class="left-nodoc"> 
    244       <img src="icons/Scatterplot.png"> 
    245   </td> 
    246   <td class="right-nodoc"> 
    247       Scatterplot 
    248   </td> 
    249  
    250   <td id="cid17" class="left-nodoc"> 
    251       <img src="icons/Scatterplotmatrix.png"> 
    252   </td> 
    253   <td class="right-nodoc"> 
    254       Scatterplot matrix 
    255   </td> 
    256  
    257   <td id="cid18" class="left"> 
    258     <a href="Visualize/AttributeStatistics.htm"> 
    259       <img src="icons/AttributeStatistics.png"> 
    260     </a> 
    261   </td> 
    262   <td class="right" onmouseover="document.getElementById('cid18').style.backgroundColor='yellow'" 
    263     onmouseout="document.getElementById('cid18').style.backgroundColor=null"> 
    264     <a href="Visualize/AttributeStatistics.htm"> 
    265       Attribute Statistics 
    266     </a></td> 
    267 </tr> 
    268 <tr> 
    269  
    270   <td id="cid19" class="left-nodoc"> 
    271       <img src="icons/LinearProjection.png"> 
    272   </td> 
    273   <td class="right-nodoc"> 
    274       Linear Projection 
    275   </td> 
    276  
    277   <td id="cid20" class="left-nodoc"> 
    278       <img src="icons/Radviz.png"> 
    279   </td> 
    280   <td class="right-nodoc"> 
    281       Radviz 
    282   </td> 
    283  
    284   <td id="cid21" class="left-nodoc"> 
    285       <img src="icons/Polyviz.png"> 
    286   </td> 
    287   <td class="right-nodoc"> 
    288       Polyviz 
    289   </td> 
    290  
    291   <td id="cid22" class="left-nodoc"> 
    292       <img src="icons/Parallelcoordinates.png"> 
    293   </td> 
    294   <td class="right-nodoc"> 
    295       Parallel coordinates 
    296   </td> 
    297 </tr> 
    298 <tr> 
    299  
    300   <td id="cid23" class="left-nodoc"> 
    301       <img src="icons/SurveyPlot.png"> 
    302   </td> 
    303   <td class="right-nodoc"> 
    304       Survey Plot 
    305   </td> 
    306  
    307   <td id="cid24" class="left-nodoc"> 
    308       <img src="icons/CorrespondenceAnalysis.png"> 
    309   </td> 
    310   <td class="right-nodoc"> 
    311       Correspondence Analysis 
    312   </td> 
    313  
    314   <td id="cid25" class="left-nodoc"> 
    315       <img src="icons/Unknown.png"> 
    316   </td> 
    317   <td class="right-nodoc"> 
    318       Time Data Visualizer 
    319   </td> 
    320  
    321   <td id="cid26" class="left-nodoc"> 
    322       <img src="icons/MosaicDisplay.png"> 
    323   </td> 
    324   <td class="right-nodoc"> 
    325       Mosaic Display 
    326   </td> 
    327 </tr> 
    328 <tr> 
    329  
    330   <td id="cid27" class="left-nodoc"> 
    331       <img src="icons/SieveDiagram.png"> 
    332   </td> 
    333   <td class="right-nodoc"> 
    334       Sieve Diagram 
    335   </td> 
    336  
    337   <td id="cid28" class="left-nodoc"> 
    338       <img src="icons/Sievemultigram.png"> 
    339   </td> 
    340   <td class="right-nodoc"> 
    341       Sieve multigram 
    342   </td> 
    343 <td class="empty"></td><td class="empty"></td></tr></table></div> 
    344 <div class="catdiv"><h2>Classify</h2> 
    345  
    346 <table> 
    347 <tr> 
    348  
    349   <td id="cid29" class="left"> 
    350     <a href="Classify/NaiveBayes.htm"> 
    351       <img src="icons/NaiveBayes.png"> 
    352     </a> 
    353   </td> 
    354   <td class="right" onmouseover="document.getElementById('cid29').style.backgroundColor='yellow'" 
    355     onmouseout="document.getElementById('cid29').style.backgroundColor=null"> 
    356     <a href="Classify/NaiveBayes.htm"> 
    357       Naive Bayes 
    358     </a></td> 
    359  
    360   <td id="cid30" class="left-nodoc"> 
    361       <img src="icons/SVM.png"> 
    362   </td> 
    363   <td class="right-nodoc"> 
    364       SVM 
    365   </td> 
    366  
    367   <td id="cid31" class="left"> 
    368     <a href="Classify/LogisticRegression.htm"> 
    369       <img src="icons/LogisticRegression.png"> 
    370     </a> 
    371   </td> 
    372   <td class="right" onmouseover="document.getElementById('cid31').style.backgroundColor='yellow'" 
    373     onmouseout="document.getElementById('cid31').style.backgroundColor=null"> 
    374     <a href="Classify/LogisticRegression.htm"> 
    375       Logistic Regression 
    376     </a></td> 
    377  
    378   <td id="cid32" class="left"> 
    379     <a href="Classify/Majority.htm"> 
    380       <img src="icons/Majority.png"> 
    381     </a> 
    382   </td> 
    383   <td class="right" onmouseover="document.getElementById('cid32').style.backgroundColor='yellow'" 
    384     onmouseout="document.getElementById('cid32').style.backgroundColor=null"> 
    385     <a href="Classify/Majority.htm"> 
    386       Majority 
    387     </a></td> 
    388 </tr> 
    389 <tr> 
    390  
    391   <td id="cid33" class="left"> 
    392     <a href="Classify/ClassificationTreeViewer.htm"> 
    393       <img src="icons/ClassificationTreeViewer.png"> 
    394     </a> 
    395   </td> 
    396   <td class="right" onmouseover="document.getElementById('cid33').style.backgroundColor='yellow'" 
    397     onmouseout="document.getElementById('cid33').style.backgroundColor=null"> 
    398     <a href="Classify/ClassificationTreeViewer.htm"> 
    399       Classification Tree Viewer 
    400     </a></td> 
    401  
    402   <td id="cid34" class="left"> 
    403     <a href="Classify/ClassificationTreeGraph.htm"> 
    404       <img src="icons/ClassificationTreeGraph.png"> 
    405     </a> 
    406   </td> 
    407   <td class="right" onmouseover="document.getElementById('cid34').style.backgroundColor='yellow'" 
    408     onmouseout="document.getElementById('cid34').style.backgroundColor=null"> 
    409     <a href="Classify/ClassificationTreeGraph.htm"> 
    410       Classification Tree Graph 
    411     </a></td> 
    412  
    413   <td id="cid35" class="left"> 
    414     <a href="Classify/CN2RulesViewer.htm"> 
    415       <img src="icons/CN2RulesViewer.png"> 
    416     </a> 
    417   </td> 
    418   <td class="right" onmouseover="document.getElementById('cid35').style.backgroundColor='yellow'" 
    419     onmouseout="document.getElementById('cid35').style.backgroundColor=null"> 
    420     <a href="Classify/CN2RulesViewer.htm"> 
    421       CN2 Rules Viewer 
    422     </a></td> 
    423  
    424   <td id="cid36" class="left-nodoc"> 
    425       <img src="icons/kNearestNeighbours.png"> 
    426   </td> 
    427   <td class="right-nodoc"> 
    428       k Nearest Neighbours 
    429   </td> 
    430 </tr> 
    431 <tr> 
    432  
    433   <td id="cid37" class="left"> 
    434     <a href="Classify/Nomogram.htm"> 
    435       <img src="icons/Nomogram.png"> 
    436     </a> 
    437   </td> 
    438   <td class="right" onmouseover="document.getElementById('cid37').style.backgroundColor='yellow'" 
    439     onmouseout="document.getElementById('cid37').style.backgroundColor=null"> 
    440     <a href="Classify/Nomogram.htm"> 
    441       Nomogram 
    442     </a></td> 
    443  
    444   <td id="cid38" class="left"> 
    445     <a href="Classify/ClassificationTree.htm"> 
    446       <img src="icons/ClassificationTree.png"> 
    447     </a> 
    448   </td> 
    449   <td class="right" onmouseover="document.getElementById('cid38').style.backgroundColor='yellow'" 
    450     onmouseout="document.getElementById('cid38').style.backgroundColor=null"> 
    451     <a href="Classify/ClassificationTree.htm"> 
    452       Classification Tree 
    453     </a></td> 
    454  
    455   <td id="cid39" class="left"> 
    456     <a href="Classify/CN2.htm"> 
    457       <img src="icons/CN2.png"> 
    458     </a> 
    459   </td> 
    460   <td class="right" onmouseover="document.getElementById('cid39').style.backgroundColor='yellow'" 
    461     onmouseout="document.getElementById('cid39').style.backgroundColor=null"> 
    462     <a href="Classify/CN2.htm"> 
    463       CN2 
    464     </a></td> 
    465  
    466   <td id="cid40" class="left-nodoc"> 
    467       <img src="icons/RandomForest.png"> 
    468   </td> 
    469   <td class="right-nodoc"> 
    470       Random Forest 
    471   </td> 
    472 </tr> 
    473 <tr> 
    474  
    475   <td id="cid41" class="left"> 
    476     <a href="Classify/C4.5.htm"> 
    477       <img src="icons/C4.5.png"> 
    478     </a> 
    479   </td> 
    480   <td class="right" onmouseover="document.getElementById('cid41').style.backgroundColor='yellow'" 
    481     onmouseout="document.getElementById('cid41').style.backgroundColor=null"> 
    482     <a href="Classify/C4.5.htm"> 
    483       C4.5 
    484     </a></td> 
    485  
    486   <td id="cid42" class="left"> 
    487     <a href="Classify/InteractiveTreeBuilder.htm"> 
    488       <img src="icons/InteractiveTreeBuilder.png"> 
    489     </a> 
    490   </td> 
    491   <td class="right" onmouseover="document.getElementById('cid42').style.backgroundColor='yellow'" 
    492     onmouseout="document.getElementById('cid42').style.backgroundColor=null"> 
    493     <a href="Classify/InteractiveTreeBuilder.htm"> 
    494       Interactive Tree Builder 
    495     </a></td> 
    496 <td class="empty"></td><td class="empty"></td></tr></table></div> 
    497 <div class="catdiv"><h2>Regression</h2> 
    498  
    499 <table> 
    500 <tr> 
    501  
    502   <td id="cid43" class="left"> 
    503     <a href="Regression/RegressionTree.htm"> 
    504       <img src="icons/RegressionTree.png"> 
    505     </a> 
    506   </td> 
    507   <td class="right" onmouseover="document.getElementById('cid43').style.backgroundColor='yellow'" 
    508     onmouseout="document.getElementById('cid43').style.backgroundColor=null"> 
    509     <a href="Regression/RegressionTree.htm"> 
    510       Regression Tree 
    511     </a></td> 
    512  
    513   <td id="cid44" class="left"> 
    514     <a href="Regression/RegressionTreeGraph.htm"> 
    515       <img src="icons/RegressionTreeGraph.png"> 
    516     </a> 
    517   </td> 
    518   <td class="right" onmouseover="document.getElementById('cid44').style.backgroundColor='yellow'" 
    519     onmouseout="document.getElementById('cid44').style.backgroundColor=null"> 
    520     <a href="Regression/RegressionTreeGraph.htm"> 
    521        Regression Tree Graph 
    522     </a></td> 
    523  
    524   <td id="cid45" class="left"> 
    525     <a href="Regression/Pade.htm"> 
    526       <img src="icons/Pade.png"> 
    527     </a> 
    528   </td> 
    529   <td class="right" onmouseover="document.getElementById('cid45').style.backgroundColor='yellow'" 
    530     onmouseout="document.getElementById('cid45').style.backgroundColor=null"> 
    531     <a href="Regression/Pade.htm"> 
    532       Pade 
    533     </a></td> 
    534 <td class="empty"></td></tr></table></div> 
    535 <div class="catdiv"><h2>Evaluate</h2> 
    536  
    537 <table> 
    538 <tr> 
    539  
    540   <td id="cid46" class="left"> 
    541     <a href="Evaluate/ConfusionMatrix.htm"> 
    542       <img src="icons/ConfusionMatrix.png"> 
    543     </a> 
    544   </td> 
    545   <td class="right" onmouseover="document.getElementById('cid46').style.backgroundColor='yellow'" 
    546     onmouseout="document.getElementById('cid46').style.backgroundColor=null"> 
    547     <a href="Evaluate/ConfusionMatrix.htm"> 
    548       Confusion Matrix 
    549     </a></td> 
    550  
    551   <td id="cid47" class="left"> 
    552     <a href="Evaluate/ROCAnalysis.htm"> 
    553       <img src="icons/ROCAnalysis.png"> 
    554     </a> 
    555   </td> 
    556   <td class="right" onmouseover="document.getElementById('cid47').style.backgroundColor='yellow'" 
    557     onmouseout="document.getElementById('cid47').style.backgroundColor=null"> 
    558     <a href="Evaluate/ROCAnalysis.htm"> 
    559       ROC Analysis 
    560     </a></td> 
    561  
    562   <td id="cid48" class="left"> 
    563     <a href="Evaluate/LiftCurve.htm"> 
    564       <img src="icons/LiftCurve.png"> 
    565     </a> 
    566   </td> 
    567   <td class="right" onmouseover="document.getElementById('cid48').style.backgroundColor='yellow'" 
    568     onmouseout="document.getElementById('cid48').style.backgroundColor=null"> 
    569     <a href="Evaluate/LiftCurve.htm"> 
    570       Lift Curve 
    571     </a></td> 
    572  
    573   <td id="cid49" class="left"> 
    574     <a href="Evaluate/CalibrationPlot.htm"> 
    575       <img src="icons/CalibrationPlot.png"> 
    576     </a> 
    577   </td> 
    578   <td class="right" onmouseover="document.getElementById('cid49').style.backgroundColor='yellow'" 
    579     onmouseout="document.getElementById('cid49').style.backgroundColor=null"> 
    580     <a href="Evaluate/CalibrationPlot.htm"> 
    581       Calibration Plot 
    582     </a></td> 
    583 </tr> 
    584 <tr> 
    585  
    586   <td id="cid50" class="left"> 
    587     <a href="Evaluate/TestLearners.htm"> 
    588       <img src="icons/TestLearners.png"> 
    589     </a> 
    590   </td> 
    591   <td class="right" onmouseover="document.getElementById('cid50').style.backgroundColor='yellow'" 
    592     onmouseout="document.getElementById('cid50').style.backgroundColor=null"> 
    593     <a href="Evaluate/TestLearners.htm"> 
    594       Test Learners 
    595     </a></td> 
    596  
    597   <td id="cid51" class="left"> 
    598     <a href="Evaluate/Predictions.htm"> 
    599       <img src="icons/Predictions.png"> 
    600     </a> 
    601   </td> 
    602   <td class="right" onmouseover="document.getElementById('cid51').style.backgroundColor='yellow'" 
    603     onmouseout="document.getElementById('cid51').style.backgroundColor=null"> 
    604     <a href="Evaluate/Predictions.htm"> 
    605       Predictions 
    606     </a></td> 
    607 <td class="empty"></td><td class="empty"></td></tr></table></div> 
    608 <div class="catdiv"><h2>Associate</h2> 
    609  
    610 <table> 
    611 <tr> 
    612  
    613   <td id="cid52" class="left"> 
    614     <a href="Associate/AssociationRules.htm"> 
    615       <img src="icons/AssociationRules.png"> 
    616     </a> 
    617   </td> 
    618   <td class="right" onmouseover="document.getElementById('cid52').style.backgroundColor='yellow'" 
    619     onmouseout="document.getElementById('cid52').style.backgroundColor=null"> 
    620     <a href="Associate/AssociationRules.htm"> 
    621       Association Rules 
    622     </a></td> 
    623  
    624   <td id="cid53" class="left-nodoc"> 
    625       <img src="icons/Itemsets.png"> 
    626   </td> 
    627   <td class="right-nodoc"> 
    628       Itemsets 
    629   </td> 
    630  
    631   <td id="cid54" class="left-nodoc"> 
    632       <img src="icons/Unknown.png"> 
    633   </td> 
    634   <td class="right-nodoc"> 
    635       Itemsests Explorer 
    636   </td> 
    637  
    638   <td id="cid55" class="left-nodoc"> 
    639       <img src="icons/Unknown.png"> 
    640   </td> 
    641   <td class="right-nodoc"> 
    642       Association Rules Filter 
    643   </td> 
    644 </tr> 
    645 <tr> 
    646  
    647   <td id="cid56" class="left-nodoc"> 
    648       <img src="icons/Unknown.png"> 
    649   </td> 
    650   <td class="right-nodoc"> 
    651       Association Rules Explorer 
    652   </td> 
    653 <td class="empty"></td><td class="empty"></td><td class="empty"></td></tr></table></div> 
    654 <div class="catdiv"><h2>Unsupervised</h2> 
    655  
    656 <table> 
    657 <tr> 
    658  
    659   <td id="cid57" class="left-nodoc"> 
    660       <img src="icons/DistanceFile.png"> 
    661   </td> 
    662   <td class="right-nodoc"> 
    663       Distance File 
    664   </td> 
    665  
    666   <td id="cid58" class="left-nodoc"> 
    667       <img src="icons/Unknown.png"> 
    668   </td> 
    669   <td class="right-nodoc"> 
    670       Matrix Transformation 
    671   </td> 
    672  
    673   <td id="cid59" class="left-nodoc"> 
    674       <img src="icons/SaveDistanceFile.png"> 
    675   </td> 
    676   <td class="right-nodoc"> 
    677       Save Distance File 
    678   </td> 
    679  
    680   <td id="cid60" class="left-nodoc"> 
    681       <img src="icons/Unknown.png"> 
    682   </td> 
    683   <td class="right-nodoc"> 
    684       Distance Matrix Filter 
    685   </td> 
    686 </tr> 
    687 <tr> 
    688  
    689   <td id="cid61" class="left-nodoc"> 
    690       <img src="icons/DistanceMap.png"> 
    691   </td> 
    692   <td class="right-nodoc"> 
    693       Distance Map 
    694   </td> 
    695  
    696   <td id="cid62" class="left-nodoc"> 
    697       <img src="icons/ExampleDistance.png"> 
    698   </td> 
    699   <td class="right-nodoc"> 
    700       Example Distance 
    701   </td> 
    702  
    703   <td id="cid63" class="left-nodoc"> 
    704       <img src="icons/AttributeDistance.png"> 
    705   </td> 
    706   <td class="right-nodoc"> 
    707       Attribute Distance 
    708   </td> 
    709  
    710   <td id="cid64" class="left-nodoc"> 
    711       <img src="icons/HierarchicalClustering.png"> 
    712   </td> 
    713   <td class="right-nodoc"> 
    714       Hierarchical Clustering 
    715   </td> 
    716 </tr> 
    717 <tr> 
    718  
    719   <td id="cid65" class="left-nodoc"> 
    720       <img src="icons/InteractionGraph.png"> 
    721   </td> 
    722   <td class="right-nodoc"> 
    723       Interaction Graph 
    724   </td> 
    725  
    726   <td id="cid66" class="left-nodoc"> 
    727       <img src="icons/K-MeansClustering.png"> 
    728   </td> 
    729   <td class="right-nodoc"> 
    730       K-Means Clustering 
    731   </td> 
    732  
    733   <td id="cid67" class="left-nodoc"> 
    734       <img src="icons/MDS.png"> 
    735   </td> 
    736   <td class="right-nodoc"> 
    737       MDS 
    738   </td> 
    739  
    740   <td id="cid68" class="left-nodoc"> 
    741       <img src="icons/NetworkFile.png"> 
    742   </td> 
    743   <td class="right-nodoc"> 
    744       Network File 
    745   </td> 
    746 </tr> 
    747 <tr> 
    748  
    749   <td id="cid69" class="left"> 
    750     <a href="Unsupervised/NetExplorer.htm"> 
    751       <img src="icons/NetExplorer.png"> 
    752     </a> 
    753   </td> 
    754   <td class="right" onmouseover="document.getElementById('cid69').style.backgroundColor='yellow'" 
    755     onmouseout="document.getElementById('cid69').style.backgroundColor=null"> 
    756     <a href="Unsupervised/NetExplorer.htm"> 
    757       Net Explorer 
    758     </a></td> 
    759  
    760   <td id="cid70" class="left-nodoc"> 
    761       <img src="icons/NetworkfromDistances.png"> 
    762   </td> 
    763   <td class="right-nodoc"> 
    764       Network from Distances 
    765   </td> 
    766  
    767   <td id="cid71" class="left-nodoc"> 
    768       <img src="icons/SOM.png"> 
    769   </td> 
    770   <td class="right-nodoc"> 
    771       SOM 
    772   </td> 
    773  
    774   <td id="cid72" class="left-nodoc"> 
    775       <img src="icons/SOMVisualizer.png"> 
    776   </td> 
    777   <td class="right-nodoc"> 
    778       SOMVisualizer 
    779   </td> 
    780 </tr></table></div> 
  • orange/doc/catalog/path.htm

    r5664 r8118  
    1 <a href="/orange/doc/widgets/catalog">Catalog</a> 
     1<a href="/doc/widgets/catalog">Catalog</a> 
  • orange/doc/modules/orngClustering.htm

    r8264 r8506  
    296296sample = data.selectref(orange.MakeRandomIndices2(data, 20), 0) 
    297297root = orngClustering.hierarchicalClustering(sample) 
    298 dendrogram = orngClustering.dendrogram_draw("hclust-dendrogram.png", root, sample, labels=[str(d.getclass()) for d in sample]) 
     298orngClustering.dendrogram_draw("hclust-dendrogram.png", root, data=sample, labels=[str(d.getclass()) for d in sample])  
    299299</xmp> 
    300300 
  • orange/doc/modules/path.htm

    r892 r8118  
    1 <a href="/orange/doc/modules">Modules</a> 
     1<a href="/doc/modules">Modules</a> 
  • orange/doc/ofb-rst/rst/orange_theme/footer.html

    r8264 r8506  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/ofb-rst/rst/orange_theme/header.html

    r6999 r8118  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="/orange/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    1414            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     
    1616                <input type="hidden" name="cof" value="FORID:10" /> 
    1717                <input type="hidden" name="ie" value="UTF-8" /> 
    18                 <img src="/orange/search.png" height="12"/> 
     18                <img src="/search.png" height="12"/> 
    1919                <input type="text" name="q" size="25"/> 
    2020                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     
    2525            <table id="uplinks"> 
    2626                <tr> 
    27                     <td><a href="/orange/features.html">Features</a></td> 
    28                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    29                     <td><a href="/orange/doc">Documentation</a></td> 
    30                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    3131                </tr> 
    3232            </table> 
  • orange/doc/ofb-rst/rst/orange_theme/static/footer.html

    r8264 r8506  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/ofb-rst/rst/orange_theme/static/header.html

    r7008 r8118  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="/orange/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    1414            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     
    1616                <input type="hidden" name="cof" value="FORID:10" /> 
    1717                <input type="hidden" name="ie" value="UTF-8" /> 
    18                 <img src="/orange/search.png" height="12"/> 
     18                <img src="/search.png" height="12"/> 
    1919                <input type="text" name="q" size="25"/> 
    2020                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     
    2525            <table id="uplinks"> 
    2626                <tr> 
    27                     <td><a href="/orange/features.html">Features</a></td> 
    28                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    29                     <td><a href="/orange/doc">Documentation</a></td> 
    30                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    3131                </tr> 
    3232            </table> 
  • orange/doc/ofb/default.htm

    r6538 r8118  
    102102 
    103103<p>For your convenience, you may also download a <a 
    104 href="/orange/download.html">stand-alone version of Orange 
     104href="/download.html">stand-alone version of Orange 
    105105documentation</a> that also includes all script files and data 
    106106files.</p> 
  • orange/doc/ofb/links.htm

    r892 r8118  
    11<img src="/images/horizontalRule.jpg" width="200" height="1"><br>  
    2   <A href="/orange">Home</A><BR> 
     2  <A href="/">Home</A><BR> 
    33<img src="/images/horizontalRule.jpg" width="200" height="1"><br>  
    4   <A href="/orange/doc/">Documentation</A><BR> 
     4  <A href="/doc/">Documentation</A><BR> 
    55<img src="/images/horizontalRule.jpg" width="200" height="1"><br>  
    6   <A href="/orange/doc/ofb">Orange for Beginners</A><BR> 
     6  <A href="/doc/ofb">Orange for Beginners</A><BR> 
    77<img src="/images/horizontalRule.jpg" width="200" height="1"><br>  
    88  <br> 
  • orange/doc/ofb/path.htm

    r892 r8118  
    1 <a href="/orange/doc/ofb">Orange for Beginners</a> 
     1<a href="/doc/ofb">Orange for Beginners</a> 
  • orange/doc/path.htm

    r892 r8118  
    1 <a href="/orange/doc">Documentation</a> 
     1<a href="/doc">Documentation</a> 
  • orange/doc/reference/C45Learner.htm

    r6538 r8118  
    2828href="http://www.rulequest.com/">Rule Quest's site</a> and extract them into some temporary directory. The files will be modified in the further process, so don't use your copy of Quinlan's sources that you need for another purpose.</LI> 
    2929 
    30 <LI>Download <a href="/orange/download/buildC45.zip">buildC45.zip</a> and unzip its contents  into the directory R8/Src of the Quinlan's stuff (it's the directory that contains, for instance, the file average.c).</LI> 
     30<LI>Download <a href="/download/buildC45.zip">buildC45.zip</a> and unzip its contents  into the directory R8/Src of the Quinlan's stuff (it's the directory that contains, for instance, the file average.c).</LI> 
    3131 
    3232<LI>Run buildC45.py, which will build the plug-in and put it next to orange.pyd (or orange.so on Linux/Mac).</LI> 
  • orange/doc/reference/path.htm

    r892 r8118  
    1 <a href="/orange/doc/reference">Reference Guide</a> 
     1<a href="/doc/reference">Reference Guide</a> 
  • orange/doc/sphinx-ext/themes/orange_theme/footer.html

    r7026 r8118  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/sphinx-ext/themes/orange_theme/header.html

    r8264 r8506  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="_static/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    14             <form class="search" action="{{ pathto('search') }}" method="get" id="search-box"> 
    15             Search: <input type="text" name="q" size="18" /> 
    16             <input type="submit" value="." style="visibility: hidden; width: 0px;" /> 
    17             <input type="hidden" name="check_keywords" value="yes" /> 
    18             <input type="hidden" name="area" value="default" /> 
    19           </form> 
     14            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     15                <input type="hidden" name="cx" value="004435948024671398314:koge-dvl9sc" /> 
     16                <input type="hidden" name="cof" value="FORID:10" /> 
     17                <input type="hidden" name="ie" value="UTF-8" /> 
     18                <img src="/search.png" height="12"/> 
     19                <input type="text" name="q" size="25"/> 
     20                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     21            </form> 
    2022 
    2123            <div id="underimg"></div> 
     
    2325            <table id="uplinks"> 
    2426                <tr> 
    25                     <td><a href="/orange/features.html">Features</a></td> 
    26                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    27                     <td><a href="/orange/doc">Documentation</a></td> 
    28                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    2931                </tr> 
    3032            </table> 
  • orange/doc/sphinx-ext/themes/orange_theme/static/footer.html

    r7026 r8118  
    1616                    <tr> 
    1717                        <td> 
    18                             <p><a href="/orange">Home</a></p> 
    19                             <a href="/orange/screenshots.psp">Screenshots</a><br/> 
    20                             <a href="/orange/features.html">Feature list</a><br/> 
    21                             <a href="/orange/extensions.html">Extensions</a><br/> 
    22                             <a href="/orange/license.html">License</a> 
     18                            <p><a href="/">Home</a></p> 
     19                            <a href="/screenshots.psp">Screenshots</a><br/> 
     20                            <a href="/features.html">Feature list</a><br/> 
     21                            <a href="/extensions.html">Extensions</a><br/> 
     22                            <a href="/license.html">License</a> 
    2323                        </td> 
    2424 
    2525                        <td> 
    26                             <p><a href="/orange/nightly_builds.html">Download</a></p> 
    27                             <a href="/orange/extensions.html">Extensions</a><br/> 
    28                             <!--<a href="/orange/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
    29                             <a href="/orange/svn.html">Subversion</a><br/> 
    30                             <a href="/orange/download.html">Orange 1.0 (old)</a><br/> 
     26                            <p><a href="/nightly_builds.html">Download</a></p> 
     27                            <a href="/extensions.html">Extensions</a><br/> 
     28                            <!--<a href="/nightly_builds.html" class="downlink">Nightly builds</a><br/>--> 
     29                            <a href="/svn.html">Subversion</a><br/> 
     30                            <a href="/download.html">Orange 1.0 (old)</a><br/> 
    3131                        </td> 
    3232 
    3333                        <td> 
    3434                            <p><a class="downlink-main" href="#">News &amp; Support</a></p> 
    35                             <a href="/orange/blog">Blog</a><br/> 
    36                             <a href="/orange/forum">Forum</a><br/> 
     35                            <a href="/blog">Blog</a><br/> 
     36                            <a href="/forum">Forum</a><br/> 
    3737                        </td> 
    3838 
    3939                        <td> 
    40                             <p><a href="/orange/doc">Documentation</a></p> 
    41                             <!--<a href="/orange/screencasts" class="downlink">Video tutorials</a><br/>--> 
    42                             <a href="/orange/doc/catalog">Widget catalog</a><br/> 
    43                             <a href="/orange/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
    44                             <a href="/orange/datasets.psp">Data sets</a><br/> 
     40                            <p><a href="/doc">Documentation</a></p> 
     41                            <!--<a href="/screencasts" class="downlink">Video tutorials</a><br/>--> 
     42                            <a href="/doc/catalog">Widget catalog</a><br/> 
     43                            <a href="/doc/catalog10">Widget catalog (Orange 1.0)</a><br/> 
     44                            <a href="/datasets.psp">Data sets</a><br/> 
    4545                        </td> 
    4646 
    4747                        <td> 
    48                             <p><a href="/orange/doc/scripting.html">Scripting</a></p> 
    49                             <a href="/orange/doc/ofb-rst">Quick start</a><br/> 
    50                             <a href="/orange/doc/reference">Reference</a><br/> 
    51                             <a href="/orange/doc/modules">Modules</a><br/> 
    52                             <a href="/orange/doc/widgets">Widget development</a><br/> 
    53                             <a href="/orange/examples.psp">Example scripts</a><br/> 
     48                            <p><a href="/doc/scripting.html">Scripting</a></p> 
     49                            <a href="/doc/ofb-rst">Quick start</a><br/> 
     50                            <a href="/doc/reference">Reference</a><br/> 
     51                            <a href="/doc/modules">Modules</a><br/> 
     52                            <a href="/doc/widgets">Widget development</a><br/> 
     53                            <a href="/examples.psp">Example scripts</a><br/> 
    5454                        </td> 
    5555                    </tr> 
  • orange/doc/sphinx-ext/themes/orange_theme/static/header.html

    r7026 r8118  
    1 <link rel="shortcut icon" href="/orange/pageicon.ico"> 
    2 <link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/orange/forum/rss.php" /> 
    3 <link rel="alternate" type="application/rss+xml" title="News about Orange" href="/orange/forum/rss-news.php" /> 
    4 <!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orange/orangeSearch.xml">--> 
     1<link rel="shortcut icon" href="/pageicon.ico"> 
     2<link rel="alternate" type="application/rss+xml" title="Orange Forum" href="/forum/rss.php" /> 
     3<link rel="alternate" type="application/rss+xml" title="News about Orange" href="/forum/rss-news.php" /> 
     4<!--<link rel="search" type="application/opensearchdescription+xml" title="Orange Documentation Search" href="/orangeSearch.xml">--> 
    55 
    66<!-- General page header which goes to the beginning of the body element --> 
     
    1010    <div class="borderv"> 
    1111        <div id="header"> 
    12             <div id="orangeimg"><a href="/orange"><img src="/orange/orange-logo-w.png"></a></div> 
     12            <div id="orangeimg"><a href="/"><img src="/orange-logo-w.png"></a></div> 
    1313 
    1414            <form action="http://www.ailab.si/orange/searchRes.html" id="cse-search-box"> 
     
    1616                <input type="hidden" name="cof" value="FORID:10" /> 
    1717                <input type="hidden" name="ie" value="UTF-8" /> 
    18                 <img src="/orange/search.png" height="12"/> 
     18                <img src="/search.png" height="12"/> 
    1919                <input type="text" name="q" size="25"/> 
    2020                <input style="visibility: hidden; height: 1px;" type="submit" name="sa" value="." /> 
     
    2525            <table id="uplinks"> 
    2626                <tr> 
    27                     <td><a href="/orange/features.html">Features</a></td> 
    28                     <td><a href="/orange/nightly_builds.html">Download</a></td> 
    29                     <td><a href="/orange/doc">Documentation</a></td> 
    30                     <td><a href="/orange/forum">Forum</a></td> 
     27                    <td><a href="/features.html">Features</a></td> 
     28                    <td><a href="/nightly_builds.html">Download</a></td> 
     29                    <td><a href="/doc">Documentation</a></td> 
     30                    <td><a href="/forum">Forum</a></td> 
    3131                </tr> 
    3232            </table> 
  • orange/doc/widgets/api.htm

    r6538 r8118  
    131131<p>Note: This documentation is not complete, we are now providing it as 
    132132is, and are working on it to update it. Until then, you should find 
    133 most information about widget APIs in the <a href="/orange/doc/widgets">Tutorial</a>. 
     133most information about widget APIs in the <a href="/doc/widgets">Tutorial</a>. 
    134134 
    135135</body> 
  • orange/doc/widgets/basics.htm

    r8264 r8506  
    229229reporting on number of data items on the input, then does the data 
    230230sampling using Orange's routines for these (see <a 
    231 href="/orange/doc/reference/RandomIndices.htm">chapter on Random 
     231href="/doc/reference/RandomIndices.htm">chapter on Random 
    232232Sampling in Orange Reference Guide</a> for more), and updates the 
    233233interface reporting on the number of sampled instances. Finally, the 
     
    260260<P>Now for the real test. We put the File widget on the schema (from 
    261261Data pane), read iris.tab data set (or any that comes handy, if you 
    262 can find none, download iris from <a href="/orange/datasets.psp">Orange's data set 
     262can find none, download iris from <a href="/datasets.psp">Orange's data set 
    263263repository</a>). We also put our Data Sampler widget on the pane and 
    264264open it (double click on the icon, or right-click and choose 
  • orange/doc/widgets/channels.htm

    r6538 r8118  
    143143the rest of the widget does some simple GUI management, and calls 
    144144learning curve routines from <a 
    145 href="/orange/doc/modules/orngTest.htm">orngTest</a> and performance 
     145href="/doc/modules/orngTest.htm">orngTest</a> and performance 
    146146scoring functions from <a 
    147 href="/orange/doc/modules/orngStat.htm">orngStat</a>. I rather like 
     147href="/doc/modules/orngStat.htm">orngStat</a>. I rather like 
    148148the easy by which new scoring functions are added to the widget, since 
    149149all that is needed is the augmenting the list</p> 
  • orange/doc/widgets/path.htm

    r6538 r8118  
    1 <a href="/orange/doc/widgets">Orange Widgets</a> 
     1<a href="/doc/widgets">Orange Widgets</a> 
  • orange/fixes/fix_changed_names.py

    r8378 r8506  
    6565           "orange.MeasureAttribute_MSE": "Orange.feature.scoring.MSE", 
    6666 
    67            "orngFSS.attMeasure": "Orange.feature.scoring.attMeasure", 
     67           "orngFSS.attMeasure": "Orange.feature.scoring.score_all", 
    6868           "orngFSS.bestNAtts": "Orange.feature.selection.bestNAtts", 
    6969           "orngFSS.attsAbovethreshold": "Orange.feature.selection.attsAbovethreshold", 
  • orange/orngEvalAttr.py

    r8042 r8506  
    1 ### Janez 03-02-14: Added weights 
    2 ### Inform Blaz and remove this comment 
     1from Orange.feature.scoring import * 
    32 
    4 from Orange.feature.scoring import * 
     3mergeAttrValues = merge_values 
     4 
     5MeasureAttribute_MDL = MDL 
     6MeasureAttribute_MDLClass = MDLClass 
     7 
     8MeasureAttribute_Distance = Distance 
     9MeasureAttribute_DistanceClass = DistanceClass 
     10 
     11OrderAttributesByMeasure = OrderAttributes 
     12 
     13 
  • orange/orngFSS.py

    r8042 r8506  
    66#This was in the old module 
    77attsAbovethreshold = attsAboveThreshold 
     8 
     9attMeasure = score_all 
  • source/orange/distvars.cpp

    r8265 r8506  
    12621262  float ri = randomGenerator->randfloat(abs); 
    12631263  const_iterator di(begin()); 
    1264   while (ri > (*di).first) 
    1265     ri -= (*(di++)).first; 
    1266   return (*di).second; 
     1264  while (ri > (*di).second) 
     1265    ri -= (*(di++)).second; 
     1266  return (*di).first; 
    12671267} 
    12681268 
     
    12721272  float ri = (random & 0x7fffffff) / float(0x7fffffff); 
    12731273  const_iterator di(begin()); 
    1274   while (ri > (*di).first) 
    1275     ri -= (*(di++)).first; 
    1276   return (*di).second; 
     1274  while (ri > (*di).second) 
     1275    ri -= (*(di++)).second; 
     1276  return (*di).first; 
    12771277} 
    12781278 
  • source/orange/earth.cpp

    r8396 r8506  
    29952995    threshold = 0.001; 
    29962996    prune = true; 
    2997     trace = 3; 
     2997    trace = 0.0; 
    29982998    min_span = 0; 
    29992999    fast_k = 20; 
     
    30803080 
    30813081    PEarthClassifier classifier = mlnew TEarthClassifier(examples->domain, best_set, dirs, cuts, betas, num_preds, num_responses, num_terms, max_terms); 
    3082     std::string str = classifier->format_earth(); 
     3082//  std::string str = classifier->format_earth(); 
    30833083 
    30843084    // Free memory 
     
    30933093} 
    30943094 
    3095 TEarthClassifier::TEarthClassifier(PDomain _domain, bool * _best_set, int * _dirs, double * _cuts, double *_betas, int _num_preds, int _num_responses, int _num_terms, int _max_terms) 
     3095TEarthClassifier::TEarthClassifier(PDomain _domain, bool * best_set, int * dirs, double * cuts, double *betas, int _num_preds, int _num_responses, int _num_terms, int _max_terms) 
    30963096{ 
    30973097    domain = _domain; 
    30983098    classVar = domain->classVar; 
    3099     best_set = _best_set; 
    3100     dirs = _dirs; 
    3101     cuts = _cuts; 
    3102     betas = _betas; 
     3099    _best_set = best_set; 
     3100    _dirs = dirs; 
     3101    _cuts = cuts; 
     3102    _betas = betas; 
    31033103    num_preds = _num_preds; 
    31043104    num_responses = _num_responses; 
     
    31063106    max_terms = _max_terms; 
    31073107    computesProbabilities = false; 
     3108    init_members(); 
     3109} 
     3110 
     3111TEarthClassifier::TEarthClassifier() 
     3112{ 
     3113    domain = NULL; 
     3114    classVar = NULL; 
     3115    _best_set = NULL; 
     3116    _dirs = NULL; 
     3117    _cuts = NULL; 
     3118    _betas = NULL; 
     3119    num_preds = 0; 
     3120    num_responses = 0; 
     3121    num_terms = 0; 
     3122    max_terms = 0; 
     3123    computesProbabilities = false; 
    31083124} 
    31093125 
     
    31133129} 
    31143130 
    3115 double round(double r) 
    3116 { 
    3117     return floor(r + 0.5); 
     3131TEarthClassifier::~TEarthClassifier() 
     3132{ 
     3133    if (_best_set) 
     3134        free(_best_set); 
     3135    if (_dirs) 
     3136        free(_dirs); 
     3137    if (_cuts) 
     3138        free(_cuts); 
     3139    if (_betas) 
     3140        free(_betas); 
    31183141} 
    31193142 
     
    31223145    double *x = to_xvector(example); 
    31233146    double y = 0.0; 
    3124     PredictEarth(&y, x, best_set, dirs, cuts, betas, num_preds, num_responses, num_terms, max_terms); 
     3147    PredictEarth(&y, x, _best_set, _dirs, _cuts, _betas, num_preds, num_responses, num_terms, max_terms); 
    31253148    free(x); 
    31263149    if (classVar->varType == TValue::INTVAR) 
    3127         return TValue((int) std::max<float>(0.0, round(y))); 
     3150        return TValue((int) std::max<float>(0.0, floor(y + 0.5))); 
    31283151    else 
    31293152        return TValue((float) y); 
     
    31313154 
    31323155std::string TEarthClassifier::format_earth(){ 
    3133     FormatEarth(best_set, dirs, cuts, betas, num_preds, 1, num_terms, max_terms, 3, 0.0); 
     3156    FormatEarth(_best_set, _dirs, _cuts, _betas, num_preds, 1, num_terms, max_terms, 3, 0.0); 
    31343157    // TODO: FormatEarth to a string. 
    31353158    return ""; 
    3136 } 
    3137  
    3138  
    3139 TEarthClassifier::~TEarthClassifier() 
    3140 { 
    3141     free(best_set); 
    3142     free(dirs); 
    3143     free(cuts); 
    3144     free(betas); 
    31453159} 
    31463160 
     
    31623176} 
    31633177 
     3178PBoolList TEarthClassifier::get_best_set() 
     3179{ 
     3180    PBoolList list = mlnew TBoolList(); 
     3181    for (bool * p=_best_set; p < _best_set + max_terms; p++) 
     3182         list->push_back(*p); 
     3183    return list; 
     3184} 
     3185 
     3186PFloatListList TEarthClassifier::get_dirs() 
     3187{ 
     3188    PFloatListList list = mlnew TFloatListList(); 
     3189    for (int i=0; i<max_terms; i++) 
     3190    { 
     3191        TFloatList * inner_list = mlnew TFloatList(); 
     3192        for(int j=0; j<num_preds; j++) 
     3193            inner_list->push_back(_dirs[i + j*max_terms]); 
     3194        list->push_back(inner_list); 
     3195    } 
     3196    return list; 
     3197} 
     3198 
     3199PFloatListList TEarthClassifier::get_cuts() 
     3200{ 
     3201    PFloatListList list = mlnew TFloatListList(); 
     3202    for (int i=0; i<max_terms; i++) 
     3203    { 
     3204        TFloatList * inner_list = mlnew TFloatList(); 
     3205        for (int j=0; j<num_preds; j++) 
     3206            inner_list->push_back(_cuts[i + j*max_terms]); 
     3207        list->push_back(inner_list); 
     3208    } 
     3209    return list; 
     3210} 
     3211 
     3212PFloatList TEarthClassifier::get_betas() 
     3213{ 
     3214    PFloatList list = mlnew TFloatList(); 
     3215    for (double * p=_betas; p < _betas + max_terms; p++) 
     3216        list->push_back((float)*p); 
     3217    return list; 
     3218} 
     3219 
     3220void TEarthClassifier::init_members() 
     3221{ 
     3222    best_set = get_best_set(); 
     3223    dirs = get_dirs(); 
     3224    cuts = get_cuts(); 
     3225    betas = get_betas(); 
     3226 
     3227} 
     3228 
     3229void TEarthClassifier::save_model(TCharBuffer& buffer) 
     3230{ 
     3231    buffer.writeInt(max_terms); 
     3232    buffer.writeInt(num_terms); 
     3233    buffer.writeInt(num_preds); 
     3234    buffer.writeInt(num_responses); 
     3235    buffer.writeBuf((void *) _best_set, sizeof(bool) * max_terms); 
     3236    buffer.writeBuf((void *) _dirs, sizeof(int) * max_terms * num_preds); 
     3237    buffer.writeBuf((void *) _cuts, sizeof(double) * max_terms * num_preds); 
     3238    buffer.writeBuf((void *) _betas, sizeof(double) * max_terms * num_responses); 
     3239} 
     3240 
     3241void TEarthClassifier::load_model(TCharBuffer& buffer) 
     3242{ 
     3243    if (max_terms) 
     3244        raiseError("Cannot overwrite a model"); 
     3245 
     3246    max_terms = buffer.readInt(); 
     3247    num_terms = buffer.readInt(); 
     3248    num_preds = buffer.readInt(); 
     3249    num_responses = buffer.readInt(); 
     3250 
     3251    _best_set = (bool *) calloc(max_terms, sizeof(bool)); 
     3252    _dirs = (int *) calloc(max_terms * num_preds, sizeof(int)); 
     3253    _cuts = (double *) calloc(max_terms * num_preds, sizeof(double)); 
     3254    _betas = (double *) calloc(max_terms * num_responses, sizeof(double)); 
     3255 
     3256    buffer.readBuf((void *) _best_set, sizeof(bool) * max_terms); 
     3257    buffer.readBuf((void *) _dirs, sizeof(int) * max_terms * num_preds); 
     3258    buffer.readBuf((void *) _cuts, sizeof(double) * max_terms * num_preds); 
     3259    buffer.readBuf((void *) _betas, sizeof(double) * max_terms * num_responses); 
     3260    init_members(); 
     3261} 
     3262 
     3263 
     3264 
  • source/orange/earth.hpp

    r8378 r8506  
    201201}; 
    202202 
     203#include "slist.hpp" 
     204 
    203205class ORANGE_API TEarthClassifier: public TClassifierFD { 
    204206public: 
    205207    __REGISTER_CLASS 
    206     TEarthClassifier() {}; 
     208 
     209    TEarthClassifier(); 
    207210    TEarthClassifier(PDomain domain, bool * best_set, int * dirs, double * cuts, double *betas, int num_preds, int num_responses, int num_terms, int max_terms); 
    208211    TEarthClassifier(const TEarthClassifier & other); 
     212 
    209213    virtual ~TEarthClassifier(); 
    210214 
     
    212216    std::string format_earth(); 
    213217 
    214     int num_preds; //P 
    215     int num_terms; //P 
    216     int max_terms; //P 
    217     int num_responses; //P 
    218  
     218    int num_preds; //P Number of predictor variables 
     219    int num_terms; //P Number of used terms 
     220    int max_terms; //P Maximum number of terms 
     221    int num_responses; //P Number of response variables 
     222 
     223    PBoolList best_set; //P Used terms. 
     224    PFloatListList dirs; //P max_preds x num_preds matrix 
     225    PFloatListList cuts; //P max_preds x num_preds matrix of cuts 
     226    PFloatList betas; //P Term coefficients; 
     227 
     228    void save_model(TCharBuffer& buffer); 
     229    void load_model(TCharBuffer& buffer); 
    219230private: 
    220231 
     232    PBoolList get_best_set(); 
     233    PFloatListList get_dirs(); 
     234    PFloatListList get_cuts(); 
     235    PFloatList get_betas(); 
     236 
     237    void init_members(); 
    221238    double* to_xvector(const TExample&); 
    222239 
    223     bool* best_set; 
    224     int * dirs; 
    225     double * cuts; 
    226     double * betas; 
     240    bool* _best_set; 
     241    int * _dirs; 
     242    double * _cuts; 
     243    double * _betas; 
    227244}; 
    228245 
  • source/orange/lib_learner.cpp

    r8378 r8506  
    15191519} 
    15201520 
     1521PyObject *EarthClassifier__reduce__(PyObject *self) PYARGS(METH_VARARGS, "") 
     1522{ 
     1523    PyTRY 
     1524    CAST_TO(TEarthClassifier, classifier); 
     1525    TCharBuffer buffer(1024); 
     1526    classifier->save_model(buffer); 
     1527    return Py_BuildValue("O(s#)N", getExportedFunction("__pickleLoaderEarthClassifier"), 
     1528                                    buffer.buf, buffer.length(), 
     1529                                    packOrangeDictionary(self)); 
     1530    PyCATCH 
     1531} 
     1532 
     1533PyObject *__pickleLoaderEarthClassifier(PyObject *self, PyObject *args) PYARGS(METH_VARARGS, "(buffer)") 
     1534{ 
     1535    PyTRY 
     1536    char * cbuf = NULL; 
     1537    int buffer_size = 0; 
     1538    if (!PyArg_ParseTuple(args, "s#:__pickleLoaderEarthClassifier", &cbuf, &buffer_size)) 
     1539        return NULL; 
     1540    TCharBuffer buffer(cbuf); 
     1541    PEarthClassifier classifier = mlnew TEarthClassifier(); 
     1542    classifier->load_model(buffer); 
     1543    return WrapOrange(classifier); 
     1544    PyCATCH 
     1545} 
     1546 
     1547 
    15211548     
    15221549/************* BAYES ************/ 
  • testing/regressionTests/results/orange25/mean-regression.py.txt

    r7749 r8105  
    1 Tree:    18.659 
     1Tree:    18.834 
    22Default: 84.777 
Note: See TracChangeset for help on using the changeset viewer.