Fixed saving/loading csv instances.
This commit is contained in:
parent
0da42ca0ea
commit
26a9d69c05
2 changed files with 32 additions and 5 deletions
|
@ -10,7 +10,8 @@
|
|||
(:import (weka.core.converters CSVLoader ArffLoader XRFFLoader LibSVMLoader)
|
||||
(weka.core.converters CSVSaver ArffSaver XRFFSaver LibSVMSaver)
|
||||
(java.io File InputStream OutputStream)
|
||||
(java.net URL URI)))
|
||||
(java.net URL URI))
|
||||
(:use [clojure.java.io :only [input-stream output-stream]]))
|
||||
|
||||
|
||||
;; Loading of instances
|
||||
|
@ -24,7 +25,7 @@
|
|||
(if (= (class ~source) java.io.File)
|
||||
(.setFile ~loader ~source)
|
||||
(.setSource ~loader (if (= (class ~source) java.lang.String)
|
||||
(new URL ~source)
|
||||
(input-stream ~source)
|
||||
^InputStream ~source)))
|
||||
(.getDataSet ~loader)))
|
||||
|
||||
|
@ -58,7 +59,7 @@
|
|||
(defmacro m-save-instances [saver destiny instances]
|
||||
`(do
|
||||
(condp #(isa? %2 %1) (class ~destiny)
|
||||
String (.setFile ~saver (File. (URI. ~destiny)))
|
||||
String (.setDestination ~saver (output-stream ~destiny))
|
||||
File (.setFile ~saver ~destiny)
|
||||
OutputStream (.setDestination ~saver ~destiny))
|
||||
(.setInstances ~saver ~instances)
|
||||
|
|
|
@ -2,6 +2,32 @@
|
|||
(:use [clj-ml io data] :reload-all)
|
||||
(:use clojure.test midje.sweet))
|
||||
|
||||
(deftest load-instances-iris-url
|
||||
(deftest test-load-instances-iris-arff-url
|
||||
(let [ds (load-instances :arff "http://repository.seasr.org/Datasets/UCI/arff/iris.arff")]
|
||||
(is (= 150 (dataset-count ds)))))
|
||||
|
||||
(deftest test-load-instances-iris-csv-url
|
||||
(let [ds (load-instances :csv "https://raw.github.com/bigmlcom/bigmler/master/data/iris.csv")]
|
||||
(is (= 150 (dataset-count ds)))))
|
||||
|
||||
(deftest test-save-instances
|
||||
(let [ds (make-dataset "test" [:a :b {:c [:m :n]}] [[1 2 :m] [4 5 :m]])]
|
||||
(is (= (do (save-instances :csv "test.csv" ds)
|
||||
(slurp "test.csv"))
|
||||
"a,b,c
|
||||
1,2,m
|
||||
4,5,m
|
||||
"))
|
||||
(is (= (do (save-instances :arff "test.arff" ds)
|
||||
(slurp "test.arff"))
|
||||
"@relation test
|
||||
|
||||
@attribute a numeric
|
||||
@attribute b numeric
|
||||
@attribute c {m,n}
|
||||
|
||||
@data
|
||||
1,2,m
|
||||
4,5,m
|
||||
"))))
|
||||
|
||||
|
|
Loading…
Reference in a new issue