summaryrefslogtreecommitdiff
path: root/test/validation.rb
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2015-08-13 11:56:40 +0200
committerChristoph Helma <helma@in-silico.ch>2015-08-13 12:04:52 +0200
commit6ab86c253ba0eb79b9e6a20effa2d18626accf2b (patch)
tree508eef99b34eb495493444663af2dd72e138bba6 /test/validation.rb
parentb7cd3ebbb858a8891c35c45896f1bdd525f3534e (diff)
OpenBabel can (canonical smiles) instead of inchi as internal identifier to avoid OpenBabel InChi bug.
Diffstat (limited to 'test/validation.rb')
-rw-r--r--test/validation.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/validation.rb b/test/validation.rb
new file mode 100644
index 0000000..d98feb5
--- /dev/null
+++ b/test/validation.rb
@@ -0,0 +1,41 @@
+require_relative "setup.rb"
+
+class ValidationTest < MiniTest::Test
+
+ def test_fminer_crossvalidation
+ dataset = Dataset.from_csv_file "#{DATA_DIR}/hamster_carcinogenicity.csv"
+ model = Model::LazarFminerClassification.create dataset#, features
+ cv = ClassificationCrossValidation.create model
+ p cv.accuracy
+ p cv.weighted_accuracy
+ assert cv.accuracy > 0.8
+ assert cv.weighted_accuracy > cv.accuracy, "Weighted accuracy (#{cv.weighted_accuracy}) larger than unweighted accuracy(#{cv.accuracy}) "
+ end
+
+ def test_classification_crossvalidation
+ dataset = Dataset.from_csv_file "#{DATA_DIR}/hamster_carcinogenicity.csv"
+ model = Model::LazarClassification.create dataset#, features
+ cv = ClassificationCrossValidation.create model
+ p cv.accuracy
+ p cv.weighted_accuracy
+ assert cv.accuracy > 0.7
+ assert cv.weighted_accuracy > cv.accuracy, "Weighted accuracy should be larger than unweighted accuracy."
+ end
+
+ def test_regression_crossvalidation
+ dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.medi.csv"
+ #dataset = Dataset.from_csv_file "#{DATA_DIR}/EPAFHM.csv"
+ model = Model::LazarRegression.create dataset
+ cv = RegressionCrossValidation.create model
+ p cv.rmse
+ p cv.weighted_rmse
+ p cv.mae
+ p cv.weighted_mae
+ `inkview #{cv.plot}`
+ assert cv.rmse < 30, "RMSE > 30"
+ assert cv.weighted_rmse < cv.rmse, "Weighted RMSE (#{cv.weighted_rmse}) larger than unweighted RMSE(#{cv.rmse}) "
+ assert cv.mae < 12
+ assert cv.weighted_mae < cv.mae
+ end
+
+end