nlptoolkit-classification 1.0.3 → 1.0.4

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 (203) hide show
  1. package/dist/Classifier/Bagging.d.ts +1 -0
  2. package/dist/Classifier/Bagging.js +3 -0
  3. package/dist/Classifier/Bagging.js.map +1 -1
  4. package/dist/Classifier/C45.d.ts +1 -0
  5. package/dist/Classifier/C45.js +3 -0
  6. package/dist/Classifier/C45.js.map +1 -1
  7. package/dist/Classifier/C45Stump.d.ts +1 -0
  8. package/dist/Classifier/C45Stump.js +3 -0
  9. package/dist/Classifier/C45Stump.js.map +1 -1
  10. package/dist/Classifier/Classifier.d.ts +1 -0
  11. package/dist/Classifier/Classifier.js.map +1 -1
  12. package/dist/Classifier/DeepNetwork.d.ts +1 -0
  13. package/dist/Classifier/DeepNetwork.js +3 -0
  14. package/dist/Classifier/DeepNetwork.js.map +1 -1
  15. package/dist/Classifier/Dummy.d.ts +1 -0
  16. package/dist/Classifier/Dummy.js +3 -0
  17. package/dist/Classifier/Dummy.js.map +1 -1
  18. package/dist/Classifier/KMeans.d.ts +1 -0
  19. package/dist/Classifier/KMeans.js +3 -0
  20. package/dist/Classifier/KMeans.js.map +1 -1
  21. package/dist/Classifier/Knn.d.ts +1 -0
  22. package/dist/Classifier/Knn.js +3 -0
  23. package/dist/Classifier/Knn.js.map +1 -1
  24. package/dist/Classifier/Lda.d.ts +1 -0
  25. package/dist/Classifier/Lda.js +3 -0
  26. package/dist/Classifier/Lda.js.map +1 -1
  27. package/dist/Classifier/LinearPerceptron.d.ts +1 -0
  28. package/dist/Classifier/LinearPerceptron.js +3 -0
  29. package/dist/Classifier/LinearPerceptron.js.map +1 -1
  30. package/dist/Classifier/MultiLayerPerceptron.d.ts +1 -0
  31. package/dist/Classifier/MultiLayerPerceptron.js +3 -0
  32. package/dist/Classifier/MultiLayerPerceptron.js.map +1 -1
  33. package/dist/Classifier/NaiveBayes.d.ts +1 -0
  34. package/dist/Classifier/NaiveBayes.js +3 -0
  35. package/dist/Classifier/NaiveBayes.js.map +1 -1
  36. package/dist/Classifier/Qda.d.ts +1 -0
  37. package/dist/Classifier/Qda.js +3 -0
  38. package/dist/Classifier/Qda.js.map +1 -1
  39. package/dist/Classifier/RandomClassifier.d.ts +1 -0
  40. package/dist/Classifier/RandomClassifier.js +3 -0
  41. package/dist/Classifier/RandomClassifier.js.map +1 -1
  42. package/dist/Classifier/RandomForest.d.ts +1 -0
  43. package/dist/Classifier/RandomForest.js +3 -0
  44. package/dist/Classifier/RandomForest.js.map +1 -1
  45. package/dist/DataSet/DataSet.js +1 -1
  46. package/dist/DataSet/DataSet.js.map +1 -1
  47. package/dist/Model/DecisionTree/DecisionNode.d.ts +6 -3
  48. package/dist/Model/DecisionTree/DecisionNode.js +43 -3
  49. package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
  50. package/dist/Model/DecisionTree/DecisionTree.d.ts +4 -3
  51. package/dist/Model/DecisionTree/DecisionTree.js +14 -4
  52. package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
  53. package/dist/Model/DeepNetworkModel.d.ts +6 -3
  54. package/dist/Model/DeepNetworkModel.js +53 -30
  55. package/dist/Model/DeepNetworkModel.js.map +1 -1
  56. package/dist/Model/DummyModel.d.ts +2 -1
  57. package/dist/Model/DummyModel.js +22 -2
  58. package/dist/Model/DummyModel.js.map +1 -1
  59. package/dist/Model/GaussianModel.d.ts +4 -0
  60. package/dist/Model/GaussianModel.js +28 -1
  61. package/dist/Model/GaussianModel.js.map +1 -1
  62. package/dist/Model/KMeansModel.d.ts +3 -2
  63. package/dist/Model/KMeansModel.js +19 -6
  64. package/dist/Model/KMeansModel.js.map +1 -1
  65. package/dist/Model/KnnModel.d.ts +3 -2
  66. package/dist/Model/KnnModel.js +18 -6
  67. package/dist/Model/KnnModel.js.map +1 -1
  68. package/dist/Model/LdaModel.d.ts +5 -2
  69. package/dist/Model/LdaModel.js +28 -6
  70. package/dist/Model/LdaModel.js.map +1 -1
  71. package/dist/Model/LinearPerceptronModel.d.ts +5 -2
  72. package/dist/Model/LinearPerceptronModel.js +38 -10
  73. package/dist/Model/LinearPerceptronModel.js.map +1 -1
  74. package/dist/Model/Model.d.ts +7 -0
  75. package/dist/Model/Model.js +40 -1
  76. package/dist/Model/Model.js.map +1 -1
  77. package/dist/Model/MultiLayerPerceptronModel.d.ts +5 -2
  78. package/dist/Model/MultiLayerPerceptronModel.js +33 -13
  79. package/dist/Model/MultiLayerPerceptronModel.js.map +1 -1
  80. package/dist/Model/NaiveBayesModel.d.ts +2 -1
  81. package/dist/Model/NaiveBayesModel.js +18 -6
  82. package/dist/Model/NaiveBayesModel.js.map +1 -1
  83. package/dist/Model/NeuralNetworkModel.d.ts +4 -1
  84. package/dist/Model/NeuralNetworkModel.js +27 -6
  85. package/dist/Model/NeuralNetworkModel.js.map +1 -1
  86. package/dist/Model/QdaModel.d.ts +3 -2
  87. package/dist/Model/QdaModel.js +23 -5
  88. package/dist/Model/QdaModel.js.map +1 -1
  89. package/dist/Model/RandomModel.d.ts +4 -2
  90. package/dist/Model/RandomModel.js +20 -4
  91. package/dist/Model/RandomModel.js.map +1 -1
  92. package/dist/Model/TreeEnsembleModel.d.ts +3 -2
  93. package/dist/Model/TreeEnsembleModel.js +19 -4
  94. package/dist/Model/TreeEnsembleModel.js.map +1 -1
  95. package/models/bagging-bupa.txt +25666 -0
  96. package/models/bagging-car.txt +78923 -0
  97. package/models/bagging-dermatology.txt +7276 -0
  98. package/models/bagging-iris.txt +3131 -0
  99. package/models/bagging-tictactoe.txt +61186 -0
  100. package/models/c45-bupa.txt +3 -0
  101. package/models/c45-car.txt +331 -0
  102. package/models/c45-dermatology.txt +43 -0
  103. package/models/c45-iris.txt +13 -0
  104. package/models/c45-tictactoe.txt +270 -0
  105. package/models/c45stump-bupa.txt +8 -0
  106. package/models/c45stump-car.txt +11 -0
  107. package/models/c45stump-chess.txt +8 -0
  108. package/models/c45stump-dermatology.txt +8 -0
  109. package/models/c45stump-iris.txt +8 -0
  110. package/models/c45stump-nursery.txt +11 -0
  111. package/models/c45stump-tictactoe.txt +11 -0
  112. package/models/deepNetwork-bupa.txt +40 -0
  113. package/models/deepNetwork-dermatology.txt +37 -0
  114. package/models/deepNetwork-iris.txt +22 -0
  115. package/models/dummy-bupa.txt +3 -0
  116. package/models/dummy-car.txt +5 -0
  117. package/models/dummy-chess.txt +19 -0
  118. package/models/dummy-dermatology.txt +7 -0
  119. package/models/dummy-iris.txt +4 -0
  120. package/models/dummy-nursery.txt +6 -0
  121. package/models/dummy-tictactoe.txt +3 -0
  122. package/models/kMeans-bupa.txt +7 -0
  123. package/models/kMeans-car.txt +11 -0
  124. package/models/kMeans-chess.txt +39 -0
  125. package/models/kMeans-dermatology.txt +15 -0
  126. package/models/kMeans-iris.txt +9 -0
  127. package/models/kMeans-nursery.txt +13 -0
  128. package/models/kMeans-tictactoe.txt +7 -0
  129. package/models/knn-bupa.txt +348 -0
  130. package/models/knn-car.txt +1731 -0
  131. package/models/knn-dermatology.txt +369 -0
  132. package/models/knn-iris.txt +153 -0
  133. package/models/knn-tictactoe.txt +961 -0
  134. package/models/lda-bupa.txt +7 -0
  135. package/models/lda-dermatology.txt +19 -0
  136. package/models/lda-iris.txt +10 -0
  137. package/models/linearPerceptron-bupa.txt +6 -0
  138. package/models/linearPerceptron-dermatology.txt +14 -0
  139. package/models/linearPerceptron-iris.txt +8 -0
  140. package/models/multiLayerPerceptron-bupa.txt +38 -0
  141. package/models/multiLayerPerceptron-dermatology.txt +36 -0
  142. package/models/multiLayerPerceptron-iris.txt +13 -0
  143. package/models/naiveBayes-bupa.txt +7 -0
  144. package/models/naiveBayes-dermatology.txt +19 -0
  145. package/models/naiveBayes-iris.txt +10 -0
  146. package/models/qda-bupa.txt +23 -0
  147. package/models/qda-iris.txt +28 -0
  148. package/models/random-bupa.txt +4 -0
  149. package/models/random-car.txt +6 -0
  150. package/models/random-chess.txt +20 -0
  151. package/models/random-dermatology.txt +8 -0
  152. package/models/random-iris.txt +5 -0
  153. package/models/random-nursery.txt +7 -0
  154. package/models/random-tictactoe.txt +4 -0
  155. package/models/randomforest-bupa.txt +25666 -0
  156. package/models/randomforest-car.txt +78923 -0
  157. package/models/randomforest-dermatology.txt +7276 -0
  158. package/models/randomforest-iris.txt +3131 -0
  159. package/models/randomforest-tictactoe.txt +61186 -0
  160. package/package.json +3 -3
  161. package/source/Classifier/Bagging.ts +3 -0
  162. package/source/Classifier/C45.ts +4 -0
  163. package/source/Classifier/C45Stump.ts +4 -0
  164. package/source/Classifier/Classifier.ts +1 -0
  165. package/source/Classifier/DeepNetwork.ts +4 -0
  166. package/source/Classifier/Dummy.ts +4 -0
  167. package/source/Classifier/KMeans.ts +4 -0
  168. package/source/Classifier/Knn.ts +5 -1
  169. package/source/Classifier/Lda.ts +4 -0
  170. package/source/Classifier/LinearPerceptron.ts +4 -0
  171. package/source/Classifier/MultiLayerPerceptron.ts +4 -0
  172. package/source/Classifier/NaiveBayes.ts +4 -0
  173. package/source/Classifier/Qda.ts +4 -0
  174. package/source/Classifier/RandomClassifier.ts +4 -0
  175. package/source/Classifier/RandomForest.ts +4 -0
  176. package/source/DataSet/DataSet.ts +1 -1
  177. package/source/Model/DecisionTree/DecisionNode.ts +65 -29
  178. package/source/Model/DecisionTree/DecisionTree.ts +14 -4
  179. package/source/Model/DeepNetworkModel.ts +40 -16
  180. package/source/Model/DummyModel.ts +20 -2
  181. package/source/Model/GaussianModel.ts +29 -0
  182. package/source/Model/KMeansModel.ts +18 -6
  183. package/source/Model/KnnModel.ts +19 -6
  184. package/source/Model/LdaModel.ts +29 -6
  185. package/source/Model/LinearPerceptronModel.ts +52 -25
  186. package/source/Model/Model.ts +43 -0
  187. package/source/Model/MultiLayerPerceptronModel.ts +34 -12
  188. package/source/Model/NaiveBayesModel.ts +19 -7
  189. package/source/Model/NeuralNetworkModel.ts +31 -7
  190. package/source/Model/QdaModel.ts +22 -4
  191. package/source/Model/RandomModel.ts +21 -4
  192. package/source/Model/TreeEnsembleModel.ts +17 -3
  193. package/tests/Classifier/C45Test.ts +67 -0
  194. package/tests/Classifier/DeepNetworkTest.ts +52 -0
  195. package/tests/Classifier/DummyTest.ts +89 -0
  196. package/tests/Classifier/KMeansTest.ts +89 -0
  197. package/tests/Classifier/KnnTest.ts +68 -0
  198. package/tests/Classifier/LdaTest.ts +45 -0
  199. package/tests/Classifier/LinearPerceptronTest.ts +49 -0
  200. package/tests/Classifier/MultiLayerPerceptronTest.ts +51 -0
  201. package/tests/Classifier/NaiveBayesTest.ts +45 -0
  202. package/tests/Classifier/QdaTest.ts +35 -0
  203. package/tests/Classifier/RandomForestTest.ts +68 -0
