%div.card.bg-light %div.card-body %h6.card-title Model: Source: %a{:href=>model.source, :rel=>"external"} = model.source %br - model.classification? ? type = "Classification" : type = "Regression" = "Type:\t" = type %br = "Training compounds:\t" = data_entries.count/3 %br = "Training dataset:\t" %a{:href=>"#{to("/predict/dataset/#{training_dataset.name}")}"} = training_dataset.name %div.card.bg-light %div.card-body %h6.card-title Algorithms: %p.card-text Similarity: %a.card-link{:href=> "http://www.rubydoc.info/gems/lazar/OpenTox%2F#{model.model.algorithms["similarity"]["method"].sub("::", "%2F")}", :rel=>"external"} = model.model.algorithms["similarity"]["method"] = ", min: #{model.model.algorithms["similarity"]["min"]}" %br Prediction: - if model.model.algorithms["prediction"]["method"] !~ /Caret/ %a.card-link{:href=>"http://www.rubydoc.info/gems/lazar/OpenTox%2F#{model.model.algorithms["prediction"]["method"].sub("::","%2f")}", :rel=>"external"} = model.model.algorithms["prediction"]["method"] - else %a.card-link{:href=>"http://www.rubydoc.info/gems/lazar/OpenTox/Algorithm/Caret", :rel=>"external"} = model.model.algorithms["prediction"]["method"] %br Descriptors: = model.model.algorithms["descriptors"]["method"]+"," = model.model.algorithms["descriptors"]["type"] %div.card.bg-light %div.card-body - if type == "Classification" %h6.card-title #{crossvalidations.size} independent 10-fold crossvalidations: - else %h6.card-title #{crossvalidations.size} independent 10-fold crossvalidations (-log10 transformed): - crossvalidations.each_with_index do |cv,idx| %p.card-text - if model.classification? / accuracy, confusion matrixes - av = cv.accept_values - keys = cv.accuracy.collect{|key, value| key} - acc = cv.accuracy.collect{|key, value| value.signif(3)} - tpr = cv.true_rate.collect{|key, hash| hash[av[0]].signif(3)} - fpr = cv.true_rate.collect{|key, hash| hash[av[1]].signif(3)} - pp = cv.predictivity.collect{|key, hash| hash[av[0]].signif(3)} - np = cv.predictivity.collect{|key, hash| hash[av[1]].signif(3)} %table.table.table-borderless.table-responsive %tr %td.text-center = "Nr.#{idx+1}" %td Accuracy %td %a{:href=>"https://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel=>"external"} True #{av[0] =~ /^non/ ? "negative" : "positive"} rate %td %a{:href=>"https://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel=>"external"} True #{av[1] =~ /^non/ ? "negative" : "positive"} rate %td #{av[0] =~ /^non/ ? "Negative" : "Positive"} predictiv value %td #{av[1] =~ /^non/ ? "Negative" : "Positive"} predictiv value - keys.each_with_index do |key,idx| %tr / keys %td.fit.text-right.pr-0= key.gsub("_", " ") / acc,accuray value: %td= acc[idx] / tpr,true positive rate %td= tpr[idx] / fpr,false positive rate %td= fpr[idx] / pp,positive predictions %td= pp[idx] / np,negative predictions %td= np[idx] %div.row %button.btn.btn-outline-info.mx-auto{:type=>"button", :data=>{:toggle=>"collapse", :target=>"#matrix#{idx}"}, :aria=>{:expanded=>"false", :controls=>"matrix#{idx}"}, :style=>"font-size:small;"} Confusion matrix: %div.collapse{:id=>"matrix#{idx}"} %table.table.table-borderless.table-responsive %tr %td.fit.text-center all %td.fit.text-center confidence high %td.fit.text-center confidence low %tr / confusion matrix - keys.each do |key| - matrix = cv.confusion_matrix[key] %td.fit.text-right %table.table-sm %tr %td %td %td %h6 actual %td %tr %td %td %td active %td inactive %tr %td %h6 predicted %td active %td = matrix[0][0] %td = matrix[0][1] %tr %td %td inactive %td = matrix[1][0] %td = matrix[1][1] / regression - if model.regression? / rmse, mae, r_squared, pred nr, within intv, out intv - keys = cv.rmse.collect{|key, value| key} - rmse = cv.rmse.collect{|key, value| value.signif(3)} - mae = cv.mae.collect{|key, value| value.signif(3)} - rsq = cv.r_squared.collect{|key, value| value.signif(3)} - nrp = cv.nr_predictions.collect{|key,value| value} - wpi = cv.within_prediction_interval.collect{|key,value| value} - opi = cv.out_of_prediction_interval.collect{|key,value| value} %table.table.table-borderless.table-responsive %tr %td.text-center = "Nr.#{idx+1}" %td %a{:href=>"https://en.wikipedia.org/wiki/Root-mean-square_deviation", :rel=>"external"} RMSE %td %a{:href=>"https://en.wikipedia.org/wiki/Mean_absolute_error", :rel=>"external"} MAE %td %a{:href=>"https://en.wikipedia.org/wiki/Coefficient_of_determination", :rel=>"external"}= "R"+"2" %td Number of predictions %td Within prediction interval %td Out of prediction interval - keys.each_with_index do |key,idx| %tr / keys %td.fit.text-right.pr-0= key.gsub("_", " ") / rsme: %td= rmse[idx] / mae: %td= mae[idx] / r_squared: %td= rsq[idx] / Predictions number: %td= nrp[idx] / Within prediction interval: %td= wpi[idx] / Out of prediction interval: %td= opi[idx] - unless idx == crossvalidations.size-1 %hr %div.card.bg-light %div.card-body %h6.card-title QMRF: %a.btn.btn-outline-info{:href=>"#{to("/predict/report/#{model.id}")}", :id=>"report#{model.id}", :style=>"font-size:small;"} %span.fa.fa-download XML %br