ai4r 1.4 → 1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. data/README.rdoc +24 -3
  2. data/examples/decision_trees/id3_example.rb +1 -1
  3. data/examples/genetic_algorithm/genetic_algorithm_example.rb +1 -1
  4. data/lib/ai4r.rb +11 -0
  5. data/lib/ai4r/classifiers/classifier.rb +2 -0
  6. data/lib/ai4r/classifiers/id3.rb +3 -2
  7. data/lib/ai4r/classifiers/multilayer_perceptron.rb +135 -0
  8. data/lib/ai4r/classifiers/one_r.rb +2 -1
  9. data/lib/ai4r/classifiers/prism.rb +2 -1
  10. data/lib/ai4r/classifiers/zero_r.rb +2 -1
  11. data/lib/ai4r/clusterers/average_linkage.rb +60 -0
  12. data/lib/ai4r/clusterers/bisecting_k_means.rb +17 -39
  13. data/lib/ai4r/clusterers/clusterer.rb +25 -0
  14. data/lib/ai4r/clusterers/complete_linkage.rb +62 -0
  15. data/lib/ai4r/clusterers/k_means.rb +18 -25
  16. data/lib/ai4r/clusterers/single_linkage.rb +179 -0
  17. data/lib/ai4r/data/data_set.rb +33 -41
  18. data/lib/ai4r/data/proximity.rb +82 -0
  19. data/lib/ai4r/data/statistics.rb +77 -0
  20. data/lib/ai4r/experiment/classifier_evaluator.rb +95 -0
  21. data/lib/ai4r/genetic_algorithm/genetic_algorithm.rb +2 -4
  22. data/site/build/site/en/build/tmp/build-info.xml +5 -0
  23. data/site/build/site/en/build/tmp/plugins-1.xml +212 -0
  24. data/site/build/site/en/build/tmp/plugins-2.xml +252 -0
  25. data/site/build/site/en/build/tmp/projfilters.properties +41 -0
  26. data/site/build/site/en/downloads.html +1 -1
  27. data/site/build/site/en/geneticAlgorithms.html +1 -1
  28. data/site/build/site/en/index.html +44 -7
  29. data/site/build/site/en/index.pdf +278 -155
  30. data/site/build/site/en/linkmap.html +2 -2
  31. data/site/build/site/en/linkmap.pdf +12 -12
  32. data/site/build/site/en/machineLearning.html +1 -1
  33. data/site/build/site/en/neuralNetworks.html +1 -1
  34. data/site/build/site/en/sourceCode.html +244 -0
  35. data/site/build/site/en/sourceCode.pdf +278 -0
  36. data/site/build/site/en/svn.html +34 -42
  37. data/site/build/site/en/svn.pdf +86 -114
  38. data/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.data +0 -0
  39. data/site/build/tmp/cocoon-work/cache-dir/cocoon-ehcache-1.index +0 -0
  40. data/site/build/tmp/projfilters.properties +1 -1
  41. data/site/build/webapp/WEB-INF/logs/core.log +628 -629
  42. data/site/build/webapp/WEB-INF/logs/error.log +213 -213
  43. data/site/src/documentation/content/xdocs/index.xml +20 -1
  44. data/site/src/documentation/content/xdocs/site.xml +1 -1
  45. data/site/src/documentation/content/xdocs/sourceCode.xml +43 -0
  46. data/site/src/documentation/resources/images/sigmoid.png +0 -0
  47. data/test/classifiers/id3_test.rb +0 -1
  48. data/test/classifiers/multilayer_perceptron_test.rb +79 -0
  49. data/test/classifiers/one_r_test.rb +0 -2
  50. data/test/classifiers/prism_test.rb +0 -2
  51. data/test/classifiers/zero_r_test.rb +0 -2
  52. data/test/clusterers/average_linkage_test.rb +45 -0
  53. data/test/clusterers/bisecting_k_means_test.rb +0 -2
  54. data/test/clusterers/complete_linkage_test.rb +45 -0
  55. data/test/clusterers/k_means_test.rb +0 -2
  56. data/test/clusterers/single_linkage_test.rb +113 -0
  57. data/test/data/data_set_test.rb +3 -15
  58. data/test/data/proximity_test.rb +71 -0
  59. data/test/data/statistics_test.rb +65 -0
  60. data/test/experiment/classifier_evaluator_test.rb +76 -0
  61. metadata +27 -6
  62. data/site/src/documentation/content/xdocs/svn.xml +0 -41
