Class: OpenTox::Model::Prediction

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Timestamps, OpenTox
Defined in:
lib/model.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_csv_file(file) ⇒ Object



212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# File 'lib/model.rb', line 212

def self.from_csv_file file
   = file.sub(/csv$/,"json")
  bad_request_error "No metadata file #{}" unless File.exist? 
  prediction_model = self.new JSON.parse(File.read())
  training_dataset = Dataset.from_csv_file file
  model = nil
  if training_dataset.features.first.nominal?
    model = LazarClassification.create training_dataset
  elsif training_dataset.features.first.numeric?
    model = LazarRegression.create training_dataset
  end
  prediction_model[:model_id] = model.id
  prediction_model[:repeated_crossvalidation_id] = RepeatedCrossValidation.create(model).id
  prediction_model.save
  prediction_model
end

Instance Method Details

#classification?Boolean

Returns:

  • (Boolean)


208
209
210
# File 'lib/model.rb', line 208

def classification?
  training_dataset.features.first.nominal?
end

#crossvalidationsObject



200
201
202
# File 'lib/model.rb', line 200

def crossvalidations
  repeated_crossvalidation.crossvalidations
end

#modelObject



192
193
194
# File 'lib/model.rb', line 192

def model
  Lazar.find model_id
end

#predict(object) ⇒ Object



184
185
186
# File 'lib/model.rb', line 184

def predict object
  Lazar.find(model_id).predict object
end

#regression?Boolean

Returns:

  • (Boolean)


204
205
206
# File 'lib/model.rb', line 204

def regression?
  training_dataset.features.first.numeric?
end

#repeated_crossvalidationObject



196
197
198
# File 'lib/model.rb', line 196

def repeated_crossvalidation
  RepeatedCrossValidation.find repeated_crossvalidation_id
end

#training_datasetObject



188
189
190
# File 'lib/model.rb', line 188

def training_dataset
  model.training_dataset
end