From fa2d39ffe5b4284bbb4a8a0aadc071628e7d8440 Mon Sep 17 00:00:00 2001 From: Ben Mabey Date: Tue, 13 Dec 2011 20:08:54 -0700 Subject: [PATCH] change the dataset's name when randomized (like the filters do) --- src/clj_ml/data.clj | 9 ++++++++- test/clj_ml/data_test.clj | 11 ++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/clj_ml/data.clj b/src/clj_ml/data.clj index 17512a5..c9aba5c 100644 --- a/src/clj_ml/data.clj +++ b/src/clj_ml/data.clj @@ -229,6 +229,11 @@ [^Instances dataset ^String new-name] (doto dataset (.setRelationName new-name))) +(defn dataset-append-name + "Sets the dataset's name" + [^Instances dataset ^String name-addition] + (doto dataset (.setRelationName ^String (str (.relationName dataset) name-addition)))) + (defn attribute-labels-indexes "Returns map of the labels (possible values) for the given nominal attribute as the keys with the values being the attributes index. " @@ -446,7 +451,9 @@ The intention is for this to be used on data-formats and not on datasets with da (randomize-dataset! ds (java.util.Random.))) ([^Instances ds seed] (let [seed (if (number? seed) (java.util.Random. seed) seed)] - (doto ds (.randomize seed))))) + (doto ds (.randomize seed) (dataset-append-name (str "-Randomized(" + (.hashCode ^Object seed) + ")")))))) (defn randomize-dataset "Copies the given dataset and returns randomized version." diff --git a/test/clj_ml/data_test.clj b/test/clj_ml/data_test.clj index 06cd8c1..1fa4d1b 100644 --- a/test/clj_ml/data_test.clj +++ b/test/clj_ml/data_test.clj @@ -68,6 +68,16 @@ (dataset-set-class dataset :favorite-color) (is (= ["red" "blue" "green"] (dataset-class-values dataset)))))) +(deftest dataset-name-utils + (let [dataset (make-dataset :test + [:age :iq {:favorite-color [:red :blue :green]}] + [[12 100 :red] + [14 110 :blue] + [ 25 120 :green]])] + (is (= "test" (dataset-name dataset))) + (is (= "new-name" (dataset-name (dataset-set-name dataset "new-name")))) + (is (= "new-name-extra" (dataset-name (dataset-append-name dataset "-extra")))))) + (deftest dataset-count-1 (let [dataset (make-dataset :test [:a :b] @@ -174,7 +184,6 @@ (is (= "test" (dataset-name headers))) (is (= [:a {:b [:foo :bar]}] (dataset-format headers)))))) - (deftest dataset-class-helpers (let [ds (make-dataset "test" [:a {:b [:foo :bar]}] [[1 :foo] [2 :bar]])] (is (= nil (dataset-class-name ds)))