summaryrefslogtreecommitdiff
path: root/views/model_details.haml
blob: 34f4de8dfaaae6f55e39e8e74e5cb727b3a49b1b (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
122
123
%html
  %head
  %body 
    %b Model:
    %br
    Source:
    %a{:href=>model.source, :target=>"external"}
      = 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
    
    %p
    - if type == "Classification"
      %b Independent crossvalidations:
    - else
      %b Independent crossvalidations (-log10 transformed):
    %div.row{:id=>"validations#{model.id}", :style=>"background-color:#f5f5f5;"}
      - model.crossvalidations.each do |crossvalidation|
        %span
          - cv = OpenTox::CrossValidation.find crossvalidation.id
          = "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"]
    
            %p
            %b Confusion Matrix:
            %table{: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
            %br
           /= "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"}
    
    %br