Class: OpenTox::Validation::TrainTest

Inherits:
Validation show all
Defined in:
lib/train-test-validation.rb

Overview

Training test set validation

Direct Known Subclasses

ClassificationTrainTest, RegressionTrainTest

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Validation

#model

Class Method Details

.create(model, training_set, test_set) ⇒ OpenTox::Validation::TrainTest

Create a training test set validation

Parameters:

Returns:



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/train-test-validation.rb', line 16

def self.create model, training_set, test_set
  
  validation_model = model.class.create prediction_feature: model.prediction_feature, training_dataset: training_set, algorithms: model.algorithms
  validation_model.save
  predictions = validation_model.predict test_set.substances
  predictions.each do |cid,prediction|
    prediction[:measurements] = test_set.values(cid, prediction[:prediction_feature_id]) if prediction[:value]
  end
  predictions.select!{|cid,p| p[:value] and p[:measurements]}
  # remove neighbors to avoid mongos file size limit error on large datasets
  predictions.each{|cid,p| p.delete(:neighbors)} #if model.training_dataset.name.match(/mutagenicity/i)
  validation = self.new(
    :model_id => validation_model.id,
    :test_dataset_id => test_set.id,
    :predictions => predictions
  )
  validation.save
  validation
end

Instance Method Details

#test_datasetOpenTox::Dataset

Get test dataset

Returns:



38
39
40
# File 'lib/train-test-validation.rb', line 38

def test_dataset
  Dataset.find test_dataset_id
end

#training_datasetOpenTox::Dataset

Get training dataset

Returns:



44
45
46
# File 'lib/train-test-validation.rb', line 44

def training_dataset
  Dataset.find training_dataset_id
end