Merge pull request #4 from remleduff/master

Minimal changes to compile against Weka 3.7.10
This commit is contained in:
Joshua Eckroth 2014-03-29 12:00:16 -04:00
commit d1e9db3b6e
6 changed files with 20 additions and 14 deletions

View file

@ -4,7 +4,16 @@
:license {:name "MIT License" :license {:name "MIT License"
:url "http://opensource.org/licenses/MIT"} :url "http://opensource.org/licenses/MIT"}
:url "https://github.com/joshuaeckroth/clj-ml" :url "https://github.com/joshuaeckroth/clj-ml"
:dependencies [[nz.ac.waikato.cms.weka/weka-stable "3.6.9"] :dependencies [[nz.ac.waikato.cms.weka/weka-dev "3.7.10"]
[nz.ac.waikato.cms.weka/chiSquaredAttributeEval "1.0.3"]
[nz.ac.waikato.cms.weka/attributeSelectionSearchMethods "1.0.6"]
[nz.ac.waikato.cms.weka/linearForwardSelection "1.0.1"]
[nz.ac.waikato.cms.weka/rotationForest "1.0.3"]
[nz.ac.waikato.cms.weka/paceRegression "1.0.2"]
[nz.ac.waikato.cms.weka/SPegasos "1.0.2"]
[nz.ac.waikato.cms.weka/LibSVM "1.0.5"]
[org.clojars.remleduff/snowball "20051019-1"]
[junit/junit "4.11"]
[tw.edu.ntu.csie/libsvm "3.1"] [tw.edu.ntu.csie/libsvm "3.1"]
[org.clojure/data.xml "0.0.7"] [org.clojure/data.xml "0.0.7"]
[org.apache.lucene/lucene-analyzers-common "4.3.0"]] [org.apache.lucene/lucene-analyzers-common "4.3.0"]]

View file

@ -9,7 +9,8 @@
SymmetricalUncertAttributeEval ChiSquaredAttributeEval SymmetricalUncertAttributeEval ChiSquaredAttributeEval
AttributeSelection CfsSubsetEval AttributeSelection CfsSubsetEval
;; search ;; search
GreedyStepwise BestFirst GeneticSearch Ranker RankSearch LinearForwardSelection])) GreedyStepwise BestFirst Ranker RankSearch LinearForwardSelection]
[weka.classifiers.bayes.net.search.local GeneticSearch]))
(defmulti #^{:skip-wiki true} (defmulti #^{:skip-wiki true}
make-obj-options make-obj-options

View file

@ -68,7 +68,7 @@
(weka.classifiers.meta LogitBoost AdditiveRegression RotationForest) (weka.classifiers.meta LogitBoost AdditiveRegression RotationForest)
(weka.classifiers.bayes NaiveBayes NaiveBayesUpdateable) (weka.classifiers.bayes NaiveBayes NaiveBayesUpdateable)
(weka.classifiers.functions MultilayerPerceptron SMO LinearRegression Logistic PaceRegression SPegasos LibSVM) (weka.classifiers.functions MultilayerPerceptron SMO LinearRegression Logistic PaceRegression SPegasos LibSVM)
(weka.classifiers Classifier Evaluation))) (weka.classifiers AbstractClassifier Classifier Evaluation)))
;; Setting up classifier options ;; Setting up classifier options
@ -544,7 +544,7 @@
(defn classifier-copy (defn classifier-copy
"Performs a deep copy of the classifier" "Performs a deep copy of the classifier"
[^Classifier classifier] [^Classifier classifier]
(Classifier/makeCopy classifier)) (AbstractClassifier/makeCopy classifier))
(defn classifier-copy-and-train (defn classifier-copy-and-train
"Performs a deep copy of the classifier, trains the copy, and returns it." "Performs a deep copy of the classifier, trains the copy, and returns it."

View file

@ -16,7 +16,7 @@
(:require [clojure.string :as str]) (:require [clojure.string :as str])
(:require [clojure.set :as set]) (:require [clojure.set :as set])
(:use [clojure.java.io :only [file]]) (:use [clojure.java.io :only [file]])
(:import (weka.core Instance Instances FastVector Attribute) (:import (weka.core Instance DenseInstance Instances FastVector Attribute)
(cljml ClojureInstances))) (cljml ClojureInstances)))
(declare dataset-seq) (declare dataset-seq)
@ -134,8 +134,7 @@
([dataset vector] ([dataset vector]
(make-instance dataset 1 vector)) (make-instance dataset 1 vector))
([dataset weight vector] ([dataset weight vector]
(let [^Instance inst (new Instance (let [^Instance inst (DenseInstance. (count vector))]
(count vector))]
(do (.setDataset inst dataset) (do (.setDataset inst dataset)
(loop [vs vector (loop [vs vector
c 0] c 0]

View file

@ -7,8 +7,7 @@
[:a :b] [:a :b]
1) 1)
inst (make-instance dataset [1 2])] inst (make-instance dataset [1 2])]
(is (= (class inst) (is (instance? weka.core.Instance inst))
weka.core.Instance))
(is (= 2 (.numValues inst))) (is (= 2 (.numValues inst)))
(is (= 1.0 (.value inst 0))) (is (= 1.0 (.value inst 0)))
(is (= 2.0 (.value inst 1))))) (is (= 2.0 (.value inst 1)))))
@ -18,8 +17,7 @@
[:a {:b [:b1 :b2]}] [:a {:b [:b1 :b2]}]
1) 1)
inst (make-instance dataset [1 :b1])] inst (make-instance dataset [1 :b1])]
(is (= (class inst) (is (instance? weka.core.Instance inst))
weka.core.Instance))
(is (= 2 (.numValues inst))) (is (= 2 (.numValues inst)))
(is (= 1.0 (.value inst 0))) (is (= 1.0 (.value inst 0)))
(is (= "b1" (.stringValue inst 1))))) (is (= "b1" (.stringValue inst 1)))))
@ -29,8 +27,7 @@
[:a :b] [:a :b]
1) 1)
inst (make-instance dataset [1 nil])] inst (make-instance dataset [1 nil])]
(is (= (class inst) (is (instance? weka.core.Instance inst))
weka.core.Instance))
(is (= 2 (.numValues inst))) (is (= 2 (.numValues inst)))
(is (= 1.0 (.value inst 0))) (is (= 1.0 (.value inst 0)))
(is (Double/isNaN (.value inst 1))))) (is (Double/isNaN (.value inst 1)))))

View file

@ -281,7 +281,7 @@
(-> instance (-> instance
instance-to-vector instance-to-vector
(conj (- a-max (.value instance 0))) (conj (- a-max (.value instance 0)))
(#(weka.core.Instance. 1 (into-array Double/TYPE %))) (#(weka.core.DenseInstance. 1 (into-array Double/TYPE %)))
add-instance)) add-instance))
result)) result))
res (clj-batch ds res (clj-batch ds