@@ -0,0 +1,65 @@
1
+ # Author:: Sergio Fierens
2
+ # License:: MPL 1.1
3
+ # Project:: ai4r
4
+ # Url:: http://ai4r.rubyforge.org/
5
+ #
6
+ # You can redistribute it and/or modify it under the terms of
7
+ # the Mozilla Public License version 1.1 as published by the
8
+ # Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
9
+
10
+ require 'test/unit'
11
+ require File.dirname(__FILE__) + '/../../lib/ai4r/data/statistics'
12
+
13
+ module Ai4r
14
+ module Data
15
+ class StatisticsTest < Test::Unit::TestCase
16
+
17
+ DELTA = 0.00001
18
+
19
+ def setup
20
+ @data_set = DataSet.new.
21
+ parse_csv "#{File.dirname(__FILE__)}/statistics_data_set.csv"
22
+ end
23
+
24
+ def test_mean
25
+ assert_equal 2, Statistics.mean(@data_set, 1)
26
+ assert_equal 2.502, Statistics.mean(@data_set, 0)
27
+ end
28
+
29
+ def test_variance
30
+ assert_equal 0, Statistics.variance(@data_set, 1)
31
+ assert_in_delta 4.47302, Statistics.variance(@data_set, 0), DELTA
32
+ end
33
+
34
+ def test_standard_deviation
35
+ assert_equal 0, Statistics.standard_deviation(@data_set, 1)
36
+ assert_in_delta 2.11495, Statistics.standard_deviation(@data_set, 0), DELTA
37
+ end
38
+
39
+ def test_mode
40
+ items = [ [ "New York", 25, "Y"],
41
+ [ "New York", 55, "Y"],
42
+ [ "Chicago", 23, "Y"],
43
+ [ "Boston", 23, "N"],
44
+ [ "Chicago", 12, "N"],
45
+ [ "Chicago", 87, "Y"] ]
46
+ set = DataSet.new.set_data_items(items)
47
+ assert_equal "Chicago", Statistics.mode(set,0)
48
+ assert_equal 23, Statistics.mode(set,1)
49
+ assert_equal "Y", Statistics.mode(set,2)
50
+ end
51
+
52
+ def test_min
53
+ assert_equal 2, Statistics.min(@data_set, 1)
54
+ assert_equal 1, Statistics.min(@data_set, 0)
55
+ end
56
+
57
+ def test_max
58
+ assert_equal 2, Statistics.max(@data_set, 1)
59
+ assert_equal 6, Statistics.max(@data_set, 0)
60
+ assert_equal 3.7, Statistics.max(@data_set, 2)
61
+ end
62
+
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,76 @@
1
+ # Author:: Sergio Fierens
2
+ # License:: MPL 1.1
3
+ # Project:: ai4r
4
+ # Url:: http://ai4r.rubyforge.org/
5
+ #
6
+ # You can redistribute it and/or modify it under the terms of
7
+ # the Mozilla Public License version 1.1 as published by the
8
+ # Mozilla Foundation at http://www.mozilla.org/MPL/MPL-1.1.txt
9
+
10
+ require 'test/unit'
11
+ require File.dirname(__FILE__) + '/../../lib/ai4r/experiment/classifier_evaluator'
12
+ require File.dirname(__FILE__) + '/../../lib/ai4r/classifiers/classifier'
13
+
14
+ class MockClassifier < Ai4r::Classifiers::Classifier
15
+
16
+ attr_accessor :built
17
+
18
+ def initialize(class_value)
19
+ @built = false
20
+ @class_value = class_value
21
+ end
22
+
23
+ def build(data_set)
24
+ @built = true
25
+ end
26
+
27
+ def eval(data)
28
+ @class_value
29
+ end
30
+
31
+ end
32
+
33
+ module Ai4r
34
+ module Experiment
35
+ class ClassifierEvaluatorTest < Test::Unit::TestCase
36
+
37
+ def test_add_classifier
38
+ evaluator = ClassifierEvaluator.new
39
+ evaluator << MockClassifier.new(nil) << MockClassifier.new(nil)
40
+ evaluator.add_classifier(MockClassifier.new(nil)).
41
+ add_classifier(MockClassifier.new(nil)).
42
+ add_classifier(MockClassifier.new(nil))
43
+ assert_equal 5, evaluator.classifiers.length
44
+ end
45
+
46
+ def test_build
47
+ evaluator = ClassifierEvaluator.new
48
+ 5.times { evaluator << MockClassifier.new(nil) }
49
+ evaluator.classifiers.each {|c| assert !c.built}
50
+ evaluator.build(Ai4r::Data::DataSet.new)
51
+ evaluator.classifiers.each {|c| assert c.built}
52
+ end
53
+
54
+ def test_eval
55
+ evaluator = ClassifierEvaluator.new
56
+ 5.times { |x| evaluator << MockClassifier.new(x) }
57
+ assert_equal [0, 1, 2, 3, 4], evaluator.eval([])
58
+ end
59
+
60
+ def test_test
61
+ evaluator = ClassifierEvaluator.new
62
+ 5.times { |x| evaluator << MockClassifier.new(x) }
63
+ input = Ai4r::Data::DataSet.new :data_items =>
64
+ [[0],[0],[0],[1],[2],[3]]
65
+ output = evaluator.test input
66
+ assert_equal 5, output.data_items.length # 5 classifiers, 5 result rows
67
+ output.data_items.each { |result| assert result[1]>=0 && result[1]<1} # eval time
68
+ assert_equal 3, output.data_items.first[2] # 3 errors for the 1st classifier
69
+ assert_equal 0.5, output.data_items.first[3] # succes rate
70
+ assert_equal 6, output.data_items.last[2] # 6 errors for the last classifier
71
+ assert_equal 0, output.data_items.last[3] # succes rate
72
+ end
73
+
74
+ end
75
+ end
76
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ai4r
3
3
  version: !ruby/object:Gem::Version
