Ignore:
Timestamp:
07/18/16 12:26:03 (8 years ago)
Author:
sherbold
Message:
  • code documentation and formatting
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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} 
Note: See TracChangeset for help on using the changeset viewer.