#!/bin/bash DESTDIR=${DESTDIR=""} MyHome=${MyHome=${DESTDIR}${HOME}} # /* vim: set filetype=sh : */ -*- sh -*- # Q0: where will the output be stored Safe=${Safe=${MyHome}/var/weka} # Q1: where is your data? Data=${Data=${MyHome}/var/data/discrete} # Q2: what data sets will we run? # A2: only those with binary discrete classes; i.e. (27 datasets) Datums=${Datums="a2b/agaricus-lepiota a2b/anneal a2b/audiology a2b/auto-mpg a2b/breast-cancer a2b/breast-cancer-wisconsin c2d/credit-a c2d/diabetes e2i/ecoli e2i/flag e2i/hayes-roth e2i/heart-c e2i/heart-h e2i/hepatitis e2i/imports-85 e2i/iris j2p/kr-vs-kp j2p/letter j2p/mushroom q2s/segment q2s/sick q2s/splice q2s/soybean t2z/vowel t2z/wine t2z/wdbc t2z/waveform-5000"} # A2': just a couple #Datums=" c2d/diabetes a2b/breast-cancer q2s/sonar t2z/vote " # Q3: what learners will you try? Learners=${Learners="j48 bayes nbk nbcd"} jAode() { wttp $1 $2 $wAode | gotwant ; } j48() { wttp $1 $2 $wJ48 | gotwant ; } bayes() { wttp $1 $2 $wBayes | gotwant ; } nbk() { wttp $1 $2 $wNbk | gotwant ; } oneR() { wttp $1 $2 $wOneR | gotwant ; } nbcd() { nbcdtree Mode=1 $1 Mode=2 $2 | gotwant; } [ -f "$Functions" ] && . $Functions # Q4 : what pre-processors will you use Preps=${Preps="cat tbin fayyadIrani"} disctree() { dtree2 Pass=1 $1 Pass=2 $1; } tbin() { tenbins Pass=1 $1 Pass=2 $1 Pass=3 $1; } # Q5: how many repeats? #Repeats=${Repeats=1} Repeats=${Repeats=7} # Q6: how many bins? #Bins=${Bins=3} Bins=${Bins=7} # All right then. Lets go! mkdir -p $Safe # ensure safe place exists Tmp=`mktemp -d` # make a sandbox where only you will play trap "rm -rf $Tmp" 0 1 2 3 15 # leave nothing behind when you quit cd $Tmp # go to the sandbox main() { set -x for datum in $Datums do echo "#data,learner,prep,goal,train,test,repeats,bin,accuracy,pd,pf,precision" for prep in $Preps do $prep ${Data}/${datum}.arff > data.arff for((repeats=1;repeats<=$Repeats;repeats++)) do one=`nthclass Want=1 data.arff` # negative = class 1 two=`nthclass Want=2 data.arff` # positive = class 2 seed=$RANDOM for((bin=1;bin<=${Bins};bin++)) do somearff Bin=$bin Bins=$Bins Seed=$seed data.arff n1=`instances train.arff` n2=`instances test.arff` for learn in $Learners do b4="$datum,$learn,$prep,$two,$n1,$n2,$repeats,$bin"; $learn train.arff test.arff | abcd Prefix="${b4}" False="${one}" True="${two}" done; done; done; done; done } Log=$$ (main | tee $Safe/xval.$Log ) 2> $Safe/xval.err.$Log echo $Safe/xval.$Log