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"
:url "http://opensource.org/licenses/MIT"}
: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"]
[org.clojure/data.xml "0.0.7"]
[org.apache.lucene/lucene-analyzers-common "4.3.0"]]

View file

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

View file

@ -68,7 +68,7 @@
(weka.classifiers.meta LogitBoost AdditiveRegression RotationForest)
(weka.classifiers.bayes NaiveBayes NaiveBayesUpdateable)
(weka.classifiers.functions MultilayerPerceptron SMO LinearRegression Logistic PaceRegression SPegasos LibSVM)
(weka.classifiers Classifier Evaluation)))
(weka.classifiers AbstractClassifier Classifier Evaluation)))
;; Setting up classifier options
@ -544,7 +544,7 @@
(defn classifier-copy
"Performs a deep copy of the classifier"
[^Classifier classifier]
(Classifier/makeCopy classifier))
(AbstractClassifier/makeCopy classifier))
(defn classifier-copy-and-train
"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.set :as set])
(:use [clojure.java.io :only [file]])
(:import (weka.core Instance Instances FastVector Attribute)
(:import (weka.core Instance DenseInstance Instances FastVector Attribute)
(cljml ClojureInstances)))
(declare dataset-seq)
@ -134,8 +134,7 @@
([dataset vector]
(make-instance dataset 1 vector))
([dataset weight vector]
(let [^Instance inst (new Instance
(count vector))]
(let [^Instance inst (DenseInstance. (count vector))]
(do (.setDataset inst dataset)
(loop [vs vector
c 0]

View file

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

View file

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