#!/usr/bin/env ruby require 'csv' require 'yaml' results = {} ARGV.each do |f| csv = CSV.read(f,headers: false,:col_sep => ",") tp = csv[0][0].to_f fp = csv[0][1].to_f fn = csv[1][0].to_f tn = csv[1][1].to_f result = { :tp => tp.to_i, :fp => fp.to_i, :tn => tn.to_i, :fn => fn.to_i, :n => (tp+fp+tn+fn).to_i, :acc => ((tp+tn)/(tp+fp+tn+fn)).round(2), :tpr => (tp/(tp+fn)).round(2), :fpr => (fp/(fp+tn)).round(2), :tnr => (tn/(tn+fp)).round(2), :ppv => (tp/(tp+fp)).round(2), :npv => (tn/(tn+fn)).round(2), :acc_perc => (100*(tp+tn)/(tp+fp+tn+fn)).round(0), :tpr_perc => (100*tp/(tp+fn)).round(0), :tnr_perc => (100*tn/(tn+fp)).round(0), :ppv_perc => (100*tp/(tp+fp)).round(0), :npv_perc => (100*tn/(tn+fn)).round(0), } results[f.sub("crossvalidations/confusion-matrices/","").sub(".csv","").gsub("/","_").gsub("-","_")] = result end results = {:cv => results} puts results.to_yaml