summaryrefslogtreecommitdiff
path: root/views/model_details.haml
blob: 224de137d3df08fb2fea571631056ea16ca0eb43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
%html
  %head
  %body 
    %b Model:
    %br
    Source:
    %a{:href => model.source}
      = model.source
    %br
    - model.classification? ? type = "Classification" : type = "Regression"
    = "Type:\t"
    = type
    %br
    - training_dataset = OpenTox::Dataset.find model.training_dataset.id
    = "Training compounds:\t"
    = training_dataset.compounds.size
    %br
    %p
      - if type == "Classification"
        %b Independent crossvalidations:
      - else
        %b Independent crossvalidations (-log10 transformed):
      - model.crossvalidations.each do |crossvalidation|
        %br
        = "Num folds:\t"
        = crossvalidation.folds
        %br
        = "Num instances:\t"
        = crossvalidation.nr_instances
        %br
        = "Num unpredicted"
        = crossvalidation.nr_unpredicted
        - if model.classification?
          %br
          = "Accuracy:\t"
          = crossvalidation.accuracy.round(3) if crossvalidation.accuracy
          %br
          - if crossvalidation.true_rate
            = "True positive rate:\t"
            = crossvalidation.true_rate["active"].round(3) if crossvalidation.true_rate["active"]
            %br
            = "True negative rate:\t"
            = crossvalidation.true_rate["inactive"].round(3) if crossvalidation.true_rate["inactive"] 
            %br
          - if crossvalidation.predictivity
            = "Positive predictive value:\t"
            = crossvalidation.predictivity["active"].round(3) if crossvalidation.predictivity["active"]
            %br
            = "Negative predictive value:\t"
            = crossvalidation.predictivity["inactive"].round(3) if crossvalidation.predictivity["inactive"]
            %br
  
          %br
          %b Confusion Matrix:
          %table{:class => "table table-condensed table-borderless", :style=>"width:20%;"}
            %tbody
              %tr
                %td
                %td
                %td
                  %b actual
                %td
                %td
              %tr
                %td
                %td
                %td active
                %td inactive
                -#%td total
              %tr
                %td
                  %b predicted
                %td active
                %td
                  =crossvalidation.confusion_matrix[0][0]
                %td
                  =crossvalidation.confusion_matrix[0][1]
                -#%td 
                  =crossvalidation.confusion_matrix[0][0]+crossvalidation.confusion_matrix[0][1]
              %tr
                %td
                %td inactive
                %td
                  =crossvalidation.confusion_matrix[1][0]
                %td
                  =crossvalidation.confusion_matrix[1][1]
                -#%td 
                  =crossvalidation.confusion_matrix[1][0]+crossvalidation.confusion_matrix[1][1]
              -#%tr
                %td
                %td total
                %td
                  =crossvalidation.confusion_matrix[0][0]+crossvalidation.confusion_matrix[1][0]
                %td
                  =crossvalidation.confusion_matrix[0][1]+crossvalidation.confusion_matrix[1][1]
                %td
                  -#= "Confusion Matrix:\t"
                  -#= crossvalidation.confusion_matrix

            /= "Confidence plot:"
            /%p.plot
            /  %img{:src=>"confp#{crossvalidation.id}.svg"}
          - if model.regression?
            %br
            = "Root mean squared error:\t"
            = crossvalidation.rmse.round(3) if crossvalidation.rmse
            %br
            = "Mean absolute error:\t"
            = crossvalidation.mae.round(3) if crossvalidation.mae
            %br
            = "R square:\t"
            = crossvalidation.r_squared.round(3) if crossvalidation.r_squared
            %br
            /= "Confidence plot:"
            /%p.plot
            /  %img{:src=>"/confp#{crossvalidation.id}.svg"}
            /%br
            /= "Correlation plot"
            /%p.plot
            /  %img{:src=>"/corrp#{crossvalidation.id}.svg"}