4
- version: "1.4"
4
+ version: "1.5"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Fierens
@@ -9,7 +9,7 @@ autorequire: ai4r
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-12 00:00:00 +00:00
12
+ date: 2009-04-01 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -38,12 +38,18 @@ files:
38
38
  - lib/ai4r.rb
39
39
  - lib/ai4r
40
40
  - lib/ai4r/clusterers
41
+ - lib/ai4r/clusterers/average_linkage.rb
42
+ - lib/ai4r/clusterers/complete_linkage.rb
41
43
  - lib/ai4r/clusterers/bisecting_k_means.rb
44
+ - lib/ai4r/clusterers/single_linkage.rb
42
45
  - lib/ai4r/clusterers/k_means.rb
43
46
  - lib/ai4r/clusterers/clusterer.rb
47
+ - lib/ai4r/experiment
48
+ - lib/ai4r/experiment/classifier_evaluator.rb
44
49
  - lib/ai4r/neural_network
45
50
  - lib/ai4r/neural_network/backpropagation.rb
46
51
  - lib/ai4r/classifiers
52
+ - lib/ai4r/classifiers/multilayer_perceptron.rb
47
53
  - lib/ai4r/classifiers/prism.rb
48
54
  - lib/ai4r/classifiers/one_r.rb
49
55
  - lib/ai4r/classifiers/zero_r.rb
@@ -53,7 +59,9 @@ files:
53
59
  - lib/ai4r/genetic_algorithm/genetic_algorithm.rb
54
60
  - lib/ai4r/data
55
61
  - lib/ai4r/data/parameterizable.rb
62
+ - lib/ai4r/data/statistics.rb
56
63
  - lib/ai4r/data/data_set.rb
64
+ - lib/ai4r/data/proximity.rb
57
65
  - site/build
58
66
  - site/build/webapp
59
67
  - site/build/webapp/conf
@@ -71,13 +79,21 @@ files:
71
79
  - site/build/webapp/WEB-INF/logs/debug.log
72
80
  - site/build/site
73
81
  - site/build/site/en
82
+ - site/build/site/en/sourceCode.html
74
83
  - site/build/site/en/svn.pdf
84
+ - site/build/site/en/sourceCode.pdf
75
85
  - site/build/site/en/linkmap.pdf
76
86
  - site/build/site/en/geneticAlgorithms.html
77
87
  - site/build/site/en/neuralNetworks.pdf
78
88
  - site/build/site/en/neuralNetworks.html
79
89
  - site/build/site/en/machineLearning.html
80
90
  - site/build/site/en/index.html
91
+ - site/build/site/en/build
92
+ - site/build/site/en/build/tmp
93
+ - site/build/site/en/build/tmp/plugins-2.xml
94
+ - site/build/site/en/build/tmp/projfilters.properties
95
+ - site/build/site/en/build/tmp/build-info.xml
96
+ - site/build/site/en/build/tmp/plugins-1.xml
81
97
  - site/build/site/en/machineLearning.pdf
82
98
  - site/build/site/en/locationmap.xml
83
99
  - site/build/site/en/downloads.html
@@ -190,12 +206,10 @@ files:
190
206
  - site/forrest.properties.dispatcher.properties
191
207
  - site/src
192
208
  - site/src/documentation
193
- - site/src/documentation/conf
194
209
  - site/src/documentation/sitemap.xmap
195
210
  - site/src/documentation/resources
196
211
  - site/src/documentation/resources/stylesheets
197
212
  - site/src/documentation/resources/stylesheets/hello2document.xsl
