diff options
author | Martin Gütlein <martin.guetlein@gmail.com> | 2010-04-19 14:22:33 +0200 |
---|---|---|
committer | Martin Gütlein <martin.guetlein@gmail.com> | 2010-04-19 14:22:33 +0200 |
commit | 0e017bd29cd27bc5f4588ed8d4b50f6706f3696b (patch) | |
tree | 84645be3ce66a2999384e9f25bb659a42d7def9d /report/xml_report_util.rb | |
parent | a35e4d1540b74d6687529b43c1c6e5b85deb680e (diff) |
added nightly report
Diffstat (limited to 'report/xml_report_util.rb')
-rw-r--r-- | report/xml_report_util.rb | 127 |
1 files changed, 64 insertions, 63 deletions
diff --git a/report/xml_report_util.rb b/report/xml_report_util.rb index c584ac9..fcb7d96 100644 --- a/report/xml_report_util.rb +++ b/report/xml_report_util.rb @@ -3,77 +3,78 @@ # # Utilities for XMLReport # -module Reports::XMLReportUtil - include REXML - - # creates a confusion matrix as array (to be used as input for Reports::XMLReport::add_table) - # input is confusion matrix as returned by Lib::Predictions.confusion_matrix - # - # call-seq: - # create_confusion_matrix( confusion_matrix ) => array - # - def self.create_confusion_matrix( confusion_matrix ) +module Reports + class XMLReportUtil + include REXML - raise "confusion matrix is null" unless confusion_matrix - num_classes = Math.sqrt(confusion_matrix.size) - class_values = [] - confusion_matrix.each{ |key_map,value| class_values.push(key_map[:confusion_matrix_actual]) if class_values.index(key_map[:confusion_matrix_actual])==nil } - raise "confusion matrix invalid "+confusion_matrix.inspect unless num_classes.to_i == num_classes and class_values.size == num_classes - - sum_predicted = {} - sum_actual = {} - class_values.each do |class_value| - sum_pred = 0 - sum_act = 0 - confusion_matrix.each do |key_map,value| - sum_pred += value if key_map[:confusion_matrix_predicted]==class_value - sum_act += value if key_map[:confusion_matrix_actual]==class_value + # creates a confusion matrix as array (to be used as input for Reports::XMLReport::add_table) + # input is confusion matrix as returned by Lib::Predictions.confusion_matrix + # + # call-seq: + # create_confusion_matrix( confusion_matrix ) => array + # + def self.create_confusion_matrix( confusion_matrix ) + + raise "confusion matrix is null" unless confusion_matrix + num_classes = Math.sqrt(confusion_matrix.size) + class_values = [] + confusion_matrix.each{ |key_map,value| class_values.push(key_map[:confusion_matrix_actual]) if class_values.index(key_map[:confusion_matrix_actual])==nil } + raise "confusion matrix invalid "+confusion_matrix.inspect unless num_classes.to_i == num_classes and class_values.size == num_classes + + sum_predicted = {} + sum_actual = {} + class_values.each do |class_value| + sum_pred = 0 + sum_act = 0 + confusion_matrix.each do |key_map,value| + sum_pred += value if key_map[:confusion_matrix_predicted]==class_value + sum_act += value if key_map[:confusion_matrix_actual]==class_value + end + sum_predicted[class_value] = sum_pred + sum_actual[class_value] = sum_act end - sum_predicted[class_value] = sum_pred - sum_actual[class_value] = sum_act - end - - confusion = [] - confusion.push( [ "", "", "actual" ] + [""] * num_classes ) - confusion.push( [ "", "" ] + class_values + [ "total"]) - - class_values.each do |predicted| - row = [ (confusion.size==2 ? "predicted" : ""), predicted ] + + confusion = [] + confusion.push( [ "", "", "actual" ] + [""] * num_classes ) + confusion.push( [ "", "" ] + class_values + [ "total"]) + + class_values.each do |predicted| + row = [ (confusion.size==2 ? "predicted" : ""), predicted ] + class_values.each do |actual| + row.push( confusion_matrix[{:confusion_matrix_actual => actual, :confusion_matrix_predicted => predicted}].to_nice_s ) + end + row.push( sum_predicted[predicted].to_nice_s ) + confusion.push( row ) + end + last_row = [ "", "total" ] class_values.each do |actual| - row.push( confusion_matrix[{:confusion_matrix_actual => actual, :confusion_matrix_predicted => predicted}].to_nice_s ) + last_row.push( sum_actual[actual].to_nice_s ) end - row.push( sum_predicted[predicted].to_nice_s ) - confusion.push( row ) + confusion.push( last_row ) + + return confusion end - last_row = [ "", "total" ] - class_values.each do |actual| - last_row.push( sum_actual[actual].to_nice_s ) + + def self.text_element(name, text) + node = Element.new(name) + node.text = text + return node end - confusion.push( last_row ) - return confusion - end - - def self.text_element(name, text) - node = Element.new(name) - node.text = text - return node - end - - def self.url_element(url, description=url ) - ulink = Element.new("ulink") - ulink.add_attributes({"url" => url}) - ulink.text = description - return ulink + def self.url_element(url, description=url ) + ulink = Element.new("ulink") + ulink.add_attributes({"url" => url}) + ulink.text = description + return ulink + end + + def self.attribute_element(name, attributes) + node = Element.new(name) + node.add_attributes(attributes) + return node + end + end - - def self.attribute_element(name, attributes) - node = Element.new(name) - node.add_attributes(attributes) - return node - end - end - |