From 0e324b2957ce4676c036f93fc7d134f1d09274df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Traizet?= <cedric.traizet@c-s.fr>
Date: Thu, 1 Aug 2019 11:28:38 +0200
Subject: [PATCH] BUG: VectorRegression now use a dt model with cvfold=0,
 because cvfold is not supported in opencv 3

---
 .../Files/apTvClDTVectorRegression.dbf        |  3 -
 .../Files/apTvClDTVectorRegression.prj        |  1 -
 .../Files/apTvClDTVectorRegression.shp        |  3 -
 .../Files/apTvClDTVectorRegression.shx        |  3 -
 .../Files/apTvClDTVectorRegression.sqlite     |  3 +
 .../apTvClDTVectorRegression.dt}              | 82 ++++++++++++-------
 .../AppClassification/test/CMakeLists.txt     |  8 +-
 7 files changed, 58 insertions(+), 45 deletions(-)
 delete mode 100644 Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shx
 create mode 100644 Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.sqlite
 rename Data/{Baseline/OTB-Applications/Files/apTvClModelRegression.dt => Input/Classification/apTvClDTVectorRegression.dt} (60%)

diff --git a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.dbf b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.dbf
deleted file mode 100644
index c4e492c382..0000000000
--- a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:912188a42bffa8bd35328354cf2a53006298283885ceb1889b4822a8c21c2f9b
-size 343940
diff --git a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.prj b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shp b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shp
deleted file mode 100644
index bb850bca2f..0000000000
--- a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a5f17b630a4b9a681d571f6075373d9937f4ae4b31cd158d9cec1efb9804938d
-size 33280
diff --git a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shx b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shx
deleted file mode 100644
index 49a9782c47..0000000000
--- a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:51449568ded65b75b2b1e85c82b73091d20bc87b281294bede45521c78af6bb2
-size 9580
diff --git a/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.sqlite b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.sqlite
new file mode 100644
index 0000000000..e4eae4a937
--- /dev/null
+++ b/Data/Baseline/OTB-Applications/Files/apTvClDTVectorRegression.sqlite
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afff9c803aa384fecd0a9b068be71de7c92538cf22767e160478fbcce3b369d5
+size 118784
diff --git a/Data/Baseline/OTB-Applications/Files/apTvClModelRegression.dt b/Data/Input/Classification/apTvClDTVectorRegression.dt
similarity index 60%
rename from Data/Baseline/OTB-Applications/Files/apTvClModelRegression.dt
rename to Data/Input/Classification/apTvClDTVectorRegression.dt
index 79128526d9..e19000fd79 100644
--- a/Data/Baseline/OTB-Applications/Files/apTvClModelRegression.dt
+++ b/Data/Input/Classification/apTvClDTVectorRegression.dt
@@ -10,22 +10,20 @@ my_tree: !!opencv-ml-tree
       regression_accuracy: 9.9999997764825821e-03
       max_depth: 25
       min_sample_count: 10
-      cross_validation_folds: 10
-      use_1se_rule: 1
-      truncate_pruned_tree: 1
+      cross_validation_folds: 0
    var_type: [ 0, 0, 0, 0 ]
-   best_tree_idx: 0
+   best_tree_idx: -1
    nodes:
       -
          depth: 0
          sample_count: 1185
          value: 2.1434599156118144e+00
-         Tn: 3
-         complexity: 2
-         alpha: 1.0428486268774041e+03
+         Tn: 0
+         complexity: 0
+         alpha: 0.
          node_risk: 1.3156118143459917e+03
-         tree_risk: 1.5363497199794813e+02
-         tree_error: 2.2322315115631071e+01
+         tree_risk: 0.
+         tree_error: 0.
          splits:
             - { var:3, quality:6.5841166992187500e+03,
                 le:2.3381726074218750e+02 }
@@ -33,12 +31,12 @@ my_tree: !!opencv-ml-tree
          depth: 1
          sample_count: 593
          value: 1.1635750421585160e+00
-         Tn: 2
-         complexity: 1
-         alpha: 7.2124429620364594e+01
+         Tn: 0
+         complexity: 0
+         alpha: 0.
          node_risk: 8.9133220910623891e+01
