summaryrefslogtreecommitdiff
path: root/perceptron-new-test.rb
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2015-03-25 09:32:22 +0100
committerPatrick Simianer <p@simianer.de>2015-03-25 09:32:22 +0100
commit2e983112813c41b40800aee1ce9d0a083763f224 (patch)
treef40e535e739a9d60a94336835d6c810f22ea12b4 /perceptron-new-test.rb
parent6ae893b1a83e1f38d2c72ff025fd2a1300919dbc (diff)
rewrote perceptron
Diffstat (limited to 'perceptron-new-test.rb')
-rwxr-xr-xperceptron-new-test.rb30
1 files changed, 30 insertions, 0 deletions
diff --git a/perceptron-new-test.rb b/perceptron-new-test.rb
new file mode 100755
index 0000000..6566f68
--- /dev/null
+++ b/perceptron-new-test.rb
@@ -0,0 +1,30 @@
+#!/usr/bin/env ruby
+
+require 'zipf'
+
+STDERR.write "reading test data...\n"
+test = []
+test_f = ReadFile.new ARGV[0]
+n = 0
+while i = test_f.gets
+ test << SparseVector.from_kv(i.strip, '=', ' ')
+ n += 1
+ STDERR.write "#{n}\n" if n%1000==0
+end
+STDERR.write " test set size = #{test.size}\n"
+
+errors = 0
+w = SparseVector.from_kv ReadFile.new(ARGV[1]).read, "\t", "\n"
+
+test.each { |x|
+ m = w.dot(x)
+ if m <= 0.0
+ errors += 1
+ puts -1
+ else
+ puts 1
+ end
+}
+
+STDERR.write "accuracy = #{(test.size-errors)/test.size.to_f}\n"
+