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/dataselection
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/AbstractCharacteristicSelection.java

    r86 r135  
    104104                    } 
    105105                    else if ("median".equals(characteristics[j])) { 
    106                         instanceValues[i * characteristics.length + j] = Utils.kthSmallestValue(testdata.attributeToDoubleArray(i), testdata.size()/2); 
     106                        instanceValues[i * characteristics.length + j] = 
     107                            Utils.kthSmallestValue(testdata.attributeToDoubleArray(i), 
     108                                                   testdata.size() / 2); 
    107109                    } 
    108110                    else { 
     
    138140                        } 
    139141                        else if ("median".equals(characteristics[j])) { 
    140                             instanceValues[i * characteristics.length + j] = Utils.kthSmallestValue(traindata.attributeToDoubleArray(i), traindata.size()/2); 
     142                            instanceValues[i * characteristics.length + j] = 
     143                                Utils.kthSmallestValue(traindata.attributeToDoubleArray(i), 
     144                                                       traindata.size() / 2); 
    141145                        } 
    142146                        else { 
     
    173177        } 
    174178        catch (Exception e) { 
    175             throw new RuntimeException( 
    176                                        "Unexpected exception during normalization of distributional characteristics.", 
     179            throw new RuntimeException("Unexpected exception during normalization of distributional characteristics.", 
    177180                                       e); 
    178181        } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/CLIFF.java

    r120 r135  
    2828public class CLIFF implements IPointWiseDataselectionStrategy, ISetWiseDataselectionStrategy { 
    2929 
     30    /** 
     31     * percentage of data selected 
     32     */ 
    3033    private double percentage = 0.10; 
    31      
     34 
     35    /** 
     36     * number of ranges considered 
     37     */ 
    3238    private final int numRanges = 10; 
    3339 
     
    4046    @Override 
    4147    public void setParameter(String parameters) { 
    42         if( parameters!=null ) { 
     48        if (parameters != null) { 
    4349            percentage = Double.parseDouble(parameters); 
    4450        } 
    4551    } 
    46      
    47     /** 
     52 
     53    /* 
    4854     * @see de.ugoe.cs.cpdp.dataselection.SetWiseDataselectionStrategy#apply(weka.core.Instances, 
    49      *      org.apache.commons.collections4.list.SetUniqueList) 
     55     * org.apache.commons.collections4.list.SetUniqueList) 
    5056     */ 
    5157    @Override 
    5258    public void apply(Instances testdata, SetUniqueList<Instances> traindataSet) { 
    53         for( Instances traindata : traindataSet ) { 
     59        for (Instances traindata : traindataSet) { 
    5460            applyCLIFF(traindata); 
    5561        } 
    5662    } 
    5763 
    58     /** 
     64    /* 
    5965     * @see de.ugoe.cs.cpdp.dataselection.PointWiseDataselectionStrategy#apply(weka.core.Instances, 
    60      *      weka.core.Instances) 
     66     * weka.core.Instances) 
    6167     */ 
    6268    @Override 
     
    6571    } 
    6672 
     73    /** 
     74     * <p> 
     75     * Applies the CLIFF relevancy filter to the data. 
     76     * </p> 
     77     * 
     78     * @param data 
     79     *            the data 
     80     * @return CLIFF-filtered data 
     81     */ 
    6782    protected Instances applyCLIFF(Instances data) { 
    6883        final double[][] powerAttributes = new double[data.size()][data.numAttributes()]; 
    6984        final double[] powerEntity = new double[data.size()]; 
    70          
     85 
    7186        final int[] counts = data.attributeStats(data.classIndex()).nominalCounts; 
    7287        final double probDefect = data.numInstances() / (double) counts[1]; 
    73          
    74         for( int j=0; j<data.numAttributes(); j++ ) { 
    75             if( data.attribute(j)!=data.classAttribute()) { 
     88 
     89        for (int j = 0; j < data.numAttributes(); j++) { 
     90            if (data.attribute(j) != data.classAttribute()) { 
    7691                final double[] ranges = getRanges(data, j); 
    7792                final double[] probDefectRange = getRangeProbabilities(data, j, ranges); 
    78                  
    79                 for( int i=0 ; i<data.numInstances() ; i++ ) { 
     93 
     94                for (int i = 0; i < data.numInstances(); i++) { 
    8095                    final double value = data.instance(i).value(j); 
    8196                    final int range = determineRange(ranges, value); 
    8297                    double probClass, probNotClass, probRangeClass, probRangeNotClass; 
    83                     if( data.instance(i).classValue()==1 ) { 
     98                    if (data.instance(i).classValue() == 1) { 
    8499                        probClass = probDefect; 
    85                         probNotClass = 1.0-probDefect; 
     100                        probNotClass = 1.0 - probDefect; 
    86101                        probRangeClass = probDefectRange[range]; 
    87                         probRangeNotClass = 1.0-probDefectRange[range]; 
    88                     } else { 
    89                         probClass = 1.0-probDefect; 
     102                        probRangeNotClass = 1.0 - probDefectRange[range]; 
     103                    } 
     104                    else { 
     105                        probClass = 1.0 - probDefect; 
    90106                        probNotClass = probDefect; 
    91                         probRangeClass = 1.0-probDefectRange[range]; 
     107                        probRangeClass = 1.0 - probDefectRange[range]; 
    92108                        probRangeNotClass = probDefectRange[range]; 
    93109                    } 
    94                     powerAttributes[i][j] = Math.pow(probRangeClass, 2.0)/(probRangeClass*probClass+probRangeNotClass*probNotClass); 
     110                    powerAttributes[i][j] = Math.pow(probRangeClass, 2.0) / 
     111                        (probRangeClass * probClass + probRangeNotClass * probNotClass); 
    95112                } 
    96113            } 
    97114        } 
    98          
    99         for( int i=0; i<data.numInstances(); i++ ) { 
     115 
     116        for (int i = 0; i < data.numInstances(); i++) { 
    100117            powerEntity[i] = 1.0; 
    101             for (int j=0; j<data.numAttributes() ; j++ ) { 
     118            for (int j = 0; j < data.numAttributes(); j++) { 
    102119                powerEntity[i] *= powerAttributes[i][j]; 
    103120            } 
     
    105122        double[] sortedPower = powerEntity.clone(); 
    106123        Arrays.sort(sortedPower); 
    107         double cutOff = sortedPower[(int) (data.numInstances()*(1-percentage))]; 
     124        double cutOff = sortedPower[(int) (data.numInstances() * (1 - percentage))]; 
    108125 
    109126        final Instances selected = new Instances(data); 
    110127        selected.delete(); 
    111         for (int i=0; i<data.numInstances(); i++) { 
    112             if( powerEntity[i]>=cutOff ) { 
     128        for (int i = 0; i < data.numInstances(); i++) { 
     129            if (powerEntity[i] >= cutOff) { 
    113130                selected.add(data.instance(i)); 
    114131            } 
     
    116133        return selected; 
    117134    } 
    118      
     135 
     136    /** 
     137     * <p> 
     138     * Gets an array with the ranges from the data for a given attribute 
     139     * </p> 
     140     * 
     141     * @param data 
     142     *            the data 
     143     * @param j 
     144     *            index of the attribute 
     145     * @return the ranges for the attribute 
     146     */ 
    119147    private double[] getRanges(Instances data, int j) { 
    120         double[] values = new double[numRanges+1]; 
    121         for( int k=0; k<numRanges; k++ ) { 
    122             values[k] = data.kthSmallestValue(j, (int) (data.size()*(k+1.0)/numRanges)); 
     148        double[] values = new double[numRanges + 1]; 
     149        for (int k = 0; k < numRanges; k++) { 
     150            values[k] = data.kthSmallestValue(j, (int) (data.size() * (k + 1.0) / numRanges)); 
    123151        } 
    124152        values[numRanges] = data.attributeStats(j).numericStats.max; 
    125153        return values; 
    126154    } 
    127      
     155 
     156    /** 
     157     * <p> 
     158     * Gets the probabilities of a positive prediction for each range for a given attribute 
     159     * </p> 
     160     * 
     161     * @param data 
     162     *            the data 
     163     * @param j 
     164     *            index of the attribute 
     165     * @param ranges 
     166     *            the ranges 
     167     * @return probabilities for each range 
     168     */ 
    128169    private double[] getRangeProbabilities(Instances data, int j, double[] ranges) { 
    129170        double[] probDefectRange = new double[numRanges]; 
    130171        int[] countRange = new int[numRanges]; 
    131172        int[] countDefect = new int[numRanges]; 
    132         for( int i=0; i<data.numInstances() ; i++ ) { 
    133             int range = determineRange(ranges, data.instance(i).value(j));  
     173        for (int i = 0; i < data.numInstances(); i++) { 
     174            int range = determineRange(ranges, data.instance(i).value(j)); 
    134175            countRange[range]++; 
    135             if( data.instance(i).classValue()== 1 ) { 
     176            if (data.instance(i).classValue() == 1) { 
    136177                countDefect[range]++; 
    137178            } 
    138179 
    139180        } 
    140         for( int k=0; k<numRanges; k++ ) { 
     181        for (int k = 0; k < numRanges; k++) { 
    141182            probDefectRange[k] = ((double) countDefect[k]) / countRange[k]; 
    142183        } 
    143184        return probDefectRange; 
    144185    } 
    145      
     186 
     187    /** 
     188     * <p> 
     189     * Determines the range of a give value 
     190     * </p> 
     191     * 
     192     * @param ranges 
     193     *            the possible ranges 
     194     * @param value 
     195     *            the value 
     196     * @return index of the range 
     197     */ 
    146198    private int determineRange(double[] ranges, double value) { 
    147         for( int k=0; k<numRanges; k++ ) { 
    148             if( value<=ranges[k+1] ) { 
     199        for (int k = 0; k < numRanges; k++) { 
     200            if (value <= ranges[k + 1]) { 
    149201                return k; 
    150202            } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/DBSCANFilter.java

    r92 r135  
    9999                    .valid(); clusterIter.advance()) 
    100100                { 
    101                     int internalIndex = clusterIter.internalGetIndex() - testdata.size() - firstInternalIndex; 
     101                    int internalIndex = 
     102                        clusterIter.internalGetIndex() - testdata.size() - firstInternalIndex; 
    102103                    if (internalIndex >= 0) { 
    103104                        // index belongs to a training instance 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/DecisionTreeSelection.java

    r116 r135  
    8484            } 
    8585            REPTree repTree = new REPTree(); 
    86             if( repTree.getNumFolds()>similarityData.size() ) { 
     86            if (repTree.getNumFolds() > similarityData.size()) { 
    8787                repTree.setNumFolds(similarityData.size()); 
    8888            } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/LACE2.java

    r120 r135  
    1212//   See the License for the specific language governing permissions and 
    1313//   limitations under the License. 
    14  
    1514 
    1615package de.ugoe.cs.cpdp.dataselection; 
     
    3938public class LACE2 implements ISetWiseDataselectionStrategy { 
    4039 
     40    /** 
     41     * percentage of data selected by the internal CLIFF. 
     42     */ 
    4143    private double percentage = 0.10; 
    42      
     44 
     45    /* 
     46     * (non-Javadoc) 
     47     *  
     48     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
     49     */ 
    4350    @Override 
    4451    public void setParameter(String parameters) { 
    45         if( parameters!=null && !parameters.isEmpty()) { 
     52        if (parameters != null && !parameters.isEmpty()) { 
    4653            percentage = Double.parseDouble(parameters); 
    4754        } 
    4855    } 
    4956 
     57    /* 
     58     * (non-Javadoc) 
     59     *  
     60     * @see de.ugoe.cs.cpdp.dataselection.ISetWiseDataselectionStrategy#apply(weka.core.Instances, 
     61     * org.apache.commons.collections4.list.SetUniqueList) 
     62     */ 
    5063    @Override 
    5164    public void apply(Instances testdata, SetUniqueList<Instances> traindataSet) { 
    5265        Instances selectedData = new Instances(testdata); 
    5366        selectedData.clear(); 
    54          
     67 
    5568        LinkedList<Instances> traindataCopy = new LinkedList<>(traindataSet); 
    5669        Collections.shuffle(traindataCopy); 
    57          
     70 
    5871        CLIFF cliff = new CLIFF(); 
    5972        cliff.setParameter(Double.toString(percentage)); 
     
    6174        Median median = new Median(); 
    6275        double minDist = Double.MIN_VALUE; 
    63          
    64         for( Instances traindata : traindataCopy ) { 
     76 
     77        for (Instances traindata : traindataCopy) { 
    6578            Instances cliffedData = cliff.applyCLIFF(traindata); 
    66             if( minDist==Double.MIN_VALUE ) { 
     79            if (minDist == Double.MIN_VALUE) { 
    6780                // determine distance for leader-follower algorithm 
    6881                Instances sample; 
    69                 if( traindata.size()>100 ) { 
     82                if (traindata.size() > 100) { 
    7083                    Resample resample = new Resample(); 
    71                     resample.setSampleSizePercent(100.0/traindata.size()*100.0); 
     84                    resample.setSampleSizePercent(100.0 / traindata.size() * 100.0); 
    7285                    resample.setBiasToUniformClass(0.0); 
    7386                    resample.setNoReplacement(true); 
     
    7992                        throw new RuntimeException(e); 
    8093                    } 
    81                 } else { 
     94                } 
     95                else { 
    8296                    sample = new Instances(traindata); 
    8397                } 
    8498                double[] distances = new double[sample.size()]; 
    85                 for( int i=0; i<sample.size(); i++ ) { 
     99                for (int i = 0; i < sample.size(); i++) { 
    86100                    Instance unlikeNeighbor = morph.getNearestUnlikeNeighbor(sample.get(i), sample); 
    87                     distances[i] = MathArrays.distance(WekaUtils.instanceValues(sample.get(i)), WekaUtils.instanceValues(unlikeNeighbor)); 
     101                    distances[i] = MathArrays.distance(WekaUtils.instanceValues(sample.get(i)), 
     102                                                       WekaUtils.instanceValues(unlikeNeighbor)); 
    88103                } 
    89104                minDist = median.evaluate(distances); 
    90105            } 
    91             for( int i=0; i<cliffedData.size(); i++ ) { 
    92                 Instance unlikeNeighbor = morph.getNearestUnlikeNeighbor(cliffedData.get(i), selectedData); 
    93                 if( unlikeNeighbor==null ) { 
     106            for (int i = 0; i < cliffedData.size(); i++) { 
     107                Instance unlikeNeighbor = 
     108                    morph.getNearestUnlikeNeighbor(cliffedData.get(i), selectedData); 
     109                if (unlikeNeighbor == null) { 
    94110                    selectedData.add(cliffedData.get(i)); 
    95                 } else { 
    96                     double distance = MathArrays.distance(WekaUtils.instanceValues(cliffedData.get(i)), WekaUtils.instanceValues(unlikeNeighbor)); 
    97                     if( distance>minDist ) { 
     111                } 
     112                else { 
     113                    double distance = 
     114                        MathArrays.distance(WekaUtils.instanceValues(cliffedData.get(i)), 
     115                                            WekaUtils.instanceValues(unlikeNeighbor)); 
     116                    if (distance > minDist) { 
    98117                        morph.morphInstance(cliffedData.get(i), cliffedData); 
    99118                        selectedData.add(cliffedData.get(i)); 
     
    103122        } 
    104123    } 
    105      
     124 
    106125} 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java

    r117 r135  
    9797        RealMatrix inverseCovariance; 
    9898        try { 
    99             inverseCovariance = 
    100             new LUDecomposition(new Covariance(values).getCovarianceMatrix()).getSolver() 
    101                 .getInverse(); 
    102         } catch(SingularMatrixException e) { 
    103             Console.traceln(Level.WARNING, "could not perform Mahalanobis outlier removal due to singular covariance matrix"); 
     99            inverseCovariance = new LUDecomposition(new Covariance(values).getCovarianceMatrix()) 
     100                .getSolver().getInverse(); 
     101        } 
     102        catch (SingularMatrixException e) { 
     103            Console 
     104                .traceln(Level.WARNING, 
     105                         "could not perform Mahalanobis outlier removal due to singular covariance matrix"); 
    104106            return; 
    105107        } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/NeighborhoodFilter.java

    r86 r135  
    3636    @Override 
    3737    public void setParameter(String parameters) { 
    38         // TODO Auto-generated method stub 
    39  
     38        // dummy, parameters not used 
    4039    } 
    4140 
     
    5655     * </p> 
    5756     * 
    58      * @param testdata test data  
    59      * @param traindata training data 
     57     * @param testdata 
     58     *            test data 
     59     * @param traindata 
     60     *            training data 
    6061     * @return filtered trainind data 
    6162     */ 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/PetersFilter.java

    r86 r135  
    2727 
    2828/** 
    29  * Filter according to F. Peters, T. Menzies, and A. Marcus: Better Cross Company Defect Prediction <br> 
     29 * Filter according to F. Peters, T. Menzies, and A. Marcus: Better Cross Company Defect Prediction 
     30 * <br> 
    3031 * <br> 
    3132 * This filter does not work, the paper has been withdrawn. 
     
    3637public class PetersFilter implements IPointWiseDataselectionStrategy { 
    3738 
    38     /** 
     39    /* 
    3940     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
    4041     */ 
     
    4445    } 
    4546 
    46     /** 
     47    /* 
    4748     * @see de.ugoe.cs.cpdp.dataselection.IPointWiseDataselectionStrategy#apply(weka.core.Instances, 
    48      *      weka.core.Instances) 
     49     * weka.core.Instances) 
    4950     */ 
    5051    @Override 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/PointWiseEMClusterSelection.java

    r86 r135  
    3131 * Use in Config: 
    3232 *  
    33  * Specify number of clusters -N = Num Clusters <pointwiseselector 
    34  * name="PointWiseEMClusterSelection" param="-N 10"/> 
     33 * Specify number of clusters -N = Num Clusters 
     34 * <pointwiseselector name="PointWiseEMClusterSelection" param="-N 10"/> 
    3535 *  
    3636 * Try to determine the number of clusters: -I 10 = max iterations -X 5 = 5 folds for cross 
    37  * evaluation -max = max number of clusters <pointwiseselector name="PointWiseEMClusterSelection" 
    38  * param="-I 10 -X 5 -max 300"/> 
     37 * evaluation -max = max number of clusters 
     38 * <pointwiseselector name="PointWiseEMClusterSelection" param="-I 10 -X 5 -max 300"/> 
    3939 *  
    4040 * Don't forget to add: <preprocessor name="Normalization" param=""/> 
     
    4242public class PointWiseEMClusterSelection implements IPointWiseDataselectionStrategy { 
    4343 
     44    /** 
     45     * paramters passed to the selection 
     46     */ 
    4447    private String[] params; 
    4548 
     49    /* 
     50     * (non-Javadoc) 
     51     *  
     52     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
     53     */ 
    4654    @Override 
    4755    public void setParameter(String parameters) { 
     
    108116            } 
    109117 
    110             Console.traceln(Level.INFO, 
    111                             String.format("our testdata is in: " + selectedCluster.size() + 
    112                                 " different clusters")); 
     118            Console.traceln(Level.INFO, String 
     119                .format("our testdata is in: " + selectedCluster.size() + " different clusters")); 
    113120 
    114121            // 5. get cluster membership of our traindata 
     
    127134            for (int j = 0; j < ctrain.numInstances(); j++) { 
    128135                // get the cluster number from the attributes 
    129                 cnumber = 
    130                     Integer.parseInt(ctrain.get(j).stringValue(ctrain.get(j).numAttributes() - 1) 
    131                         .replace("cluster", "")); 
     136                cnumber = Integer.parseInt(ctrain.get(j) 
     137                    .stringValue(ctrain.get(j).numAttributes() - 1).replace("cluster", "")); 
    132138 
    133139                // Console.traceln(Level.INFO, 
     
    145151            } 
    146152 
    147             Console.traceln(Level.INFO, 
    148                             String.format("that leaves us with: " + selected.numInstances() + 
    149                                 " traindata instances from " + traindata.numInstances())); 
     153            Console.traceln(Level.INFO, String.format("that leaves us with: " + 
     154                selected.numInstances() + " traindata instances from " + traindata.numInstances())); 
    150155        } 
    151156        catch (Exception e) { 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/SeparatabilitySelection.java

    r86 r135  
    8686                    inst.setClassValue(1.0); 
    8787                    sample.add(inst); 
    88                     inst = 
    89                         new DenseInstance( 
    90                                           traindata.instance(rand.nextInt(traindata.numInstances()))); 
     88                    inst = new DenseInstance(traindata 
     89                        .instance(rand.nextInt(traindata.numInstances()))); 
    9190                    inst.setDataset(sample); 
    9291                    inst.setClassValue(0.0); 
     
    101100                } 
    102101                catch (Exception e) { 
    103                     throw new RuntimeException( 
    104                                                "cross-validation during calculation of separatability failed", 
     102                    throw new RuntimeException("cross-validation during calculation of separatability failed", 
    105103                                               e); 
    106104                } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/SetWiseEMClusterSelection.java

    r86 r135  
    7474        } 
    7575        catch (Exception e) { 
    76             throw new RuntimeException( 
    77                                        "error applying setwise EM clustering training data selection", 
     76            throw new RuntimeException("error applying setwise EM clustering training data selection", 
    7877                                       e); 
    7978        } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/SetWiseEMContextSelection.java

    r86 r135  
    4141public class SetWiseEMContextSelection implements ISetWiseDataselectionStrategy { 
    4242 
     43    /** 
     44     * context factors 
     45     */ 
    4346    private String[] project_context_factors; // = new String[]{"TND", "TNC", "TNF", "TLOC"}; 
    4447 
     48    /* 
     49     * (non-Javadoc) 
     50     *  
     51     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
     52     */ 
    4553    @Override 
    4654    public void setParameter(String parameters) { 
     
    103111        } 
    104112        catch (Exception e) { 
    105             throw new RuntimeException( 
    106                                        "error applying setwise EM clustering training data selection", 
     113            throw new RuntimeException("error applying setwise EM clustering training data selection", 
    107114                                       e); 
    108115        } 
    109116    } 
    110117 
     118    /* 
     119     * (non-Javadoc) 
     120     *  
     121     * @see de.ugoe.cs.cpdp.dataselection.ISetWiseDataselectionStrategy#apply(weka.core.Instances, 
     122     * org.apache.commons.collections4.list.SetUniqueList) 
     123     */ 
    111124    @Override 
    112125    public void apply(Instances testdata, SetUniqueList<Instances> traindataSet) { 
     
    131144     * @return 
    132145     */ 
    133     protected Instances getContextFactors(Instances testdata, SetUniqueList<Instances> traindataSet) 
     146    protected Instances getContextFactors(Instances testdata, 
     147                                          SetUniqueList<Instances> traindataSet) 
    134148    { 
    135149        // setup weka Instances for clustering 
     
    190204                remove.add(traindata); 
    191205                // Console.traceln(Level.WARNING, 
    192                 // "rmove attribute "+attribute+" test: "+testdata.firstInstance().value(testdata.attribute(attribute))+" train: "+traindata.firstInstance().value(traindata.attribute(attribute))); 
     206                // "rmove attribute "+attribute+" test: 
     207                // "+testdata.firstInstance().value(testdata.attribute(attribute))+" train: 
     208                // "+traindata.firstInstance().value(traindata.attribute(attribute))); 
    193209            } 
    194210        } 
     
    218234        } 
    219235        catch (Exception e) { 
    220             throw new RuntimeException( 
    221                                        "Unexpected exception during normalization of distributional characteristics.", 
     236            throw new RuntimeException("Unexpected exception during normalization of distributional characteristics.", 
    222237                                       e); 
    223238        } 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/SetWiseKNNSelection.java

    r86 r135  
    7171        int closestIndex = 1; 
    7272        for (int i = 1; i < data.numInstances(); i++) { 
    73             double distance = 
    74                 MathArrays.distance(data.instance(0).toDoubleArray(), data.instance(i) 
    75                     .toDoubleArray()); 
     73            double distance = MathArrays.distance(data.instance(0).toDoubleArray(), 
     74                                                  data.instance(i).toDoubleArray()); 
    7675            if (distance < closestDistance) { 
    7776                closestDistance = distance; 
  • trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/SynonymOutlierRemoval.java

    r86 r135  
    1919/** 
    2020 * <p> 
    21  * Synonym outlier removal after Amasaki et al. (2015).  
     21 * Synonym outlier removal after Amasaki et al. (2015). 
    2222 * </p> 
    2323 *  
     
    2626public class SynonymOutlierRemoval implements IPointWiseDataselectionStrategy { 
    2727 
    28     /* (non-Javadoc) 
     28    /* 
     29     * (non-Javadoc) 
     30     *  
    2931     * @see de.ugoe.cs.cpdp.IParameterizable#setParameter(java.lang.String) 
    3032     */ 
     
    3436    } 
    3537 
    36     /* (non-Javadoc) 
    37      * @see de.ugoe.cs.cpdp.dataselection.IPointWiseDataselectionStrategy#apply(weka.core.Instances, weka.core.Instances) 
     38    /* 
     39     * (non-Javadoc) 
     40     *  
     41     * @see de.ugoe.cs.cpdp.dataselection.IPointWiseDataselectionStrategy#apply(weka.core.Instances, 
     42     * weka.core.Instances) 
    3843     */ 
    3944    @Override 
     
    4853     * </p> 
    4954     * 
    50      * @param traindata data from which the outliers are removed. 
     55     * @param traindata 
     56     *            data from which the outliers are removed. 
    5157     */ 
    5258    public void applySynonymRemoval(Instances traindata) { 
    53         double minDistance[][] = new double[traindata.size()][traindata.numAttributes()-1]; 
    54         double minDistanceAttribute[] = new double[traindata.numAttributes()-1]; 
     59        double minDistance[][] = new double[traindata.size()][traindata.numAttributes() - 1]; 
     60        double minDistanceAttribute[] = new double[traindata.numAttributes() - 1]; 
    5561        double distance; 
    56         for( int j=0; j<minDistanceAttribute.length; j++ ) { 
     62        for (int j = 0; j < minDistanceAttribute.length; j++) { 
    5763            minDistanceAttribute[j] = Double.MAX_VALUE; 
    5864        } 
    59         for (int i1 = traindata.size()-1; i1 < traindata.size(); i1++) { 
    60             int k=0; 
     65        for (int i1 = traindata.size() - 1; i1 < traindata.size(); i1++) { 
     66            int k = 0; 
    6167            for (int j = 0; j < traindata.numAttributes(); j++) { 
    62                 if( j!=traindata.classIndex() ) { 
     68                if (j != traindata.classIndex()) { 
    6369                    minDistance[i1][k] = Double.MAX_VALUE; 
    6470                    for (int i2 = 0; i2 < traindata.size(); i2++) { 
    6571                        if (i1 != i2) { 
    66                             distance = Math.abs(traindata.get(i1).value(j) - traindata.get(i2).value(j)); 
     72                            distance = 
     73                                Math.abs(traindata.get(i1).value(j) - traindata.get(i2).value(j)); 
    6774                            if (distance < minDistance[i1][k]) { 
    6875                                minDistance[i1][k] = distance; 
    6976                            } 
    70                             if( distance < minDistanceAttribute[k] ) { 
     77                            if (distance < minDistanceAttribute[k]) { 
    7178                                minDistanceAttribute[k] = distance; 
    7279                            } 
     
    7784            } 
    7885        } 
    79         for( int i=traindata.size()-1; i>=0; i-- ) { 
     86        for (int i = traindata.size() - 1; i >= 0; i--) { 
    8087            boolean hasClosest = false; 
    81             for( int j=0; !hasClosest && j<traindata.numAttributes(); j++ ) { 
    82                 hasClosest = minDistance[i][j]<=minDistanceAttribute[j]; 
     88            for (int j = 0; !hasClosest && j < traindata.numAttributes(); j++) { 
     89                hasClosest = minDistance[i][j] <= minDistanceAttribute[j]; 
    8390            } 
    84             if( !hasClosest ) { 
     91            if (!hasClosest) { 
    8592                traindata.delete(i); 
    8693            } 
Note: See TracChangeset for help on using the changeset viewer.