www.pudn.com > bayes.rar > xval.sh


#!/bin/sh

data=$1
class=$2
folds=${3:-3}

tsplit -xc$class $data.tab -t$folds 2>/dev/null

rm -rf xval.tmp
for (( i = 0; i < folds; i++ )); do
  list=""
  for (( k = 0; k < folds; k++ )); do
    if (( k != i )); then list="$list $k.tab"; fi
  done
  tmerge $list - 2>/dev/null | \
    bci $data.dom - - 2>/dev/null | \
    bcx - $i.tab 2>&1 | \
    gawk '($2 ~ "error[(]s[)]") {
      printf("%s %s\n", $1, substr($3, 2, length($3)-3)) }' \
    >> xval.tmp
done

cnt=`wc -l $data.tab | gawk '{ print $1 }'`
gawk -v sum=$(( cnt -1 )) '{ cnt += $1; }
END { printf("%d error(s) (%.2f%%)\n", cnt, cnt/sum *100) }' xval.tmp
rm -rf $list $(( folds -1 )).tab xval.tmp