summaryrefslogtreecommitdiff
path: root/report/report_content.rb
diff options
context:
space:
mode:
Diffstat (limited to 'report/report_content.rb')
-rwxr-xr-xreport/report_content.rb85
1 files changed, 84 insertions, 1 deletions
diff --git a/report/report_content.rb b/report/report_content.rb
index 3d92b52..80473c5 100755
--- a/report/report_content.rb
+++ b/report/report_content.rb
@@ -61,7 +61,6 @@ class Reports::ReportContent
test_matrix[:num_results].to_s, table, true, true)
end
end
- Reports::ReportStatisticalTest.quit_r
end
def add_predictions( validation_set,
@@ -183,6 +182,39 @@ class Reports::ReportContent
align_last_two_images section_title+" in logarithmic and linear scale (values <= 0 are omitted in logarithmic scale)"
end
+ def add_train_test_plot( validation_set,
+ only_prediction_feature,
+ waiting_task,
+ section_title="Training Test Distribution Plot",
+ section_text=nil,
+ image_title=nil)
+
+ section_plot = @current_section
+ prediction_set = validation_set.collect{ |v| v.get_predictions }
+ @xml_report.add_paragraph(section_plot, section_text) if section_text
+
+ begin
+ plot_png = add_tmp_file("train_test_plot_#{only_prediction_feature}", "png")
+ plot_svg = add_tmp_file("train_test_plot_#{only_prediction_feature}", "svg")
+ omit_count = Reports::PlotFactory.create_train_test_plot( [plot_png[:path], plot_svg[:path]],
+ prediction_set, only_prediction_feature, waiting_task )
+ unless image_title
+ if only_prediction_feature
+ image_title = "Prediction Feature: #{validation_set.validations.first.prediction_feature}"
+ else
+ image_title = "Features Excluding Prediction Feature"
+ end
+ end
+ @xml_report.add_imagefigure(section_plot, image_title, plot_png[:name], "PNG", 100, plot_svg[:name])
+ rescue Exception => ex
+ LOGGER.error("Could not create train test plot: "+ex.message)
+ rm_tmp_file(plot_png[:name]) if plot_png
+ rm_tmp_file(plot_svg[:name]) if plot_svg
+ @xml_report.add_paragraph(section_plot, "could not create train test plot: "+ex.message)
+ end
+
+ end
+
def add_roc_plot( validation_set,
accept_value,
split_set_attribute=nil,
@@ -317,6 +349,57 @@ class Reports::ReportContent
@xml_report.add_imagefigure(section_bar, image_title, plot_png[:name], "PNG", 100, plot_svg[:name])
end
+ def add_box_plot(validation_set,
+ title_attribute,
+ value_attributes,
+ section_title="Boxplots",
+ section_text=nil)
+
+ section_box = @xml_report.add_section(@current_section, section_title)
+ @xml_report.add_paragraph(section_box, section_text) if section_text
+
+ plot_png = nil; plot_svg = nil
+ begin
+ plot_input = []
+ value_attributes.each do |a|
+ accept = validation_set.get_accept_values_for_attr(a)
+ if accept and accept.size>0
+ accept.each do |c|
+ title = a.to_s.gsub("_","-") + ( (accept.size==1 || c==nil) ? "" : "("+c.to_s+")" )
+ plot_input << [a,c,title]
+ end
+ else
+ plot_input << [a,nil,a.to_s.gsub("_","-")]
+ end
+ end
+
+ i = 0
+ figs = []
+ plot_input.each do |attrib,class_value,image_title|
+ plot_png = add_tmp_file("box_plot#{i}", "png")
+ plot_svg = add_tmp_file("box_plot#{i}", "svg")
+ Reports::PlotFactory.create_box_plot([plot_png[:path], plot_svg[:path]],
+ validation_set, title_attribute, attrib, class_value )
+ figs << @xml_report.imagefigure(image_title, plot_png[:name],
+ "PNG", 50, plot_svg[:name])
+ plot_png = nil; plot_svg = nil
+ i += 1
+ end
+
+ i = 1
+ figs.each_slice(4) do |f|
+ @xml_report.add_imagefigures_in_row(section_box,f,"Boxplots #{i}")
+ i+=1
+ end
+ rescue Exception => ex
+ msg = "WARNING could not create box plot: "+ex.message
+ LOGGER.error(msg)
+ rm_tmp_file(plot_png[:name]) if plot_png
+ rm_tmp_file(plot_svg[:name]) if plot_svg
+ @xml_report.add_paragraph(section_box, msg)
+ end
+ end
+
private
def add_tmp_file(name, extension)
tmp_file_name = name.to_s+@tmp_file_count.to_s+"."+extension.to_s