198
- - site/src/documentation/resources/themes
199
213
  - site/src/documentation/resources/schema
200
214
  - site/src/documentation/resources/schema/symbols-project-v10.ent
201
215
  - site/src/documentation/resources/schema/catalog.xcat
@@ -232,13 +246,13 @@ files:
232
246
  - site/src/documentation/README.txt
233
247
  - site/src/documentation/content
234
248
  - site/src/documentation/content/xdocs
249
+ - site/src/documentation/content/xdocs/sourceCode.xml
235
250
  - site/src/documentation/content/xdocs/index.xml
236
251
  - site/src/documentation/content/xdocs/machineLearning.xml
237
252
  - site/src/documentation/content/xdocs/downloads.html
238
253
  - site/src/documentation/content/xdocs/site.xml
239
254
  - site/src/documentation/content/xdocs/geneticAlgorithms.xml
240
255
  - site/src/documentation/content/xdocs/neuralNetworks.xml
241
- - site/src/documentation/content/xdocs/svn.xml
242
256
  - site/src/documentation/content/xdocs/tabs.xml
243
257
  - site/src/documentation/content/locationmap.xml
244
258
  - site/src/documentation/translations
@@ -289,18 +303,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
289
303
  requirements: []
290
304
 
291
305
  rubyforge_project: ai4r
292
- rubygems_version: 1.2.0
306
+ rubygems_version: 1.3.1
293
307
  signing_key:
294
308
  specification_version: 2
295
309
  summary: Ruby implementations of algorithms covering several Artificial intelligence fields, including Genetic algorithms, Neural Networks, machine learning, and clustering.
296
310
  test_files:
311
+ - test/clusterers/single_linkage_test.rb
312
+ - test/clusterers/average_linkage_test.rb
313
+ - test/clusterers/complete_linkage_test.rb
297
314
  - test/clusterers/k_means_test.rb
298
315
  - test/clusterers/bisecting_k_means_test.rb
316
+ - test/experiment/classifier_evaluator_test.rb
299
317
  - test/neural_network/backpropagation_test.rb
300
318
  - test/classifiers/zero_r_test.rb
319
+ - test/classifiers/multilayer_perceptron_test.rb
301
320
  - test/classifiers/prism_test.rb
302
321
  - test/classifiers/one_r_test.rb
303
322
  - test/classifiers/id3_test.rb
304
323
  - test/genetic_algorithm/genetic_algorithm_test.rb
305
324
  - test/genetic_algorithm/chromosome_test.rb
325
+ - test/data/statistics_test.rb
326
+ - test/data/proximity_test.rb
306
327
  - test/data/data_set_test.rb
@@ -1,41 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
3
- <document>
4
- <header>
5
- <title>Subversion repository for ai4r (Artificial Intelligence for Ruby)</title>
6
- </header>
7
- <body>
8
- <section id="Anonymous">
9
- <title>Anonymous Subversion Access</title>
10
- <p>This project's SVN repository can be checked out through anonymous access with the following command(s).</p>
11
- <ul>
12
- <li>svn checkout http://ai4r.rubyforge.org/svn/trunk</li>
13
- <li>svn checkout svn://rubyforge.org/var/svn/ai4r/trunk</li>
14
- </ul>
15
- </section>
16
-
17
- <section id="Browse">
18
- <title>Browse latest files</title>
19
- <p>You can see the latest ai4r code directly in your browser: <a href="http://ai4r.rubyforge.org/svn/">http://ai4r.rubyforge.org/svn/</a>
20
- </p>
21
- <warning>The latest code in http://ai4r.rubyforge.org/svn/trunk will probably be a work in progess. If you
22
- want something that works, please download the releases.</warning>
23
- </section>
24
-
25
- <section id="moreinfor">
26
- <title>More info on Subversion (svn)</title>
27
- <p>If you need help about using Subversion (svn), the (IMO) best documentation is available <a href="http://svnbook.red-bean.com/">here</a>.</p>
28
- <p>If you work in SCM, you may find <a href="http://scm.jadeferret.com">Jade Ferret’s SCM initiative</a>
29
- intresting.</p>
30
- </section>
31
-
32
- <section id="softsizo_report">
33
- <title>Source code evolution</title>
34
- <p><a href="http://softsizo.jadeferret.com">Soft Sizo</a> is a report generation tool that extends the concept
35
- of Lines Of Code (LOC) metrics, using changes information stored in a Subversion repository.</p>
36
- <p>You can access <a href="http://softsizo.jadeferret.com/examples/ai4r/index.html">AI4R Soft Sizo report</a>
37
- for some AI4R source code evolution metrics.
38
- </p>
39
- </section>
40
- </body>
41
- </document>