(ns code.utils.nway_new (:use (code.utils utils folds)) (:use (code.learners.knn knn_classifier)) (:use (incanter core stats))) (defn nway-new! [n D trainer tester distance] (let [pro-folds (folds D n)] (loop [fold pro-folds result []] (if (empty? fold) result (recur (rest fold) (conj result (let [training (:train (first fold)) tests (:test (first fold)) model (trainer training) want-got (apply vector (map #(tester % model) (if (= (nrow tests) 1) [tests] tests))) answer (Transpose want-got) testdata (bind-columns (sel tests :cols (range 0 (- (ncol tests) 1))) (matrix (second answer))) brittle? [(brittleness! testdata D model distance) (brittleness testdata D model distance)]] (conj answer brittle?)))))))) (defn nway-new [n D trainer tester distance] (let [pro-folds (folds D n)] (loop [fold pro-folds result []] (if (empty? fold) result (recur (rest fold) (conj result (let [training (:train (first fold)) tests (:test (first fold)) model (trainer training) want-got (apply vector (map #(tester % model) ;(first model)) (if (= (nrow tests) 1) [tests] tests))) answer (Transpose want-got) testdata (bind-columns (sel tests :cols (range 0 (- (ncol tests) 1))) (matrix (second answer))) brittle? (brittleness testdata D model distance)] (conj answer brittle?)))))))) (defn nway-new1 [n D trainer tester distance] (let [pro-folds (folds D n)] (loop [fold pro-folds result []] (if (empty? fold) result (recur (rest fold) (conj result (let [training (:train (first fold)) tests (:test (first fold)) model (trainer training) want-got (apply vector (map #(tester % (first model)) (if (= (nrow tests) 1) [tests] tests))) answer (Transpose want-got) testdata (bind-columns (sel tests :cols (range 0 (- (ncol tests) 1))) (matrix (second answer))) brittle? (brittleness testdata D (first model) distance)] (conj answer brittle?))))))))