Ignore:
Timestamp:
07/18/16 12:26:03 (8 years ago)
Author:
sherbold
Message:
  • code documentation and formatting
Location:
trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/CLAMIProcessor.java

    r86 r135  
    5151    @Override 
    5252    public void setParameter(String parameters) { 
    53         // TODO Auto-generated method stub 
    54  
     53        // dummy, parameters not used 
    5554    } 
    5655 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/CLAProcessor.java

    r86 r135  
    4444    @Override 
    4545    public void setParameter(String parameters) { 
    46         // TODO Auto-generated method stub 
    47  
     46        // dummy, parameters not used 
    4847    } 
    4948 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/LogarithmTransform.java

    r86 r135  
    112112            Instance instance = traindata.instance(i); 
    113113            for (int j = 0; j < testdata.numAttributes(); j++) { 
    114                 if (traindata.attribute(j) != classAttribute && traindata.attribute(j).isNumeric()) 
     114                if (traindata.attribute(j) != classAttribute && 
     115                    traindata.attribute(j).isNumeric()) 
    115116                { 
    116117                    if (instance.value(j) < 0) { 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/MORPH.java

    r120 r135  
    2525 
    2626/** 
    27  * Implements the MORPH data privatization.  
     27 * Implements the MORPH data privatization. 
    2828 *  
    2929 *  
     
    3636     */ 
    3737    Random rand = new Random(); 
    38      
     38 
    3939    /** 
    4040     * parameter alpha for MORPH, default is 0.15 
    4141     */ 
    4242    double alpha = 0.15; 
    43      
     43 
    4444    /** 
    4545     * parameter beta for MORPH, default is 0.35 
    4646     */ 
    4747    double beta = 0.35; 
    48      
     48 
    4949    /** 
    5050     * Does not have parameters. String is ignored. 
     
    5757        if (parameters != null && !parameters.equals("")) { 
    5858            String[] values = parameters.split(" "); 
    59             if( values.length!=2 ) { 
     59            if (values.length != 2) { 
    6060                throw new InvalidParameterException("MORPH requires two doubles as parameter or no parameters to use default values"); 
    6161            } 
     
    6363                alpha = Double.parseDouble(values[0]); 
    6464                beta = Double.parseDouble(values[1]); 
    65             } catch(NumberFormatException e) { 
     65            } 
     66            catch (NumberFormatException e) { 
    6667                throw new InvalidParameterException("MORPH requires two doubles as parameter or no parameters to use default values"); 
    6768            } 
     
    7576    @Override 
    7677    public void apply(Instances testdata, SetUniqueList<Instances> traindataSet) { 
    77         for( Instances traindata : traindataSet ) { 
     78        for (Instances traindata : traindataSet) { 
    7879            applyMORPH(traindata); 
    7980        } 
     
    8889        applyMORPH(traindata); 
    8990    } 
    90      
     91 
    9192    /** 
    9293     *  
     
    9596     * </p> 
    9697     * 
    97      * @param data data to which the processor is applied 
     98     * @param data 
     99     *            data to which the processor is applied 
    98100     */ 
    99101    public void applyMORPH(Instances data) { 
    100         for (int i=0; i<data.numInstances(); i++ ) { 
     102        for (int i = 0; i < data.numInstances(); i++) { 
    101103            morphInstance(data.get(i), data); 
    102104        } 
    103105    } 
    104      
     106 
    105107    /** 
    106108     * <p> 
     
    108110     * </p> 
    109111     * 
    110      * @param instance instance that is morphed 
    111      * @param data data based on which the instance is morphed 
     112     * @param instance 
     113     *            instance that is morphed 
     114     * @param data 
     115     *            data based on which the instance is morphed 
    112116     */ 
    113117    public void morphInstance(Instance instance, Instances data) { 
    114118        Instance nearestUnlikeNeighbor = getNearestUnlikeNeighbor(instance, data); 
    115         if( nearestUnlikeNeighbor==null ) { 
    116             throw new RuntimeException("could not find nearest unlike neighbor within the data: " + data.relationName()); 
     119        if (nearestUnlikeNeighbor == null) { 
     120            throw new RuntimeException("could not find nearest unlike neighbor within the data: " + 
     121                data.relationName()); 
    117122        } 
    118         for( int j=0; j<data.numAttributes() ; j++ ) { 
    119             if( data.attribute(j)!=data.classAttribute() && data.attribute(j).isNumeric()) { 
    120                 double randVal = rand.nextDouble()*(beta-alpha)+alpha; 
    121                 instance.setValue(j, instance.value(j) + randVal*(instance.value(j)-nearestUnlikeNeighbor.value(j)) ); 
     123        for (int j = 0; j < data.numAttributes(); j++) { 
     124            if (data.attribute(j) != data.classAttribute() && data.attribute(j).isNumeric()) { 
     125                double randVal = rand.nextDouble() * (beta - alpha) + alpha; 
     126                instance.setValue(j, instance.value(j) + 
     127                    randVal * (instance.value(j) - nearestUnlikeNeighbor.value(j))); 
    122128            } 
    123129        } 
    124130    } 
    125      
     131 
    126132    /** 
    127133     * <p> 
    128      * Determines the nearest unlike neighbor of an instance.  
     134     * Determines the nearest unlike neighbor of an instance. 
    129135     * </p> 
    130136     * 
    131      * @param instance instance to which the nearest unlike neighbor is determined 
    132      * @param data data where the nearest unlike neighbor is determined from 
     137     * @param instance 
     138     *            instance to which the nearest unlike neighbor is determined 
     139     * @param data 
     140     *            data where the nearest unlike neighbor is determined from 
    133141     * @return nearest unlike instance 
    134142     */ 
    135143    public Instance getNearestUnlikeNeighbor(Instance instance, Instances data) { 
    136144        Instance nearestUnlikeNeighbor = null; 
    137          
    138         double[] instanceVector = new double[data.numAttributes()-1]; 
     145 
     146        double[] instanceVector = new double[data.numAttributes() - 1]; 
    139147        int tmp = 0; 
    140         for( int j=0; j<data.numAttributes(); j++ ) { 
    141             if( data.attribute(j)!=data.classAttribute() && data.attribute(j).isNumeric()) { 
     148        for (int j = 0; j < data.numAttributes(); j++) { 
     149            if (data.attribute(j) != data.classAttribute() && data.attribute(j).isNumeric()) { 
    142150                instanceVector[tmp] = instance.value(j); 
    143151            } 
    144152        } 
    145          
     153 
    146154        double minDistance = Double.MAX_VALUE; 
    147         for( int i=0 ; i<data.numInstances() ; i++ ) { 
    148             if( instance.classValue() != data.instance(i).classValue() ) { 
     155        for (int i = 0; i < data.numInstances(); i++) { 
     156            if (instance.classValue() != data.instance(i).classValue()) { 
    149157                double[] otherVector = new double[data.numAttributes() - 1]; 
    150158                tmp = 0; 
    151159                for (int j = 0; j < data.numAttributes(); j++) { 
    152                     if (data.attribute(j) != data.classAttribute() && data.attribute(j).isNumeric()) { 
     160                    if (data.attribute(j) != data.classAttribute() && 
     161                        data.attribute(j).isNumeric()) 
     162                    { 
    153163                        otherVector[tmp++] = data.instance(i).value(j); 
    154164                    } 
    155165                } 
    156                 if( MathArrays.distance(instanceVector, otherVector)<minDistance) { 
     166                if (MathArrays.distance(instanceVector, otherVector) < minDistance) { 
    157167                    minDistance = MathArrays.distance(instanceVector, otherVector); 
    158168                    nearestUnlikeNeighbor = data.instance(i); 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/MedianAsReference.java

    r86 r135  
    129129            Instance instance = traindata.instance(i); 
    130130            for (int j = 0; j < traindata.numAttributes(); j++) { 
    131                 if (traindata.attribute(j) != classAttribute && traindata.attribute(j).isNumeric()) 
     131                if (traindata.attribute(j) != classAttribute && 
     132                    traindata.attribute(j).isNumeric()) 
    132133                { 
    133134                    instance.setValue(j, instance.value(j) + (median[j] - currentmedian[j])); 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/NominalAttributeFilter.java

    r86 r135  
    9595 
    9696            // delete all instances where nominal attribute has the value of one of the parameter 
    97             if (indexOfnominalAttributeValues.contains(wekaInstance 
    98                 .value(indexOfConfidenceAttribute))) 
     97            if (indexOfnominalAttributeValues 
     98                .contains(wekaInstance.value(indexOfConfidenceAttribute))) 
    9999            { 
    100100                traindata.delete(j); 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/Oversampling.java

    r86 r135  
    8080 
    8181            Resample resample = new Resample(); 
    82             // TODO: resample.setSampleSizePercent((100.0*counts[1])/100+0.01); 
    83             // Ohne +0.01 wird bei tomcat, xerces-1.2 und jedit-4.0 ein negative 
    84             // weniger zurückgegeben 
    8582            resample.setSampleSizePercent((100.0 * counts[0]) / counts[1]); 
    8683            try { 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/SynonymAttributePruning.java

    r86 r135  
    5959        double distance; 
    6060        for (int j = traindata.numAttributes() - 1; j >= 0; j--) { 
    61             if( j!=traindata.classIndex() ) { 
     61            if (j != traindata.classIndex()) { 
    6262                boolean hasClosest = false; 
    6363                for (int i1 = 0; !hasClosest && i1 < traindata.size(); i1++) { 
     
    6767                            double distanceJ = Double.MAX_VALUE; 
    6868                            for (int k = 0; k < traindata.numAttributes(); k++) { 
    69                                 distance = Math.abs(traindata.get(i1).value(k) - traindata.get(i2).value(k)); 
     69                                distance = Math 
     70                                    .abs(traindata.get(i1).value(k) - traindata.get(i2).value(k)); 
    7071                                if (distance < minVal) { 
    7172                                    minVal = distance; 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/TCAPlusNormalization.java

    r86 r135  
    1919import weka.core.Instances; 
    2020 
    21 // normalization selected according to TCA+ rules (TCA has to be applied separately 
     21/** 
     22 * <p> 
     23 * Normalization selected according to the TCA+ rules after Nam et al. (Transfer Defect Learning). 
     24 * </p> 
     25 *  
     26 * @author Steffen Herbold 
     27 */ 
    2228public class TCAPlusNormalization implements IProcessesingStrategy { 
    2329 
     
    3036    @Override 
    3137    public void setParameter(String parameters) { 
    32         // TODO Auto-generated method stub 
    33          
     38        // dummy, paramters not used 
    3439    } 
    3540 
     41    /* 
     42     * (non-Javadoc) 
     43     *  
     44     * @see de.ugoe.cs.cpdp.dataprocessing.IProcessesingStrategy#apply(weka.core.Instances, 
     45     * weka.core.Instances) 
     46     */ 
    3647    @Override 
    3748    public void apply(Instances testdata, Instances traindata) { 
    3849        applyTCAPlus(testdata, traindata); 
    3950    } 
    40      
     51 
    4152    private void applyTCAPlus(Instances testdata, Instances traindata) { 
    4253        DistChar dcTest = WekaUtils.datasetDistance(testdata); 
    4354        DistChar dcTrain = WekaUtils.datasetDistance(traindata); 
    44          
     55 
    4556        // RULE 1: 
    46         if( 0.9*dcTrain.mean<=dcTest.mean && 1.1*dcTrain.mean>=dcTest.mean && 
    47             0.9*dcTrain.std<=dcTest.std && 1.1*dcTrain.std>=dcTest.std) { 
     57        if (0.9 * dcTrain.mean <= dcTest.mean && 1.1 * dcTrain.mean >= dcTest.mean && 
     58            0.9 * dcTrain.std <= dcTest.std && 1.1 * dcTrain.std >= dcTest.std) 
     59        { 
    4860            // do nothing 
    4961        } 
    5062        // RULE 2: 
    51         else if((0.4*dcTrain.min>dcTest.min || 1.6*dcTrain.min<dcTest.min) && 
    52                 (0.4*dcTrain.max>dcTest.max || 1.6*dcTrain.min<dcTest.max) && 
    53                 (0.4*dcTrain.min>dcTest.num || 1.6*dcTrain.min<dcTest.num)) { 
     63        else if ((0.4 * dcTrain.min > dcTest.min || 1.6 * dcTrain.min < dcTest.min) && 
     64            (0.4 * dcTrain.max > dcTest.max || 1.6 * dcTrain.min < dcTest.max) && 
     65            (0.4 * dcTrain.min > dcTest.num || 1.6 * dcTrain.min < dcTest.num)) 
     66        { 
    5467            NormalizationUtil.minMax(testdata); 
    5568            NormalizationUtil.minMax(traindata); 
    5669        } 
    5770        // RULE 3: 
    58         else if((0.4*dcTrain.std>dcTest.std && dcTrain.num<dcTest.num) ||  
    59                 (1.6*dcTrain.std<dcTest.std)&& dcTrain.num>dcTest.num) { 
     71        else if ((0.4 * dcTrain.std > dcTest.std && dcTrain.num < dcTest.num) || 
     72            (1.6 * dcTrain.std < dcTest.std) && dcTrain.num > dcTest.num) 
     73        { 
    6074            NormalizationUtil.zScoreTraining(testdata, traindata); 
    6175        } 
    6276        // RULE 4: 
    63         else if((0.4*dcTrain.std>dcTest.std && dcTrain.num>dcTest.num) ||  
    64                 (1.6*dcTrain.std<dcTest.std)&& dcTrain.num<dcTest.num) { 
     77        else if ((0.4 * dcTrain.std > dcTest.std && dcTrain.num > dcTest.num) || 
     78            (1.6 * dcTrain.std < dcTest.std) && dcTrain.num < dcTest.num) 
     79        { 
    6580            NormalizationUtil.zScoreTarget(testdata, traindata); 
    6681        } 
    67         //RULE 5: 
     82        // RULE 5: 
    6883        else { 
    6984            NormalizationUtil.zScore(testdata); 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/TopMetricFilter.java

    r129 r135  
    5252     */ 
    5353    double correlationThreshold = 0.5; 
    54      
     54 
    5555    /* 
    5656     * (non-Javadoc) 
     
    6060    @Override 
    6161    public void setParameter(String parameters) { 
    62         if( parameters!=null && !parameters.equals("")) { 
     62        if (parameters != null && !parameters.equals("")) { 
    6363            correlationThreshold = Double.parseDouble(parameters); 
    6464        } 
     
    7676    } 
    7777 
    78     private void determineTopKAttributes(Instances testdata, SetUniqueList<Instances> traindataSet) throws Exception { 
    79         Integer[] counts = new Integer[traindataSet.get(0).numAttributes()-1]; 
    80         IntStream.range(0,counts.length).forEach(val -> counts[val] = 0); 
    81         for( Instances traindata : traindataSet ) { 
     78    private void determineTopKAttributes(Instances testdata, SetUniqueList<Instances> traindataSet) 
     79        throws Exception 
     80    { 
     81        Integer[] counts = new Integer[traindataSet.get(0).numAttributes() - 1]; 
     82        IntStream.range(0, counts.length).forEach(val -> counts[val] = 0); 
     83        for (Instances traindata : traindataSet) { 
    8284            J48 decisionTree = new J48(); 
    8385            decisionTree.buildClassifier(traindata); 
    84             int k=0; 
    85             for( int j=0; j<traindata.numAttributes(); j++) { 
    86                 if(j!=traindata.classIndex()){ 
    87                     if( decisionTree.toString().contains(traindata.attribute(j).name()) ) { 
    88                         counts[k] = counts[k]+1; 
     86            int k = 0; 
     87            for (int j = 0; j < traindata.numAttributes(); j++) { 
     88                if (j != traindata.classIndex()) { 
     89                    if (decisionTree.toString().contains(traindata.attribute(j).name())) { 
     90                        counts[k] = counts[k] + 1; 
    8991                    } 
    9092                    k++; 
     
    9395        } 
    9496        int[] topkIndex = new int[counts.length]; 
    95         IntStream.range(0,counts.length).forEach(val -> topkIndex[val] = val); 
     97        IntStream.range(0, counts.length).forEach(val -> topkIndex[val] = val); 
    9698        SortUtils.quicksort(counts, topkIndex, true); 
    97          
     99 
    98100        // get CFSs for each training set 
    99101        List<Set<Integer>> cfsSets = new LinkedList<>(); 
    100         for( Instances traindata : traindataSet ) { 
     102        for (Instances traindata : traindataSet) { 
    101103            boolean selectionSuccessful = false; 
    102104            boolean secondAttempt = false; 
     
    113115                        attsel.SelectAttributes(traindataCopy); 
    114116                        Set<Integer> cfsSet = new HashSet<>(); 
    115                         for( int attr : attsel.selectedAttributes() ) { 
     117                        for (int attr : attsel.selectedAttributes()) { 
    116118                            cfsSet.add(attr); 
    117119                        } 
     
    128130                        attsel.SelectAttributes(traindata); 
    129131                        Set<Integer> cfsSet = new HashSet<>(); 
    130                         for( int attr : attsel.selectedAttributes() ) { 
     132                        for (int attr : attsel.selectedAttributes()) { 
    131133                            cfsSet.add(attr); 
    132134                        } 
     
    160162            while (!selectionSuccessful); // dummy loop for internal continue 
    161163        } 
    162          
     164 
    163165        double[] coverages = new double[topkIndex.length]; 
    164         for( Set<Integer> cfsSet : cfsSets ) { 
     166        for (Set<Integer> cfsSet : cfsSets) { 
    165167            Set<Integer> topkSet = new HashSet<>(); 
    166             for( int k=0; k<topkIndex.length ; k++ ) { 
     168            for (int k = 0; k < topkIndex.length; k++) { 
    167169                topkSet.add(topkIndex[k]); 
    168                 coverages[k] += (coverage(topkSet, cfsSet)/traindataSet.size()); 
     170                coverages[k] += (coverage(topkSet, cfsSet) / traindataSet.size()); 
    169171            } 
    170172        } 
    171173        double bestCoverageValue = Double.MIN_VALUE; 
    172174        int bestCoverageIndex = 0; 
    173         for( int i=0; i<coverages.length; i++ ) { 
    174             if( coverages[i]>bestCoverageValue) { 
     175        for (int i = 0; i < coverages.length; i++) { 
     176            if (coverages[i] > bestCoverageValue) { 
    175177                bestCoverageValue = coverages[i]; 
    176178                bestCoverageIndex = i; 
     
    180182        SpearmansCorrelation corr = new SpearmansCorrelation(); 
    181183        double[][] correlationMatrix = new double[bestCoverageIndex][bestCoverageIndex]; 
    182         for( Instances traindata : traindataSet ) { 
     184        for (Instances traindata : traindataSet) { 
    183185            double[][] vectors = new double[bestCoverageIndex][traindata.size()]; 
    184             for( int i=0; i<traindata.size(); i++ ) { 
    185                 for( int j=0; j<bestCoverageIndex; j++) { 
     186            for (int i = 0; i < traindata.size(); i++) { 
     187                for (int j = 0; j < bestCoverageIndex; j++) { 
    186188                    vectors[j][i] = traindata.get(i).value(topkIndex[j]); 
    187189                } 
    188190            } 
    189             for( int j=0; j<bestCoverageIndex; j++ ) { 
    190                 for( int k=j+1; k<bestCoverageIndex; k++ ) { 
     191            for (int j = 0; j < bestCoverageIndex; j++) { 
     192                for (int k = j + 1; k < bestCoverageIndex; k++) { 
    191193                    correlationMatrix[j][k] = Math.abs(corr.correlation(vectors[j], vectors[k])); 
    192194                } 
     
    194196        } 
    195197        Set<Integer> topkSetIndexSet = new TreeSet<>(); 
    196         // j<30 ensures that the computational time does not explode since the powerset is 2^n in complexity 
    197         for( int j=0; j<bestCoverageIndex && j<30 ; j++ ) { 
     198        // j<30 ensures that the computational time does not explode since the powerset is 2^n in 
     199        // complexity 
     200        for (int j = 0; j < bestCoverageIndex && j < 30; j++) { 
    198201            topkSetIndexSet.add(j); 
    199202        } 
     
    201204        double bestOptCoverage = Double.MIN_VALUE; 
    202205        Set<Integer> opttopkSetIndexSet = null; 
    203         for( Set<Integer> combination : allCombinations ) { 
    204             if( isUncorrelated(correlationMatrix, combination) ) { 
     206        for (Set<Integer> combination : allCombinations) { 
     207            if (isUncorrelated(correlationMatrix, combination)) { 
    205208                double currentCoverage = 0.0; 
    206209                Set<Integer> topkCombination = new TreeSet<>(); 
    207                 for( Integer index : combination ) { 
     210                for (Integer index : combination) { 
    208211                    topkCombination.add(topkIndex[index]); 
    209212                } 
    210                 for( Set<Integer> cfsSet : cfsSets ) { 
    211                     currentCoverage += (coverage(topkCombination, cfsSet)/traindataSet.size()); 
    212                 } 
    213                 if( currentCoverage > bestOptCoverage ) { 
     213                for (Set<Integer> cfsSet : cfsSets) { 
     214                    currentCoverage += (coverage(topkCombination, cfsSet) / traindataSet.size()); 
     215                } 
     216                if (currentCoverage > bestOptCoverage) { 
    214217                    bestOptCoverage = currentCoverage; 
    215218                    opttopkSetIndexSet = combination; 
     
    218221        } 
    219222        Set<Integer> opttopkIndex = new TreeSet<>(); 
    220         for( Integer index : opttopkSetIndexSet) { 
     223        for (Integer index : opttopkSetIndexSet) { 
    221224            opttopkIndex.add(topkIndex[index]); 
    222225        } 
    223226        Console.traceln(Level.FINE, "selected the following metrics:"); 
    224         for( Integer index : opttopkIndex) { 
     227        for (Integer index : opttopkIndex) { 
    225228            Console.traceln(Level.FINE, traindataSet.get(0).attribute(index).name()); 
    226229        } 
    227230        // finally remove attributes 
    228         for( int j=testdata.numAttributes()-1; j>=0; j-- ) { 
    229             if( j!=testdata.classIndex() && !opttopkIndex.contains(j) ) { 
     231        for (int j = testdata.numAttributes() - 1; j >= 0; j--) { 
     232            if (j != testdata.classIndex() && !opttopkIndex.contains(j)) { 
    230233                testdata.deleteAttributeAt(j); 
    231                 for( Instances traindata : traindataSet ) { 
     234                for (Instances traindata : traindataSet) { 
    232235                    traindata.deleteAttributeAt(j); 
    233236                } 
     
    235238        } 
    236239    } 
    237      
     240 
    238241    private boolean isUncorrelated(double[][] correlationMatrix, Set<Integer> combination) { 
    239242        Integer[] intCombination = combination.toArray(new Integer[0]); 
    240243        boolean areUncorrelated = true; 
    241         for( int i=0 ; areUncorrelated && i<intCombination.length ; i++ ) { 
    242             for( int j=i+1; areUncorrelated && j<intCombination.length ; j++ ) { 
    243                 areUncorrelated &= correlationMatrix[intCombination[i]][intCombination[j]]>correlationThreshold; 
     244        for (int i = 0; areUncorrelated && i < intCombination.length; i++) { 
     245            for (int j = i + 1; areUncorrelated && j < intCombination.length; j++) { 
     246                areUncorrelated &= 
     247                    correlationMatrix[intCombination[i]][intCombination[j]] > correlationThreshold; 
    244248            } 
    245249        } 
    246250        return areUncorrelated; 
    247251    } 
    248      
     252 
    249253    private double coverage(Set<Integer> topkSet, Set<Integer> cfsSet) { 
    250254        Set<Integer> topkSetCopy1 = new HashSet<>(topkSet); 
     
    252256        Set<Integer> topkSetCopy2 = new HashSet<>(topkSet); 
    253257        topkSetCopy2.addAll(cfsSet); 
    254         return ((double) topkSetCopy1.size())/topkSetCopy2.size(); 
     258        return ((double) topkSetCopy1.size()) / topkSetCopy2.size(); 
    255259    } 
    256260} 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/TransferComponentAnalysis.java

    r86 r135  
    3737 * </p> 
    3838 *  
    39  * TODO comment class 
    4039 * @author Steffen Herbold 
    4140 */ 
    4241public class TransferComponentAnalysis implements IProcessesingStrategy { 
    4342 
     43    /** 
     44     * Dimension of the reduced data. 
     45     */ 
    4446    int reducedDimension = 5; 
    4547 
     48    /* 
     49     * (non-Javadoc) 
     50     *  
     51     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
     52     */ 
    4653    @Override 
    4754    public void setParameter(String parameters) { 
    48          
    49     } 
    50  
     55        // dummy, paramters ignored 
     56    } 
     57 
     58    /* 
     59     * (non-Javadoc) 
     60     *  
     61     * @see de.ugoe.cs.cpdp.dataprocessing.IProcessesingStrategy#apply(weka.core.Instances, 
     62     * weka.core.Instances) 
     63     */ 
    5164    @Override 
    5265    public void apply(Instances testdata, Instances traindata) { 
     
    5467    } 
    5568 
     69    /** 
     70     * <p> 
     71     * calculates the linear kernel function between two instances 
     72     * </p> 
     73     * 
     74     * @param x1 
     75     *            first instance 
     76     * @param x2 
     77     *            second instance 
     78     * @return kernel value 
     79     */ 
    5680    private double linearKernel(Instance x1, Instance x2) { 
    5781        double value = 0.0d; 
     
    6488    } 
    6589 
     90    /** 
     91     * <p> 
     92     * Applies TCA to the test and training data. 
     93     * </p> 
     94     * 
     95     * @param testdata 
     96     *            the test data 
     97     * @param traindata 
     98     *            the training data 
     99     */ 
    66100    private void applyTCA(Instances testdata, Instances traindata) { 
    67101        final int sizeTest = testdata.numInstances(); 
     
    125159    } 
    126160 
     161    /** 
     162     * <p> 
     163     * Creates the kernel matrix of the test and training data 
     164     * </p> 
     165     * 
     166     * @param testdata 
     167     *            the test data 
     168     * @param traindata 
     169     *            the training data 
     170     * @return kernel matrix 
     171     */ 
    127172    private PrimitiveMatrix buildKernel(Instances testdata, Instances traindata) { 
    128173        final int kernelDim = traindata.numInstances() + testdata.numInstances(); 
     
    162207    } 
    163208 
     209    /** 
     210     * <p> 
     211     * Calculates the kernel norm matrix, i.e., the matrix which is used for matrix multiplication 
     212     * to calculate the kernel norm. 
     213     * </p> 
     214     * 
     215     * @param dimTest 
     216     *            dimension of the test data 
     217     * @param sizeTrain 
     218     *            number of instances of the training data 
     219     * @return kernel norm matrix 
     220     */ 
    164221    private PrimitiveMatrix buildKernelNormMatrix(final int dimTest, final int sizeTrain) { 
    165222        final double trainSquared = 1.0 / (sizeTrain * (double) sizeTrain); 
     
    199256    } 
    200257 
     258    /** 
     259     * <p> 
     260     * Creates the center matrix 
     261     * </p> 
     262     * 
     263     * @param sizeTest 
     264     *            number of instances of the test data 
     265     * @param sizeTrain 
     266     *            number of instances of the training data 
     267     * @return center matrix 
     268     */ 
    201269    private PrimitiveMatrix buildCenterMatrix(final int sizeTest, final int sizeTrain) { 
    202270        Builder<PrimitiveMatrix> centerMatrix = 
     
    208276    } 
    209277 
     278    /** 
     279     * <p> 
     280     * Builds the mu-Matrix for offsetting values. 
     281     * </p> 
     282     * 
     283     * @param sizeTest 
     284     *            number of instances of the test data 
     285     * @param sizeTrain 
     286     *            number of instances of the training data 
     287     * @param mu 
     288     *            mu parameter 
     289     * @return mu-Matrix 
     290     */ 
    210291    private PrimitiveMatrix buildMuMatrix(final int sizeTest, 
    211292                                          final int sizeTrain, 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/Undersampling.java

    r86 r135  
    8080 
    8181            Resample resample = new Resample(); 
    82             // TODO: resample.setSampleSizePercent((100.0*counts[1])/100+0.01); 
    83             // Ohne +0.01 wird bei tomcat, xerces-1.2 und jedit-4.0 ein negative weniger 
    84             // zurückgegeben 
    8582            resample.setSampleSizePercent((100.0 * counts[1]) / counts[0]); 
    8683            try { 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataprocessing/ZScoreTargetNormalization.java

    r86 r135  
    2424 * @author Steffen Herbold 
    2525 */ 
    26 public class ZScoreTargetNormalization implements ISetWiseProcessingStrategy, IProcessesingStrategy 
     26public class ZScoreTargetNormalization 
     27    implements ISetWiseProcessingStrategy, IProcessesingStrategy 
    2728{ 
    2829 
Note: See TracChangeset for help on using the changeset viewer.