#! /bin/bash # Variables MyRoot="../../trunk/" RawData=$MyRoot"data/coc81.csv" DefaultFile="default" ProjectFile="project" NumberOfExperts="4" TestSizeOfExperts="0.33" Iterations="10" Seed=$RANDOM Data="/tmp/$USER/converted_data.tmp" ExpertFile="/tmp/$USER/experts.tmp" MergedFile="/tmp/$USER/merged_results.tmp" MergedNumerics="/tmp/$USER/merged_numerics.tmp" EstimatesFile="/tmp/$USER/estimates.tmp" TmpFile1="/tmp/$USER/1.tmp" TmpFile2="/tmp/$USER/2.tmp" echo "#VARIABLES" echo "# Experts: "$NumberOfExperts echo "# Test Size of Experts: "$TestSizeOfExperts echo "# Iterations For Each Expert: "$Iterations echo "# Seed: "$Seed # Create tmp directory if necessary if [ ! -d /tmp/$USER ] then mkdir "/tmp/$USER" fi echo "#RAW TRAINING DATA - BEGIN. FILE LOCATED AT "$RawData cat $RawData echo "#RAW TRAINING DATA - END" echo "" echo "#CONVERTING TRAINING DATA..." gawk -f $MyRoot"baker_lc/convertcsv.awk" Method="COC81" Style="precise" $RawData > $Data echo "#CONVERTED TRAINING DATA - BEGIN. FILE LOCATED AT "$Data cat $Data echo "#CONVERTED TRAINING DATA - END" echo "" echo "#GENERATING EXPERTS USING SEED="$Seed" AND SAVING TO "$ExpertFile { # Print attribute header - IMPORTANT - This is only for COC81 attributes and would need updated for COCII head -1 $RawData | gawk -f "header81.awk" ./nov9/cocomostExperts $Data $Seed $NumberOfExperts $TestSizeOfExperts } | tee $ExpertFile echo "" #Combine the project data and default data echo "#MERGING DEFAULT AND PROJECT DATA FOR NEW ESTIMATE, SAVING TO "$MergedFile ./merge $MergedFile $DefaultFile $ProjectFile echo "" echo "#CONVERTING THE MERGED RESULTS TO NUMERIC VALUES, SAVING TO "$MergedNumerics gawk -f resultsToCocNumerics.awk Method="COC81" $MergedFile | tee $MergedNumerics echo "" echo "#VALIDATING MERGED RESULTS" Result=$(gawk 'BEGIN{FS=",";Result=1;} { for (i=2;i<=NF;i++) { if ( $i !~ /^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)([eE][+-]?[0-9]+)?$/ ) {Result=0;} } }END{print Result}' $MergedNumerics) if ((Result==0)) then echo "#ERROR: NAN IN "$MergedNumerics echo "#MOST LIKELY THIS IS BECAUSE THERE IS NO COC81 NUMERIC FOR THE VALUE" exit else echo "#MERGED RESULTS OK" echo "" fi echo "#MAKING SURE THE ORDER OF ATTRIBUTES MATCHES THE TRAINING DATA" gawk -F, 'NR==1{print "ksloc";for(i=1;i<=NF;i++){print $i;}}' $ExpertFile > $TmpFile1 gawk -F, '{print $1}' $MergedNumerics > $TmpFile2 Result=$(diff $TmpFile1 $TmpFile2) if [ -n "$Result" ] then echo "ERROR - ATTRIBUTE ORDERING DOESN'T MATCH" echo "DIFF RESULTS: "$Result exit else echo "#ATTRIBUTE ORDERING OK" echo "" fi NumberOfAttributes=$(gawk 'END{print NR}' $MergedNumerics) echo "#GENERATING "$Iterations" ESTIMATES FOR EACH OF "$NumberOfExperts" EXPERTS" echo "#ALSO SAVING THE ESTIMATES TO "$EstimatesFile ./triangular_estimates $ExpertFile $NumberOfExperts $MergedNumerics $NumberOfAttributes $Iterations $Seed