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.
- package/dist/Classifier/Bagging.d.ts +1 -0
- package/dist/Classifier/Bagging.js +3 -0
- package/dist/Classifier/Bagging.js.map +1 -1
- package/dist/Classifier/C45.d.ts +1 -0
- package/dist/Classifier/C45.js +3 -0
- package/dist/Classifier/C45.js.map +1 -1
- package/dist/Classifier/C45Stump.d.ts +1 -0
- package/dist/Classifier/C45Stump.js +3 -0
- package/dist/Classifier/C45Stump.js.map +1 -1
- package/dist/Classifier/Classifier.d.ts +1 -0
- package/dist/Classifier/Classifier.js.map +1 -1
- package/dist/Classifier/DeepNetwork.d.ts +1 -0
- package/dist/Classifier/DeepNetwork.js +3 -0
- package/dist/Classifier/DeepNetwork.js.map +1 -1
- package/dist/Classifier/Dummy.d.ts +1 -0
- package/dist/Classifier/Dummy.js +3 -0
- package/dist/Classifier/Dummy.js.map +1 -1
- package/dist/Classifier/KMeans.d.ts +1 -0
- package/dist/Classifier/KMeans.js +3 -0
- package/dist/Classifier/KMeans.js.map +1 -1
- package/dist/Classifier/Knn.d.ts +1 -0
- package/dist/Classifier/Knn.js +3 -0
- package/dist/Classifier/Knn.js.map +1 -1
- package/dist/Classifier/Lda.d.ts +1 -0
- package/dist/Classifier/Lda.js +3 -0
- package/dist/Classifier/Lda.js.map +1 -1
- package/dist/Classifier/LinearPerceptron.d.ts +1 -0
- package/dist/Classifier/LinearPerceptron.js +3 -0
- package/dist/Classifier/LinearPerceptron.js.map +1 -1
- package/dist/Classifier/MultiLayerPerceptron.d.ts +1 -0
- package/dist/Classifier/MultiLayerPerceptron.js +3 -0
- package/dist/Classifier/MultiLayerPerceptron.js.map +1 -1
- package/dist/Classifier/NaiveBayes.d.ts +1 -0
- package/dist/Classifier/NaiveBayes.js +3 -0
- package/dist/Classifier/NaiveBayes.js.map +1 -1
- package/dist/Classifier/Qda.d.ts +1 -0
- package/dist/Classifier/Qda.js +3 -0
- package/dist/Classifier/Qda.js.map +1 -1
- package/dist/Classifier/RandomClassifier.d.ts +1 -0
- package/dist/Classifier/RandomClassifier.js +3 -0
- package/dist/Classifier/RandomClassifier.js.map +1 -1
- package/dist/Classifier/RandomForest.d.ts +1 -0
- package/dist/Classifier/RandomForest.js +3 -0
- package/dist/Classifier/RandomForest.js.map +1 -1
- package/dist/DataSet/DataSet.js +1 -1
- package/dist/DataSet/DataSet.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionNode.d.ts +6 -3
- package/dist/Model/DecisionTree/DecisionNode.js +43 -3
- package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionTree.d.ts +4 -3
- package/dist/Model/DecisionTree/DecisionTree.js +14 -4
- package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
- package/dist/Model/DeepNetworkModel.d.ts +6 -3
- package/dist/Model/DeepNetworkModel.js +53 -30
- package/dist/Model/DeepNetworkModel.js.map +1 -1
- package/dist/Model/DummyModel.d.ts +2 -1
- package/dist/Model/DummyModel.js +22 -2
- package/dist/Model/DummyModel.js.map +1 -1
- package/dist/Model/GaussianModel.d.ts +4 -0
- package/dist/Model/GaussianModel.js +28 -1
- package/dist/Model/GaussianModel.js.map +1 -1
- package/dist/Model/KMeansModel.d.ts +3 -2
- package/dist/Model/KMeansModel.js +19 -6
- package/dist/Model/KMeansModel.js.map +1 -1
- package/dist/Model/KnnModel.d.ts +3 -2
- package/dist/Model/KnnModel.js +18 -6
- package/dist/Model/KnnModel.js.map +1 -1
- package/dist/Model/LdaModel.d.ts +5 -2
- package/dist/Model/LdaModel.js +28 -6
- package/dist/Model/LdaModel.js.map +1 -1
- package/dist/Model/LinearPerceptronModel.d.ts +5 -2
- package/dist/Model/LinearPerceptronModel.js +38 -10
- package/dist/Model/LinearPerceptronModel.js.map +1 -1
- package/dist/Model/Model.d.ts +7 -0
- package/dist/Model/Model.js +40 -1
- package/dist/Model/Model.js.map +1 -1
- package/dist/Model/MultiLayerPerceptronModel.d.ts +5 -2
- package/dist/Model/MultiLayerPerceptronModel.js +33 -13
- package/dist/Model/MultiLayerPerceptronModel.js.map +1 -1
- package/dist/Model/NaiveBayesModel.d.ts +2 -1
- package/dist/Model/NaiveBayesModel.js +18 -6
- package/dist/Model/NaiveBayesModel.js.map +1 -1
- package/dist/Model/NeuralNetworkModel.d.ts +4 -1
- package/dist/Model/NeuralNetworkModel.js +27 -6
- package/dist/Model/NeuralNetworkModel.js.map +1 -1
- package/dist/Model/QdaModel.d.ts +3 -2
- package/dist/Model/QdaModel.js +23 -5
- package/dist/Model/QdaModel.js.map +1 -1
- package/dist/Model/RandomModel.d.ts +4 -2
- package/dist/Model/RandomModel.js +20 -4
- package/dist/Model/RandomModel.js.map +1 -1
- package/dist/Model/TreeEnsembleModel.d.ts +3 -2
- package/dist/Model/TreeEnsembleModel.js +19 -4
- package/dist/Model/TreeEnsembleModel.js.map +1 -1
- package/models/bagging-bupa.txt +25666 -0
- package/models/bagging-car.txt +78923 -0
- package/models/bagging-dermatology.txt +7276 -0
- package/models/bagging-iris.txt +3131 -0
- package/models/bagging-tictactoe.txt +61186 -0
- package/models/c45-bupa.txt +3 -0
- package/models/c45-car.txt +331 -0
- package/models/c45-dermatology.txt +43 -0
- package/models/c45-iris.txt +13 -0
- package/models/c45-tictactoe.txt +270 -0
- package/models/c45stump-bupa.txt +8 -0
- package/models/c45stump-car.txt +11 -0
- package/models/c45stump-chess.txt +8 -0
- package/models/c45stump-dermatology.txt +8 -0
- package/models/c45stump-iris.txt +8 -0
- package/models/c45stump-nursery.txt +11 -0
- package/models/c45stump-tictactoe.txt +11 -0
- package/models/deepNetwork-bupa.txt +40 -0
- package/models/deepNetwork-dermatology.txt +37 -0
- package/models/deepNetwork-iris.txt +22 -0
- package/models/dummy-bupa.txt +3 -0
- package/models/dummy-car.txt +5 -0
- package/models/dummy-chess.txt +19 -0
- package/models/dummy-dermatology.txt +7 -0
- package/models/dummy-iris.txt +4 -0
- package/models/dummy-nursery.txt +6 -0
- package/models/dummy-tictactoe.txt +3 -0
- package/models/kMeans-bupa.txt +7 -0
- package/models/kMeans-car.txt +11 -0
- package/models/kMeans-chess.txt +39 -0
- package/models/kMeans-dermatology.txt +15 -0
- package/models/kMeans-iris.txt +9 -0
- package/models/kMeans-nursery.txt +13 -0
- package/models/kMeans-tictactoe.txt +7 -0
- package/models/knn-bupa.txt +348 -0
- package/models/knn-car.txt +1731 -0
- package/models/knn-dermatology.txt +369 -0
- package/models/knn-iris.txt +153 -0
- package/models/knn-tictactoe.txt +961 -0
- package/models/lda-bupa.txt +7 -0
- package/models/lda-dermatology.txt +19 -0
- package/models/lda-iris.txt +10 -0
- package/models/linearPerceptron-bupa.txt +6 -0
- package/models/linearPerceptron-dermatology.txt +14 -0
- package/models/linearPerceptron-iris.txt +8 -0
- package/models/multiLayerPerceptron-bupa.txt +38 -0
- package/models/multiLayerPerceptron-dermatology.txt +36 -0
- package/models/multiLayerPerceptron-iris.txt +13 -0
- package/models/naiveBayes-bupa.txt +7 -0
- package/models/naiveBayes-dermatology.txt +19 -0
- package/models/naiveBayes-iris.txt +10 -0
- package/models/qda-bupa.txt +23 -0
- package/models/qda-iris.txt +28 -0
- package/models/random-bupa.txt +4 -0
- package/models/random-car.txt +6 -0
- package/models/random-chess.txt +20 -0
- package/models/random-dermatology.txt +8 -0
- package/models/random-iris.txt +5 -0
- package/models/random-nursery.txt +7 -0
- package/models/random-tictactoe.txt +4 -0
- package/models/randomforest-bupa.txt +25666 -0
- package/models/randomforest-car.txt +78923 -0
- package/models/randomforest-dermatology.txt +7276 -0
- package/models/randomforest-iris.txt +3131 -0
- package/models/randomforest-tictactoe.txt +61186 -0
- package/package.json +3 -3
- package/source/Classifier/Bagging.ts +3 -0
- package/source/Classifier/C45.ts +4 -0
- package/source/Classifier/C45Stump.ts +4 -0
- package/source/Classifier/Classifier.ts +1 -0
- package/source/Classifier/DeepNetwork.ts +4 -0
- package/source/Classifier/Dummy.ts +4 -0
- package/source/Classifier/KMeans.ts +4 -0
- package/source/Classifier/Knn.ts +5 -1
- package/source/Classifier/Lda.ts +4 -0
- package/source/Classifier/LinearPerceptron.ts +4 -0
- package/source/Classifier/MultiLayerPerceptron.ts +4 -0
- package/source/Classifier/NaiveBayes.ts +4 -0
- package/source/Classifier/Qda.ts +4 -0
- package/source/Classifier/RandomClassifier.ts +4 -0
- package/source/Classifier/RandomForest.ts +4 -0
- package/source/DataSet/DataSet.ts +1 -1
- package/source/Model/DecisionTree/DecisionNode.ts +65 -29
- package/source/Model/DecisionTree/DecisionTree.ts +14 -4
- package/source/Model/DeepNetworkModel.ts +40 -16
- package/source/Model/DummyModel.ts +20 -2
- package/source/Model/GaussianModel.ts +29 -0
- package/source/Model/KMeansModel.ts +18 -6
- package/source/Model/KnnModel.ts +19 -6
- package/source/Model/LdaModel.ts +29 -6
- package/source/Model/LinearPerceptronModel.ts +52 -25
- package/source/Model/Model.ts +43 -0
- package/source/Model/MultiLayerPerceptronModel.ts +34 -12
- package/source/Model/NaiveBayesModel.ts +19 -7
- package/source/Model/NeuralNetworkModel.ts +31 -7
- package/source/Model/QdaModel.ts +22 -4
- package/source/Model/RandomModel.ts +21 -4
- package/source/Model/TreeEnsembleModel.ts +17 -3
- package/tests/Classifier/C45Test.ts +67 -0
- package/tests/Classifier/DeepNetworkTest.ts +52 -0
- package/tests/Classifier/DummyTest.ts +89 -0
- package/tests/Classifier/KMeansTest.ts +89 -0
- package/tests/Classifier/KnnTest.ts +68 -0
- package/tests/Classifier/LdaTest.ts +45 -0
- package/tests/Classifier/LinearPerceptronTest.ts +49 -0
- package/tests/Classifier/MultiLayerPerceptronTest.ts +51 -0
- package/tests/Classifier/NaiveBayesTest.ts +45 -0
- package/tests/Classifier/QdaTest.ts +35 -0
- 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
|
+
});
|