@@ -0,0 +1,89 @@
1
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
2
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
3
+ import {DataSet} from "../../dist/DataSet/DataSet";
4
+ import * as assert from "assert";
5
+ import {Dummy} from "../../dist/Classifier/Dummy";
6
+
7
+ describe('DummyTest', function() {
8
+ describe('DummyTest', function() {
9
+ let dummy = new Dummy()
10
+ let attributeTypes = new Array<AttributeType>();
11
+ for (let i = 0; i < 4; i++){
12
+ attributeTypes.push(AttributeType.CONTINUOUS)
13
+ }
14
+ let dataDefinition = new DataDefinition(attributeTypes)
15
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
16
+ attributeTypes = new Array<AttributeType>();
17
+ for (let i = 0; i < 6; i++){
18
+ attributeTypes.push(AttributeType.CONTINUOUS)
19
+ }
20
+ dataDefinition = new DataDefinition(attributeTypes)
21
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
22
+ attributeTypes = new Array<AttributeType>()
23
+ for (let i = 0; i < 34; i++){
24
+ attributeTypes.push(AttributeType.CONTINUOUS)
25
+ }
26
+ dataDefinition = new DataDefinition(attributeTypes)
27
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
28
+ attributeTypes = new Array<AttributeType>()
29
+ for (let i = 0; i < 6; i++){
30
+ attributeTypes.push(AttributeType.DISCRETE)
31
+ }
32
+ dataDefinition = new DataDefinition(attributeTypes);
33
+ let car = new DataSet(dataDefinition, ",", "datasets/car.data");
34
+ attributeTypes = new Array<AttributeType>()
35
+ for (let i = 0; i < 9; i++){
36
+ attributeTypes.push(AttributeType.DISCRETE)
37
+ }
38
+ dataDefinition = new DataDefinition(attributeTypes);
39
+ let tictactoe = new DataSet(dataDefinition, ",", "datasets/tictactoe.data")
40
+ attributeTypes = new Array<AttributeType>()
41
+ for (let i = 0; i < 8; i++){
42
+ attributeTypes.push(AttributeType.DISCRETE)
43
+ }
44
+ dataDefinition = new DataDefinition(attributeTypes);
45
+ let nursery = new DataSet(dataDefinition, ",", "datasets/nursery.data")
46
+ attributeTypes = new Array<AttributeType>()
47
+ for (let i = 0; i < 6; i++){
48
+ if (i % 2 == 0){
49
+ attributeTypes.push(AttributeType.DISCRETE)
50
+ } else {
51
+ attributeTypes.push(AttributeType.CONTINUOUS)
52
+ }
53
+ }
54
+ dataDefinition = new DataDefinition(attributeTypes)
55
+ let chess = new DataSet(dataDefinition, ",", "datasets/chess.data")
56
+ it('testTrain', function() {
57
+ dummy.train(iris.getInstanceList(), null);
58
+ assert.ok(Math.abs(66.67 - 100 * dummy.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
59
+ dummy.train(bupa.getInstanceList(), null);
60
+ assert.ok(Math.abs(42.03 - 100 * dummy.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
61
+ dummy.train(dermatology.getInstanceList(), null);
62
+ assert.ok(Math.abs(69.40 - 100 * dummy.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
63
+ dummy.train(car.getInstanceList(), null);
64
+ assert.ok(Math.abs(29.98 - 100 * dummy.test(car.getInstanceList()).getErrorRate()) <= 0.01);
65
+ dummy.train(tictactoe.getInstanceList(), null);
66
+ assert.ok(Math.abs(34.66 - 100 * dummy.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
67
+ dummy.train(nursery.getInstanceList(), null);
68
+ assert.ok(Math.abs(66.67 - 100 * dummy.test(nursery.getInstanceList()).getErrorRate()) <= 0.01);
69
+ dummy.train(chess.getInstanceList(), null);
70
+ assert.ok(Math.abs(83.77 - 100 * dummy.test(chess.getInstanceList()).getErrorRate()) <= 0.01);
71
+ });
72
+ it('testLoad', function() {
73
+ dummy.loadModel("models/dummy-iris.txt");
74
+ assert.ok(Math.abs(66.67 - 100 * dummy.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
75
+ dummy.loadModel("models/dummy-bupa.txt");
76
+ assert.ok(Math.abs(42.03 - 100 * dummy.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
77
+ dummy.loadModel("models/dummy-dermatology.txt");
78
+ assert.ok(Math.abs(69.40 - 100 * dummy.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
79
+ dummy.loadModel("models/dummy-car.txt");
80
+ assert.ok(Math.abs(29.98 - 100 * dummy.test(car.getInstanceList()).getErrorRate()) <= 0.01);
81
+ dummy.loadModel("models/dummy-tictactoe.txt");
82
+ assert.ok(Math.abs(34.66 - 100 * dummy.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
83
+ dummy.loadModel("models/dummy-nursery.txt");
84
+ assert.ok(Math.abs(66.67 - 100 * dummy.test(nursery.getInstanceList()).getErrorRate()) <= 0.01);
85
+ dummy.loadModel("models/dummy-chess.txt");
86
+ assert.ok(Math.abs(83.77 - 100 * dummy.test(chess.getInstanceList()).getErrorRate()) <= 0.01);
87
+ });
88
+ });
89
+ });
@@ -0,0 +1,89 @@
1
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
2
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
3
+ import {DataSet} from "../../dist/DataSet/DataSet";
4
+ import * as assert from "assert";
5
+ import {KMeans} from "../../dist/Classifier/KMeans";
6
+ import {KMeansParameter} from "../../dist/Parameter/KMeansParameter";
7
+
8
+ describe('KMeansTest', function() {
9
+ describe('KMeansTest', function() {
10
+ let kMeans = new KMeans()
11
+ let kMeansParameter = new KMeansParameter(1)
12
+ let attributeTypes = new Array<AttributeType>();
13
+ for (let i = 0; i < 4; i++){
14
+ attributeTypes.push(AttributeType.CONTINUOUS)
15
+ }
16
+ let dataDefinition = new DataDefinition(attributeTypes)
17
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
18
+ attributeTypes = new Array<AttributeType>();
19
+ for (let i = 0; i < 6; i++){
20
+ attributeTypes.push(AttributeType.CONTINUOUS)
21
+ }
22
+ dataDefinition = new DataDefinition(attributeTypes)
23
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
24
+ attributeTypes = new Array<AttributeType>()
25
+ for (let i = 0; i < 34; i++){
26
+ attributeTypes.push(AttributeType.CONTINUOUS)
27
+ }
28
+ dataDefinition = new DataDefinition(attributeTypes)
29
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
30
+ attributeTypes = new Array<AttributeType>()
31
+ for (let i = 0; i < 6; i++){
32
+ attributeTypes.push(AttributeType.DISCRETE)
33
+ }
34
+ dataDefinition = new DataDefinition(attributeTypes);
35
+ let car = new DataSet(dataDefinition, ",", "datasets/car.data");
36
+ attributeTypes = new Array<AttributeType>()
37
+ for (let i = 0; i < 9; i++){
38
+ attributeTypes.push(AttributeType.DISCRETE)
39
+ }
40
+ dataDefinition = new DataDefinition(attributeTypes);
41
+ let tictactoe = new DataSet(dataDefinition, ",", "datasets/tictactoe.data")
42
+ attributeTypes = new Array<AttributeType>()
43
+ for (let i = 0; i < 8; i++){
44
+ attributeTypes.push(AttributeType.DISCRETE)
45
+ }
46
+ dataDefinition = new DataDefinition(attributeTypes);
47
+ let nursery = new DataSet(dataDefinition, ",", "datasets/nursery.data")
48
+ attributeTypes = new Array<AttributeType>()
49
+ for (let i = 0; i < 6; i++){
50
+ if (i % 2 == 0){
51
+ attributeTypes.push(AttributeType.DISCRETE)
52
+ } else {
53
+ attributeTypes.push(AttributeType.CONTINUOUS)
54
+ }
55
+ }
56
+ dataDefinition = new DataDefinition(attributeTypes)
57
+ let chess = new DataSet(dataDefinition, ",", "datasets/chess.data")
58
+ it('testTrain', function() {
59
+ kMeans.train(iris.getInstanceList(), kMeansParameter);
60
+ assert.ok(Math.abs(7.33 - 100 * kMeans.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
61
+ kMeans.train(bupa.getInstanceList(), kMeansParameter);
62
+ assert.ok(Math.abs(43.77 - 100 * kMeans.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
63
+ kMeans.train(dermatology.getInstanceList(), kMeansParameter);
64
+ assert.ok(Math.abs(45.08 - 100 * kMeans.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
65
+ kMeans.train(car.getInstanceList(), kMeansParameter);
66
+ assert.ok(Math.abs(47.98 - 100 * kMeans.test(car.getInstanceList()).getErrorRate()) <= 0.01);
67
+ kMeans.train(tictactoe.getInstanceList(), kMeansParameter);
68
+ assert.ok(Math.abs(38.94 - 100 * kMeans.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
69
+ kMeans.train(nursery.getInstanceList(), kMeansParameter);
70
+ assert.ok(Math.abs(53.60 - 100 * kMeans.test(nursery.getInstanceList()).getErrorRate()) <= 0.01);
71
+ kMeans.train(chess.getInstanceList(), kMeansParameter);
72
+ assert.ok(Math.abs(83.25 - 100 * kMeans.test(chess.getInstanceList()).getErrorRate()) <= 0.01);
73
+ });
74
+ it('testLoad', function() {
75
+ kMeans.loadModel("models/kMeans-iris.txt");
76
+ assert.ok(Math.abs(7.33 - 100 * kMeans.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
77
+ kMeans.loadModel("models/kMeans-bupa.txt");
78
+ assert.ok(Math.abs(43.77 - 100 * kMeans.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
79
+ kMeans.loadModel("models/kMeans-dermatology.txt");
80
+ assert.ok(Math.abs(45.08 - 100 * kMeans.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
81
+ kMeans.loadModel("models/kMeans-car.txt");
82
+ assert.ok(Math.abs(29.98 - 100 * kMeans.test(car.getInstanceList()).getErrorRate()) <= 0.01);
83
+ kMeans.loadModel("models/kMeans-tictactoe.txt");
84
+ assert.ok(Math.abs(34.66 - 100 * kMeans.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
85
+ kMeans.loadModel("models/kMeans-chess.txt");
86
+ assert.ok(Math.abs(85.83 - 100 * kMeans.test(chess.getInstanceList()).getErrorRate()) <= 0.01);
87
+ });
88
+ });
89
+ });
@@ -0,0 +1,68 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {Knn} from "../../dist/Classifier/Knn";
6
+ import {KnnParameter} from "../../dist/Parameter/KnnParameter";
7
+ import {EuclidianDistance} from "../../dist/DistanceMetric/EuclidianDistance";
8
+
9
+ describe('KnnTest', function() {
10
+ describe('KnnTest', function() {
11
+ let knn = new Knn()
12
+ let knnParameter = new KnnParameter(1, 3, new EuclidianDistance())
13
+ let attributeTypes = new Array<AttributeType>();
14
+ for (let i = 0; i < 4; i++){
15
+ attributeTypes.push(AttributeType.CONTINUOUS)
16
+ }
17
+ let dataDefinition = new DataDefinition(attributeTypes)
18
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
19
+ attributeTypes = new Array<AttributeType>();
20
+ for (let i = 0; i < 6; i++){
21
+ attributeTypes.push(AttributeType.CONTINUOUS)
22
+ }
23
+ dataDefinition = new DataDefinition(attributeTypes)
24
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
25
+ attributeTypes = new Array<AttributeType>()
26
+ for (let i = 0; i < 34; i++){
27
+ attributeTypes.push(AttributeType.CONTINUOUS)
28
+ }
29
+ dataDefinition = new DataDefinition(attributeTypes)
30
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
31
+ attributeTypes = new Array<AttributeType>()
32
+ for (let i = 0; i < 6; i++){
33
+ attributeTypes.push(AttributeType.DISCRETE)
34
+ }
35
+ dataDefinition = new DataDefinition(attributeTypes);
36
+ let car = new DataSet(dataDefinition, ",", "datasets/car.data");
37
+ attributeTypes = new Array<AttributeType>()
38
+ for (let i = 0; i < 9; i++){
39
+ attributeTypes.push(AttributeType.DISCRETE)
40
+ }
41
+ dataDefinition = new DataDefinition(attributeTypes);
42
+ let tictactoe = new DataSet(dataDefinition, ",", "datasets/tictactoe.data")
43
+ it('testTrain', function() {
44
+ knn.train(iris.getInstanceList(), knnParameter);
45
+ assert.ok(Math.abs(4.00 - 100 * knn.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
46
+ knn.train(bupa.getInstanceList(), knnParameter);
47
+ assert.ok(Math.abs(19.42 - 100 * knn.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
48
+ knn.train(dermatology.getInstanceList(), knnParameter);
49
+ assert.ok(Math.abs(3.00 - 100 * knn.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
50
+ knn.train(car.getInstanceList(), knnParameter);
51
+ assert.ok(Math.abs(20.31 - 100 * knn.test(car.getInstanceList()).getErrorRate()) <= 0.01);
52
+ knn.train(tictactoe.getInstanceList(), knnParameter);
53
+ assert.ok(Math.abs(32.57 - 100 * knn.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
54
+ });
55
+ it('testLoad', function() {
56
+ knn.loadModel("models/knn-iris.txt");
57
+ assert.ok(Math.abs(4.00 - 100 * knn.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
58
+ knn.loadModel("models/knn-bupa.txt");
59
+ assert.ok(Math.abs(19.42 - 100 * knn.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
60
+ knn.loadModel("models/knn-dermatology.txt");
61
+ assert.ok(Math.abs(3.00 - 100 * knn.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
62
+ knn.loadModel("models/knn-car.txt");
63
+ assert.ok(Math.abs(29.98 - 100 * knn.test(car.getInstanceList()).getErrorRate()) <= 0.01);
64
+ knn.loadModel("models/knn-tictactoe.txt");
65
+ assert.ok(Math.abs(34.66 - 100 * knn.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
66
+ });
67
+ });
68
+ });
@@ -0,0 +1,45 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {Lda} from "../../dist/Classifier/Lda";
6
+
7
+ describe('LdaTest', function() {
8
+ describe('LdaTest', function() {
9
+ let lda = new Lda()
10
+ let attributeTypes = new Array<AttributeType>();
11
+ for (let i = 0; i < 4; i++){
12
+ attributeTypes.push(AttributeType.CONTINUOUS)
13
+ }
14
+ let dataDefinition = new DataDefinition(attributeTypes)
15
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
16
+ attributeTypes = new Array<AttributeType>();
17
+ for (let i = 0; i < 6; i++){
18
+ attributeTypes.push(AttributeType.CONTINUOUS)
19
+ }
20
+ dataDefinition = new DataDefinition(attributeTypes)
21
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
22
+ attributeTypes = new Array<AttributeType>()
23
+ for (let i = 0; i < 34; i++){
24
+ attributeTypes.push(AttributeType.CONTINUOUS)
25
+ }
26
+ dataDefinition = new DataDefinition(attributeTypes)
27
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
28
+ it('testTrain', function() {
29
+ lda.train(iris.getInstanceList(), null);
30
+ assert.ok(Math.abs(2.00 - 100 * lda.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
31
+ lda.train(bupa.getInstanceList(), null);
32
+ assert.ok(Math.abs(29.57 - 100 * lda.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
33
+ lda.train(dermatology.getInstanceList(), null);
34
+ assert.ok(Math.abs(1.91 - 100 * lda.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
35
+ });
36
+ it('testLoad', function() {
37
+ lda.loadModel("models/lda-iris.txt");
38
+ assert.ok(Math.abs(2.00 - 100 * lda.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
39
+ lda.loadModel("models/lda-bupa.txt");
40
+ assert.ok(Math.abs(29.57 - 100 * lda.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
41
+ lda.loadModel("models/lda-dermatology.txt");
42
+ assert.ok(Math.abs(1.91 - 100 * lda.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
43
+ });
44
+ });
45
+ });
@@ -0,0 +1,49 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {LinearPerceptron} from "../../dist/Classifier/LinearPerceptron";
6
+ import {LinearPerceptronParameter} from "../../dist/Parameter/LinearPerceptronParameter";
7
+
8
+ describe('LinearPerceptronTest', function() {
9
+ describe('LinearPerceptronTest', function() {
10
+ let linearPerceptron = new LinearPerceptron()
11
+ let attributeTypes = new Array<AttributeType>();
12
+ for (let i = 0; i < 4; i++){
13
+ attributeTypes.push(AttributeType.CONTINUOUS)
14
+ }
15
+ let dataDefinition = new DataDefinition(attributeTypes)
16
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
17
+ attributeTypes = new Array<AttributeType>();
18
+ for (let i = 0; i < 6; i++){
19
+ attributeTypes.push(AttributeType.CONTINUOUS)
20
+ }
21
+ dataDefinition = new DataDefinition(attributeTypes)
22
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
23
+ attributeTypes = new Array<AttributeType>()
24
+ for (let i = 0; i < 34; i++){
25
+ attributeTypes.push(AttributeType.CONTINUOUS)
26
+ }
27
+ dataDefinition = new DataDefinition(attributeTypes)
28
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
29
+ it('testTrain', function() {
30
+ let linearPerceptronParameter = new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100)
31
+ linearPerceptron.train(iris.getInstanceList(), linearPerceptronParameter);
32
+ assert.ok(Math.abs(3.33 - 100 * linearPerceptron.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
33
+ linearPerceptronParameter = new LinearPerceptronParameter(1, 0.001, 0.99, 0.2, 100)
34
+ linearPerceptron.train(bupa.getInstanceList(), linearPerceptronParameter);
35
+ assert.ok(Math.abs(33.33 - 100 * linearPerceptron.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
36
+ linearPerceptronParameter = new LinearPerceptronParameter(1, 0.1, 0.99, 0.2, 100)
37
+ linearPerceptron.train(dermatology.getInstanceList(), linearPerceptronParameter);
38
+ assert.ok(Math.abs(1.36 - 100 * linearPerceptron.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
39
+ });
40
+ it('testLoad', function() {
41
+ linearPerceptron.loadModel("models/linearPerceptron-iris.txt");
42
+ assert.ok(Math.abs(3.33 - 100 * linearPerceptron.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
43
+ linearPerceptron.loadModel("models/linearPerceptron-bupa.txt");
44
+ assert.ok(Math.abs(31.88 - 100 * linearPerceptron.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
45
+ linearPerceptron.loadModel("models/linearPerceptron-dermatology.txt");
46
+ assert.ok(Math.abs(0.82 - 100 * linearPerceptron.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
47
+ });
48
+ });
49
+ });
@@ -0,0 +1,51 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {LinearPerceptronParameter} from "../../dist/Parameter/LinearPerceptronParameter";
6
+ import {MultiLayerPerceptron} from "../../dist/Classifier/MultiLayerPerceptron";
7
+ import {MultiLayerPerceptronParameter} from "../../dist/Parameter/MultiLayerPerceptronParameter";
8
+ import {ActivationFunction} from "../../dist/Parameter/ActivationFunction";
9
+
10
+ describe('MultiLayerPerceptronTest', function() {
11
+ describe('MultiLayerPerceptronTest', function() {
12
+ let multiLayerPerceptron = new MultiLayerPerceptron()
13
+ let attributeTypes = new Array<AttributeType>();
14
+ for (let i = 0; i < 4; i++){
15
+ attributeTypes.push(AttributeType.CONTINUOUS)
16
+ }
17
+ let dataDefinition = new DataDefinition(attributeTypes)
18
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
19
+ attributeTypes = new Array<AttributeType>();
20
+ for (let i = 0; i < 6; i++){
21
+ attributeTypes.push(AttributeType.CONTINUOUS)
22
+ }
23
+ dataDefinition = new DataDefinition(attributeTypes)
24
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
25
+ attributeTypes = new Array<AttributeType>()
26
+ for (let i = 0; i < 34; i++){
27
+ attributeTypes.push(AttributeType.CONTINUOUS)
28
+ }
29
+ dataDefinition = new DataDefinition(attributeTypes)
30
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
31
+ it('testTrain', function() {
32
+ let multiLayerPerceptronParameter = new MultiLayerPerceptronParameter(1, 0.1, 0.99, 0.2, 100, 3, ActivationFunction.SIGMOID)
33
+ multiLayerPerceptron.train(iris.getInstanceList(), multiLayerPerceptronParameter);
34
+ assert.ok(Math.abs(7.33 - 100 * multiLayerPerceptron.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
35
+ multiLayerPerceptronParameter = new MultiLayerPerceptronParameter(1, 0.01, 0.99, 0.2, 100, 30, ActivationFunction.SIGMOID)
36
+ multiLayerPerceptron.train(bupa.getInstanceList(), multiLayerPerceptronParameter);
37
+ assert.ok(Math.abs(29.57 - 100 * multiLayerPerceptron.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
38
+ multiLayerPerceptronParameter = new MultiLayerPerceptronParameter(1, 0.01, 0.99, 0.2, 100, 20, ActivationFunction.SIGMOID)
39
+ multiLayerPerceptron.train(dermatology.getInstanceList(), multiLayerPerceptronParameter);
40
+ assert.ok(Math.abs(2.19 - 100 * multiLayerPerceptron.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
41
+ });
42
+ it('testLoad', function() {
43
+ multiLayerPerceptron.loadModel("models/multiLayerPerceptron-iris.txt");
44
+ assert.ok(Math.abs(2.67 - 100 * multiLayerPerceptron.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
45
+ multiLayerPerceptron.loadModel("models/multiLayerPerceptron-bupa.txt");
46
+ assert.ok(Math.abs(27.54 - 100 * multiLayerPerceptron.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
47
+ multiLayerPerceptron.loadModel("models/multiLayerPerceptron-dermatology.txt");
48
+ assert.ok(Math.abs(1.09 - 100 * multiLayerPerceptron.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
49
+ });
50
+ });
51
+ });
@@ -0,0 +1,45 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {NaiveBayes} from "../../dist/Classifier/NaiveBayes";
6
+
7
+ describe('NaiveBayesTest', function() {
8
+ describe('NaiveBayesTest', function() {
9
+ let naiveBayes = new NaiveBayes()
10
+ let attributeTypes = new Array<AttributeType>();
11
+ for (let i = 0; i < 4; i++){
12
+ attributeTypes.push(AttributeType.CONTINUOUS)
13
+ }
14
+ let dataDefinition = new DataDefinition(attributeTypes)
15
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
16
+ attributeTypes = new Array<AttributeType>();
17
+ for (let i = 0; i < 6; i++){
18
+ attributeTypes.push(AttributeType.CONTINUOUS)
19
+ }
20
+ dataDefinition = new DataDefinition(attributeTypes)
21
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
22
+ attributeTypes = new Array<AttributeType>()
23
+ for (let i = 0; i < 34; i++){
24
+ attributeTypes.push(AttributeType.CONTINUOUS)
25
+ }
26
+ dataDefinition = new DataDefinition(attributeTypes)
27
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
28
+ it('testTrain', function() {
29
+ naiveBayes.train(iris.getInstanceList(), null);
30
+ assert.ok(Math.abs(5.33 - 100 * naiveBayes.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
31
+ naiveBayes.train(bupa.getInstanceList(), null);
32
+ assert.ok(Math.abs(38.55 - 100 * naiveBayes.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
33
+ naiveBayes.train(dermatology.getInstanceList(), null);
34
+ assert.ok(Math.abs(9.56 - 100 * naiveBayes.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
35
+ });
36
+ it('testLoad', function() {
37
+ naiveBayes.loadModel("models/naiveBayes-iris.txt");
38
+ assert.ok(Math.abs(5.33 - 100 * naiveBayes.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
39
+ naiveBayes.loadModel("models/naiveBayes-bupa.txt");
40
+ assert.ok(Math.abs(38.55 - 100 * naiveBayes.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
41
+ naiveBayes.loadModel("models/naiveBayes-dermatology.txt");
42
+ assert.ok(Math.abs(9.56 - 100 * naiveBayes.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
43
+ });
44
+ });
45
+ });
@@ -0,0 +1,35 @@
1
+ import * as assert from "assert";
2
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
3
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
4
+ import {DataSet} from "../../dist/DataSet/DataSet";
5
+ import {Qda} from "../../dist/Classifier/Qda";
6
+
7
+ describe('QdaTest', function() {
8
+ describe('QdaTest', function() {
9
+ let qda = new Qda()
10
+ let attributeTypes = new Array<AttributeType>();
11
+ for (let i = 0; i < 4; i++){
12
+ attributeTypes.push(AttributeType.CONTINUOUS)
13
+ }
14
+ let dataDefinition = new DataDefinition(attributeTypes)
15
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
16
+ attributeTypes = new Array<AttributeType>();
17
+ for (let i = 0; i < 6; i++){
18
+ attributeTypes.push(AttributeType.CONTINUOUS)
19
+ }
20
+ dataDefinition = new DataDefinition(attributeTypes)
21
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
22
+ it('testTrain', function() {
23
+ qda.train(iris.getInstanceList(), null);
24
+ assert.ok(Math.abs(2.00 - 100 * qda.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
25
+ qda.train(bupa.getInstanceList(), null);
26
+ assert.ok(Math.abs(36.52 - 100 * qda.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
27
+ });
28
+ it('testLoad', function() {
29
+ qda.loadModel("models/qda-iris.txt");
30
+ assert.ok(Math.abs(2.00 - 100 * qda.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
31
+ qda.loadModel("models/qda-bupa.txt");
32
+ assert.ok(Math.abs(36.52 - 100 * qda.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
33
+ });
34
+ });
35
+ });
@@ -0,0 +1,68 @@
1
+ import {AttributeType} from "../../dist/Attribute/AttributeType";
2
+ import {DataDefinition} from "../../dist/DataSet/DataDefinition";
3
+ import {DataSet} from "../../dist/DataSet/DataSet";
4
+ import * as assert from "assert";
5
+ import {RandomForest} from "../../dist/Classifier/RandomForest";
6
+ import {RandomForestParameter} from "../../dist/Parameter/RandomForestParameter";
7
+
8
+ describe('RandomForestTest', function() {
9
+ describe('RandomForestTest', function() {
10
+ let randomForest = new RandomForest()
11
+ let randomForestParameter = new RandomForestParameter(1, 100, 35)
12
+ let attributeTypes = new Array<AttributeType>();
13
+ for (let i = 0; i < 4; i++){
14
+ attributeTypes.push(AttributeType.CONTINUOUS)
15
+ }
16
+ let dataDefinition = new DataDefinition(attributeTypes)
17
+ let iris = new DataSet(dataDefinition, ",", "datasets/iris.data")
18
+ attributeTypes = new Array<AttributeType>();
19
+ for (let i = 0; i < 6; i++){
20
+ attributeTypes.push(AttributeType.CONTINUOUS)
21
+ }
22
+ dataDefinition = new DataDefinition(attributeTypes)
23
+ let bupa = new DataSet(dataDefinition, ",", "datasets/bupa.data")
24
+ attributeTypes = new Array<AttributeType>()
25
+ for (let i = 0; i < 34; i++){
26
+ attributeTypes.push(AttributeType.CONTINUOUS)
27
+ }
28
+ dataDefinition = new DataDefinition(attributeTypes)
29
+ let dermatology = new DataSet(dataDefinition, ",", "datasets/dermatology.data")
30
+ attributeTypes = new Array<AttributeType>()
31
+ for (let i = 0; i < 6; i++){
32
+ attributeTypes.push(AttributeType.DISCRETE)
33
+ }
34
+ dataDefinition = new DataDefinition(attributeTypes);
35
+ let car = new DataSet(dataDefinition, ",", "datasets/car.data");
36
+ attributeTypes = new Array<AttributeType>()
37
+ for (let i = 0; i < 9; i++){
38
+ attributeTypes.push(AttributeType.DISCRETE)
39
+ }
40
+ dataDefinition = new DataDefinition(attributeTypes);
41
+ let tictactoe = new DataSet(dataDefinition, ",", "datasets/tictactoe.data")
42
+ it('testTrain', function() {
43
+ this.timeout(4000);
44
+ randomForest.train(iris.getInstanceList(), randomForestParameter);
45
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
46
+ randomForest.train(bupa.getInstanceList(), randomForestParameter);
47
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
48
+ randomForest.train(dermatology.getInstanceList(), randomForestParameter);
49
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
50
+ randomForest.train(car.getInstanceList(), randomForestParameter);
51
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(car.getInstanceList()).getErrorRate()) <= 0.01);
52
+ randomForest.train(tictactoe.getInstanceList(), randomForestParameter);
53
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
54
+ });
55
+ it('testLoad', function() {
56
+ randomForest.loadModel("models/randomforest-iris.txt");
57
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(iris.getInstanceList()).getErrorRate()) <= 0.01);
58
+ randomForest.loadModel("models/randomforest-bupa.txt");
59
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(bupa.getInstanceList()).getErrorRate()) <= 0.01);
60
+ randomForest.loadModel("models/randomforest-dermatology.txt");
61
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(dermatology.getInstanceList()).getErrorRate()) <= 0.01);
62
+ randomForest.loadModel("models/randomforest-car.txt");
63
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(car.getInstanceList()).getErrorRate()) <= 0.01);
64
+ randomForest.loadModel("models/randomforest-tictactoe.txt");
65
+ assert.ok(Math.abs(0.00 - 100 * randomForest.test(tictactoe.getInstanceList()).getErrorRate()) <= 0.01);
66
+ });
67
+ });
68
+ });