summaryrefslogtreecommitdiff
path: root/nch/09_eval_grid.rb
blob: 69bc31ddfd176ecce4d6ecea99cea8736106da47 (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
#!/usr/bin/env ruby

require "./config.rb"

require "bundler"
Bundler.require

res = YAML.load("---
- :min_sim: 0.0
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/54
  :r_square: 0.45370176424121433
  :unpredicted: '0'
- :min_sim: 0.1
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/55
  :r_square: 0.4595956327160562
  :unpredicted: '0'
- :min_sim: 0.2
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/56
  :r_square: 0.4277448070809924
  :unpredicted: '0'
- :min_sim: 0.3
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/57
  :r_square: 0.44307217405529253
  :unpredicted: '0'
- :min_sim: 0.4
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/58
  :r_square: 0.4536563787494641
  :unpredicted: '0'
- :min_sim: 0.5
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/59
  :r_square: 0.4461298986550688
  :unpredicted: '0'
- :min_sim: 0.6
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/60
  :r_square: 0.4720263367371236
  :unpredicted: '1'
- :min_sim: 0.7
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/61
  :r_square: 0.5057497593073133
  :unpredicted: '15'
- :min_sim: 0.8
  :min_train: 0.0
  :cv: http://localhost:8087/validation/crossvalidation/62
  :r_square: 0.5505636328364947
  :unpredicted: '65'
")

all=182

min_train = [nil,0.1,0.2,0.3,0.4,0.5]

s = [ "sim\\train" ]
min_train.each do |m|
  s << (m==nil ? 0.0 : m).to_s
end
out = [s]

res.each do |r|
  s = [ r[:min_sim].to_s ]
  stats = OpenTox::Crossvalidation.find(r[:cv]).statistics
  min_train.each do |m|
    data = (m==nil ? stats.metadata : stats.filter(m))
    v =  sprintf("%.3f",data[RDF::OT.regressionStatistics.to_s][RDF::OT.rSquare.to_s])
    v << "("
    v << sprintf("%2d",(all - (data[RDF::OT.numInstances.to_s].to_i-data[RDF::OT.numUnpredicted.to_s].to_i)))
    v << ")"
    s << v
  end
  out << s
end


def print_2d_array(a, cs=10)
  report = []   
  report << a.enum_for(:each_with_index).map { |ia, i|
    ia.map{|e| "%#{cs}s" % e}.join(" | ") }
  puts report.join("\n")
end

print_2d_array out