Class: OpenTox::Model::Prediction
- Includes:
- Mongoid::Document, Mongoid::Timestamps, OpenTox
- Defined in:
- lib/model.rb
Class Method Summary collapse
Instance Method Summary collapse
- #classification? ⇒ Boolean
- #crossvalidations ⇒ Object
- #model ⇒ Object
- #predict(object) ⇒ Object
- #regression? ⇒ Boolean
- #repeated_crossvalidation ⇒ Object
- #training_dataset ⇒ Object
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
208 209 210 |
# File 'lib/model.rb', line 208 def classification? training_dataset.features.first.nominal? end |
#crossvalidations ⇒ Object
200 201 202 |
# File 'lib/model.rb', line 200 def crossvalidations repeated_crossvalidation.crossvalidations 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
204 205 206 |
# File 'lib/model.rb', line 204 def regression? training_dataset.features.first.numeric? end |
#repeated_crossvalidation ⇒ Object
196 197 198 |
# File 'lib/model.rb', line 196 def repeated_crossvalidation RepeatedCrossValidation.find repeated_crossvalidation_id end |
#training_dataset ⇒ Object
188 189 190 |
# File 'lib/model.rb', line 188 def training_dataset model.training_dataset end |