summaryrefslogtreecommitdiff
path: root/nch/08_grid_search.rb
blob: c5ae2a30a352170f8bd14ea569b674425236c4eb (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
#!/usr/bin/env ruby

require "./config.rb"

require "bundler"
Bundler.require

DATA.each do |d|
  puts ""
  puts d

  dataset_uri = dataset_uri(d)
  prediction_feature = prediction_feature(d)

  results = []
#  skip_ratio = 0.8
#  random_seed = 3
  {
    all_feature_dataset_uri(d)=>"all-pc-features",
#    new_feature_dataset_uri(d)=>"new-pc-features",
#    ob_feature_dataset_uri(d)=>"ob-pc-features",
  }.each do |feature_dataset_uri,f_desc|
    [ 0.65 ].each do |min_sim| # [0.2,0.4,0.6,0.8]
      [ 0.0 ].each do |min_train| #[0.0,0.1,0.2]

        puts "\nfeatures #{f_desc}"
        puts "min_sim #{min_sim}"
        puts "min_train #{min_train}"
        
        params = { :dataset_uri => dataset_uri,
          :algorithm_uri => File.join($algorithm[:uri],"lazar"),
          :algorithm_params => "feature_dataset_uri=#{feature_dataset_uri};min_sim=#{min_sim};min_train_performance=#{min_train}",
          :prediction_feature => prediction_feature,
          :loo => "uniq", }
        if defined?(skip_ratio)
          params[:skip_ratio] = skip_ratio
          params[:random_seed] = random_seed
        end
        cv_uri = wait_for_task(OpenTox::RestClientWrapper.post("http://localhost:8087/validation/crossvalidation/loo",params))
        cv = OpenTox::Crossvalidation.find(cv_uri)
        puts "Cross-Validation: "+cv.uri
        r_square = cv.statistics.metadata[RDF::OT.regressionStatistics.to_s][RDF::OT.rSquare.to_s]
        unpredicted = cv.statistics.metadata[RDF::OT.numUnpredicted.to_s]
        puts "r^2 #{r_square}"
        #      r = OpenTox::CrossvalidationReport.create(cv.uri)
        #      puts "Report: "+r.uri
        
        results << {:min_sim => min_sim, :min_train=>min_train, :cv => cv_uri, :r_square => r_square, :unpredicted => unpredicted, :features => f_desc}#, :report => r.uri}
        puts results.to_yaml
      end
    end
  end
end