-         tree_risk: 7.4075046904315172e+01
-         tree_error: 1.5094741436662460e+01
+         tree_risk: 0.
+         tree_error: 0.
          splits:
             - { var:3, quality:8.8817205810546875e+02,
                 le:1.6510346984863281e+02 }
@@ -46,8 +44,8 @@ my_tree: !!opencv-ml-tree
          depth: 2
          sample_count: 500
          value: 1.
-         Tn: 2147483647
-         complexity: 1
+         Tn: 0
+         complexity: 0
          alpha: 0.
          node_risk: 0.
          tree_risk: 0.
@@ -57,21 +55,43 @@ my_tree: !!opencv-ml-tree
          sample_count: 93
          value: 2.0430107526881720e+00
          Tn: 0
-         complexity: 1
-         alpha: 1.9506172839505780e+00
+         complexity: 0
+         alpha: 0.
          node_risk: 3.8279569892472978e+00
-         tree_risk: 1.9506172839505780e+00
-         tree_error: 1.9085505258344853e+00
+         tree_risk: 0.
+         tree_error: 0.
+         splits:
+            - { var:0, quality:392., le:2.1638174438476562e+02 }
+      -
+         depth: 3
+         sample_count: 4
+         value: 3.
+         Tn: 0
+         complexity: 0
+         alpha: 0.
+         node_risk: 0.
+         tree_risk: 0.
+         tree_error: 0.
+      -
+         depth: 3
+         sample_count: 89
+         value: 2.
+         Tn: 0
+         complexity: 0
+         alpha: 0.
+         node_risk: 0.
+         tree_risk: 0.
+         tree_error: 0.
       -
          depth: 1
          sample_count: 592
          value: 3.1250000000000000e+00
-         Tn: 1
-         complexity: 1
-         alpha: 7.0738339190549596e+01
+         Tn: 0
+         complexity: 0
+         alpha: 0.
          node_risk: 8.6750000000000000e+01
-         tree_risk: 7.9559925093632955e+01
-         tree_error: 7.2275736789686107e+00
+         tree_risk: 0.
+         tree_error: 0.
          splits:
             - { var:1, quality:5.8572387695312500e+03,
                 le:3.6126699829101562e+02 }
@@ -79,18 +99,18 @@ my_tree: !!opencv-ml-tree
          depth: 2
          sample_count: 507
          value: 2.9783037475345169e+00
-         Tn: 2147483647
-         complexity: 1
+         Tn: 0
+         complexity: 0
          alpha: 0.
          node_risk: 1.0761341222879309e+01
-         tree_risk: 8.8215859030833599e+00
-         tree_error: 1.9415329232083423e+00
+         tree_risk: 0.
+         tree_error: 0.
       -
          depth: 2
          sample_count: 85
          value: 4.
-         Tn: 2147483647
-         complexity: 1
+         Tn: 0
+         complexity: 0
          alpha: 0.
          node_risk: 0.
          tree_risk: 0.
diff --git a/Modules/Applications/AppClassification/test/CMakeLists.txt b/Modules/Applications/AppClassification/test/CMakeLists.txt
index 5bc7d22f24..3822967fc7 100644
--- a/Modules/Applications/AppClassification/test/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/test/CMakeLists.txt
@@ -726,13 +726,13 @@ if(OTB_USE_OPENCV)
   otb_test_application(NAME apTvClDTVectorRegression
     APP  VectorRegression
     OPTIONS -in ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-            -model ${OTBAPP_BASELINE_FILES}/apTvClModelRegression.dt
-            -out ${TEMP}/apTvClDTVectorRegression.shp
+            -model ${INPUTDATA}/Classification/apTvClDTVectorRegression.dt
+            -out ${TEMP}/apTvClDTVectorRegression.sqlite
             -feat value_0 value_1 value_2 value_3
             -cfield predicted
     VALID   --compare-ogr 0.0
-            ${OTBAPP_BASELINE_FILES}/apTvClDTVectorRegression.shp
-            ${TEMP}/apTvClDTVectorRegression.shp)
+            ${OTBAPP_BASELINE_FILES}/apTvClDTVectorRegression.sqlite
+            ${TEMP}/apTvClDTVectorRegression.sqlite)
 endif()
 
 #----------- ComputeImagesStatistics TESTS ----------------
-- 
GitLab