nlptoolkit-classification 1.0.2 → 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/README.md +5 -0
- 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/InstanceList/Partition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionNode.d.ts +6 -3
- package/dist/Model/DecisionTree/DecisionNode.js +50 -10
- 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 +7 -5
- 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/InstanceList/Partition.ts +1 -1
- package/source/Model/DecisionTree/DecisionNode.ts +72 -35
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionNode.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionNode.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DecisionNode.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,13 @@ import { DecisionNode } from "./DecisionNode";
|
|
|
3
3
|
import { Instance } from "../../Instance/Instance";
|
|
4
4
|
import { InstanceList } from "../../InstanceList/InstanceList";
|
|
5
5
|
export declare class DecisionTree extends ValidatedModel {
|
|
6
|
-
private root;
|
|
6
|
+
private readonly root;
|
|
7
7
|
/**
|
|
8
8
|
* Constructor that sets root node of the decision tree.
|
|
9
9
|
*
|
|
10
|
-
* @param
|
|
10
|
+
* @param rootOrFileName DecisionNode type input or fileName
|
|
11
11
|
*/
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(rootOrFileName: DecisionNode | string);
|
|
13
13
|
/**
|
|
14
14
|
* The predict method performs prediction on the root node of given instance, and if it is null, it returns the possible class labels.
|
|
15
15
|
* Otherwise it returns the returned class labels.
|
|
@@ -19,6 +19,7 @@ export declare class DecisionTree extends ValidatedModel {
|
|
|
19
19
|
*/
|
|
20
20
|
predict(instance: Instance): string;
|
|
21
21
|
predictProbability(instance: Instance): Map<string, number>;
|
|
22
|
+
saveTxt(fileName: string): void;
|
|
22
23
|
/**
|
|
23
24
|
* The prune method takes a {@link DecisionNode} and an {@link InstanceList} as inputs. It checks the classification performance
|
|
24
25
|
* of given InstanceList before pruning, i.e making a node leaf, and after pruning. If the after performance is better than the
|
|
@@ -4,23 +4,31 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "../ValidatedModel", "../../Instance/CompositeInstance"], factory);
|
|
7
|
+
define(["require", "exports", "../ValidatedModel", "./DecisionNode", "../../Instance/CompositeInstance", "nlptoolkit-util/dist/FileContents"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.DecisionTree = void 0;
|
|
13
13
|
const ValidatedModel_1 = require("../ValidatedModel");
|
|
14
|
+
const DecisionNode_1 = require("./DecisionNode");
|
|
14
15
|
const CompositeInstance_1 = require("../../Instance/CompositeInstance");
|
|
16
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
15
17
|
class DecisionTree extends ValidatedModel_1.ValidatedModel {
|
|
16
18
|
/**
|
|
17
19
|
* Constructor that sets root node of the decision tree.
|
|
18
20
|
*
|
|
19
|
-
* @param
|
|
21
|
+
* @param rootOrFileName DecisionNode type input or fileName
|
|
20
22
|
*/
|
|
21
|
-
constructor(
|
|
23
|
+
constructor(rootOrFileName) {
|
|
22
24
|
super();
|
|
23
|
-
|
|
25
|
+
if (rootOrFileName instanceof DecisionNode_1.DecisionNode) {
|
|
26
|
+
this.root = rootOrFileName;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
let contents = new FileContents_1.FileContents(rootOrFileName);
|
|
30
|
+
this.root = new DecisionNode_1.DecisionNode(contents);
|
|
31
|
+
}
|
|
24
32
|
}
|
|
25
33
|
/**
|
|
26
34
|
* The predict method performs prediction on the root node of given instance, and if it is null, it returns the possible class labels.
|
|
@@ -39,6 +47,8 @@
|
|
|
39
47
|
predictProbability(instance) {
|
|
40
48
|
return this.root.predictProbabilityDistribution(instance);
|
|
41
49
|
}
|
|
50
|
+
saveTxt(fileName) {
|
|
51
|
+
}
|
|
42
52
|
/**
|
|
43
53
|
* The prune method takes a {@link DecisionNode} and an {@link InstanceList} as inputs. It checks the classification performance
|
|
44
54
|
* of given InstanceList before pruning, i.e making a node leaf, and after pruning. If the after performance is better than the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionTree.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionTree.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,sDAAiD;
|
|
1
|
+
{"version":3,"file":"DecisionTree.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionTree.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,sDAAiD;IACjD,iDAA4C;IAE5C,wEAAmE;IAGnE,oEAA+D;IAE/D,MAAa,YAAa,SAAQ,+BAAc;QAI5C;;;;WAIG;QACH,YAAY,cAAqC;YAC7C,KAAK,EAAE,CAAC;YACR,IAAI,cAAc,YAAY,2BAAY,EAAC;gBACvC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;aAC7B;iBAAM;gBACH,IAAI,QAAQ,GAAG,IAAI,2BAAY,CAAC,cAAc,CAAC,CAAA;gBAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;aACzC;QACL,CAAC;QAED;;;;;;WAMG;QACH,OAAO,CAAC,QAAkB;YACtB,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,YAAY,qCAAiB,CAAC,CAAC,EAAE;gBACvE,cAAc,GAAwB,QAAS,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC;aAC/E;YACD,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,kBAAkB,CAAC,QAAkB;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAA;QAC7D,CAAC;QAED,OAAO,CAAC,QAAgB;QACxB,CAAC;QAED;;;;;;;WAOG;QACH,SAAS,CAAC,IAAkB,EAAE,QAAsB;YAChD,IAAI,IAAI,CAAC,IAAI,EAAC;gBACV,OAAO;aACV;YACD,IAAI,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,EAAE;gBAC5C,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;iBACnC;aACJ;QACL,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,QAAsB;YACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;KACJ;IAxED,oCAwEC"}
|
|
@@ -4,7 +4,7 @@ import { InstanceList } from "../InstanceList/InstanceList";
|
|
|
4
4
|
export declare class DeepNetworkModel extends NeuralNetworkModel {
|
|
5
5
|
private weights;
|
|
6
6
|
private hiddenLayerSize;
|
|
7
|
-
private
|
|
7
|
+
private activationFunction;
|
|
8
8
|
/**
|
|
9
9
|
* The allocateWeights method takes {@link DeepNetworkParameter}s as an input. First it adds random weights to the {@link Array}
|
|
10
10
|
* of {@link Matrix} weights' first layer. Then it loops through the layers and adds random weights till the last layer.
|
|
@@ -20,6 +20,8 @@ export declare class DeepNetworkModel extends NeuralNetworkModel {
|
|
|
20
20
|
* @return An {@link Array} clones from the weights ArrayList.
|
|
21
21
|
*/
|
|
22
22
|
private setBestWeights;
|
|
23
|
+
constructor1(trainSet: InstanceList, validationSet: InstanceList, parameters: DeepNetworkParameter): void;
|
|
24
|
+
constructor2(fileName: string): void;
|
|
23
25
|
/**
|
|
24
26
|
* Constructor that takes two {@link InstanceList} train set and validation set and {@link DeepNetworkParameter} as inputs.
|
|
25
27
|
* First it sets the class labels, their sizes as K and the size of the continuous attributes as d of given train set and
|
|
@@ -29,14 +31,15 @@ export declare class DeepNetworkModel extends NeuralNetworkModel {
|
|
|
29
31
|
* bestWeights according to the current situation. At the end it updates the learning rate via etaDecrease value and finishes
|
|
30
32
|
* with clearing the weights.
|
|
31
33
|
*
|
|
32
|
-
* @param
|
|
34
|
+
* @param trainSetOrFileName {@link InstanceList} to be used as trainSet.
|
|
33
35
|
* @param validationSet {@link InstanceList} to be used as validationSet.
|
|
34
36
|
* @param parameters {@link DeepNetworkParameter} input.
|
|
35
37
|
*/
|
|
36
|
-
constructor(
|
|
38
|
+
constructor(trainSetOrFileName: InstanceList | string, validationSet?: InstanceList, parameters?: DeepNetworkParameter);
|
|
37
39
|
/**
|
|
38
40
|
* The calculateOutput method loops size of the weights times and calculate one hidden layer at a time and adds bias term.
|
|
39
41
|
* At the end it updates the output y value.
|
|
40
42
|
*/
|
|
41
43
|
protected calculateOutput(): void;
|
|
44
|
+
saveTxt(fileName: string): void;
|
|
42
45
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./NeuralNetworkModel", "nlptoolkit-math/dist/Matrix", "../Parameter/ActivationFunction", "nlptoolkit-math/dist/Vector", "../Performance/ClassificationPerformance", "nlptoolkit-util/dist/Random"], factory);
|
|
7
|
+
define(["require", "exports", "./NeuralNetworkModel", "nlptoolkit-math/dist/Matrix", "../Parameter/ActivationFunction", "../InstanceList/InstanceList", "nlptoolkit-math/dist/Vector", "../Performance/ClassificationPerformance", "nlptoolkit-util/dist/Random", "nlptoolkit-util/dist/FileContents"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
const NeuralNetworkModel_1 = require("./NeuralNetworkModel");
|
|
14
14
|
const Matrix_1 = require("nlptoolkit-math/dist/Matrix");
|
|
15
15
|
const ActivationFunction_1 = require("../Parameter/ActivationFunction");
|
|
16
|
+
const InstanceList_1 = require("../InstanceList/InstanceList");
|
|
16
17
|
const Vector_1 = require("nlptoolkit-math/dist/Vector");
|
|
17
18
|
const ClassificationPerformance_1 = require("../Performance/ClassificationPerformance");
|
|
18
19
|
const Random_1 = require("nlptoolkit-util/dist/Random");
|
|
20
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
19
21
|
class DeepNetworkModel extends NeuralNetworkModel_1.NeuralNetworkModel {
|
|
20
22
|
/**
|
|
21
23
|
* Constructor that takes two {@link InstanceList} train set and validation set and {@link DeepNetworkParameter} as inputs.
|
|
@@ -26,12 +28,50 @@
|
|
|
26
28
|
* bestWeights according to the current situation. At the end it updates the learning rate via etaDecrease value and finishes
|
|
27
29
|
* with clearing the weights.
|
|
28
30
|
*
|
|
29
|
-
* @param
|
|
31
|
+
* @param trainSetOrFileName {@link InstanceList} to be used as trainSet.
|
|
30
32
|
* @param validationSet {@link InstanceList} to be used as validationSet.
|
|
31
33
|
* @param parameters {@link DeepNetworkParameter} input.
|
|
32
34
|
*/
|
|
33
|
-
constructor(
|
|
34
|
-
|
|
35
|
+
constructor(trainSetOrFileName, validationSet, parameters) {
|
|
36
|
+
if (trainSetOrFileName instanceof InstanceList_1.InstanceList) {
|
|
37
|
+
super(trainSetOrFileName);
|
|
38
|
+
this.constructor1(trainSetOrFileName, validationSet, parameters);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
super();
|
|
42
|
+
this.constructor2(trainSetOrFileName);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The allocateWeights method takes {@link DeepNetworkParameter}s as an input. First it adds random weights to the {@link Array}
|
|
47
|
+
* of {@link Matrix} weights' first layer. Then it loops through the layers and adds random weights till the last layer.
|
|
48
|
+
* At the end it adds random weights to the last layer and also sets the hiddenLayerSize value.
|
|
49
|
+
*
|
|
50
|
+
* @param parameters {@link DeepNetworkParameter} input.
|
|
51
|
+
*/
|
|
52
|
+
allocateWeights(parameters) {
|
|
53
|
+
this.weights = new Array();
|
|
54
|
+
this.weights.push(this.allocateLayerWeights(parameters.getHiddenNodes(0), this.d + 1, new Random_1.Random(parameters.getSeed())));
|
|
55
|
+
for (let i = 0; i < parameters.layerSize() - 1; i++) {
|
|
56
|
+
this.weights.push(this.allocateLayerWeights(parameters.getHiddenNodes(i + 1), parameters.getHiddenNodes(i) + 1, new Random_1.Random(parameters.getSeed())));
|
|
57
|
+
}
|
|
58
|
+
this.weights.push(this.allocateLayerWeights(this.K, parameters.getHiddenNodes(parameters.layerSize() - 1) + 1, new Random_1.Random(parameters.getSeed())));
|
|
59
|
+
this.hiddenLayerSize = parameters.layerSize();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The setBestWeights method creates an {@link Array} of Matrix as bestWeights and clones the values of weights {@link Array}
|
|
63
|
+
* into this newly created {@link Array}.
|
|
64
|
+
*
|
|
65
|
+
* @return An {@link Array} clones from the weights ArrayList.
|
|
66
|
+
*/
|
|
67
|
+
setBestWeights() {
|
|
68
|
+
let bestWeights = new Array();
|
|
69
|
+
for (let m of this.weights) {
|
|
70
|
+
bestWeights.push(m.clone());
|
|
71
|
+
}
|
|
72
|
+
return bestWeights;
|
|
73
|
+
}
|
|
74
|
+
constructor1(trainSet, validationSet, parameters) {
|
|
35
75
|
let tmpHidden = new Vector_1.Vector(0, 0);
|
|
36
76
|
let deltaWeights = new Array();
|
|
37
77
|
let hidden = new Array();
|
|
@@ -111,34 +151,15 @@
|
|
|
111
151
|
this.weights.push(m);
|
|
112
152
|
}
|
|
113
153
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
* @param parameters {@link DeepNetworkParameter} input.
|
|
120
|
-
*/
|
|
121
|
-
allocateWeights(parameters) {
|
|
154
|
+
constructor2(fileName) {
|
|
155
|
+
let input = new FileContents_1.FileContents(fileName);
|
|
156
|
+
this.activationFunction = this.loadActivationFunction(input);
|
|
157
|
+
this.loadClassLabels(input);
|
|
158
|
+
this.hiddenLayerSize = parseInt(input.readLine());
|
|
122
159
|
this.weights = new Array();
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
this.weights.push(this.allocateLayerWeights(parameters.getHiddenNodes(i + 1), parameters.getHiddenNodes(i) + 1, new Random_1.Random(parameters.getSeed())));
|
|
160
|
+
for (let i = 0; i < this.hiddenLayerSize + 1; i++) {
|
|
161
|
+
this.weights.push(this.loadMatrix(input));
|
|
126
162
|
}
|
|
127
|
-
this.weights.push(this.allocateLayerWeights(this.K, parameters.getHiddenNodes(parameters.layerSize() - 1) + 1, new Random_1.Random(parameters.getSeed())));
|
|
128
|
-
this.hiddenLayerSize = parameters.layerSize();
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* The setBestWeights method creates an {@link Array} of Matrix as bestWeights and clones the values of weights {@link Array}
|
|
132
|
-
* into this newly created {@link Array}.
|
|
133
|
-
*
|
|
134
|
-
* @return An {@link Array} clones from the weights ArrayList.
|
|
135
|
-
*/
|
|
136
|
-
setBestWeights() {
|
|
137
|
-
let bestWeights = new Array();
|
|
138
|
-
for (let m of this.weights) {
|
|
139
|
-
bestWeights.push(m.clone());
|
|
140
|
-
}
|
|
141
|
-
return bestWeights;
|
|
142
163
|
}
|
|
143
164
|
/**
|
|
144
165
|
* The calculateOutput method loops size of the weights times and calculate one hidden layer at a time and adds bias term.
|
|
@@ -158,6 +179,8 @@
|
|
|
158
179
|
}
|
|
159
180
|
this.y = this.weights[this.weights.length - 1].multiplyWithVectorFromRight(hiddenBiased);
|
|
160
181
|
}
|
|
182
|
+
saveTxt(fileName) {
|
|
183
|
+
}
|
|
161
184
|
}
|
|
162
185
|
exports.DeepNetworkModel = DeepNetworkModel;
|
|
163
186
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepNetworkModel.js","sourceRoot":"","sources":["../../source/Model/DeepNetworkModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6DAAwD;IACxD,wDAAmD;IACnD,wEAAmE;
|
|
1
|
+
{"version":3,"file":"DeepNetworkModel.js","sourceRoot":"","sources":["../../source/Model/DeepNetworkModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export declare class DummyModel extends Model {
|
|
|
8
8
|
*
|
|
9
9
|
* @param trainSet {@link InstanceList} which is used to get the class distribution.
|
|
10
10
|
*/
|
|
11
|
-
constructor(trainSet: InstanceList);
|
|
11
|
+
constructor(trainSet: InstanceList | string);
|
|
12
12
|
/**
|
|
13
13
|
* The predict method takes an Instance as an input and returns the entry of distribution which has the maximum value.
|
|
14
14
|
*
|
|
@@ -17,4 +17,5 @@ export declare class DummyModel extends Model {
|
|
|
17
17
|
*/
|
|
18
18
|
predict(instance: Instance): string;
|
|
19
19
|
predictProbability(instance: Instance): Map<string, number>;
|
|
20
|
+
saveTxt(fileName: string): void;
|
|
20
21
|
}
|
package/dist/Model/DummyModel.js
CHANGED
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./Model", "../Instance/CompositeInstance"], factory);
|
|
7
|
+
define(["require", "exports", "./Model", "nlptoolkit-math/dist/DiscreteDistribution", "../InstanceList/InstanceList", "../Instance/CompositeInstance", "nlptoolkit-util/dist/FileContents"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.DummyModel = void 0;
|
|
13
13
|
const Model_1 = require("./Model");
|
|
14
|
+
const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
|
|
15
|
+
const InstanceList_1 = require("../InstanceList/InstanceList");
|
|
14
16
|
const CompositeInstance_1 = require("../Instance/CompositeInstance");
|
|
17
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
15
18
|
class DummyModel extends Model_1.Model {
|
|
16
19
|
/**
|
|
17
20
|
* Constructor which sets the distribution using the given {@link InstanceList}.
|
|
@@ -20,7 +23,22 @@
|
|
|
20
23
|
*/
|
|
21
24
|
constructor(trainSet) {
|
|
22
25
|
super();
|
|
23
|
-
|
|
26
|
+
if (trainSet instanceof InstanceList_1.InstanceList) {
|
|
27
|
+
this.distribution = trainSet.classDistribution();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
let input = new FileContents_1.FileContents(trainSet);
|
|
31
|
+
this.distribution = new DiscreteDistribution_1.DiscreteDistribution();
|
|
32
|
+
let size = parseInt(input.readLine());
|
|
33
|
+
for (let i = 0; i < size; i++) {
|
|
34
|
+
let line = input.readLine();
|
|
35
|
+
let items = line.split(" ");
|
|
36
|
+
let count = parseInt(items[1]);
|
|
37
|
+
for (let j = 0; j < count; j++) {
|
|
38
|
+
this.distribution.addItem(items[0]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
24
42
|
}
|
|
25
43
|
/**
|
|
26
44
|
* The predict method takes an Instance as an input and returns the entry of distribution which has the maximum value.
|
|
@@ -40,6 +58,8 @@
|
|
|
40
58
|
predictProbability(instance) {
|
|
41
59
|
return this.distribution.getProbabilityDistribution();
|
|
42
60
|
}
|
|
61
|
+
saveTxt(fileName) {
|
|
62
|
+
}
|
|
43
63
|
}
|
|
44
64
|
exports.DummyModel = DummyModel;
|
|
45
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DummyModel.js","sourceRoot":"","sources":["../../source/Model/DummyModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,mCAA8B;
|
|
1
|
+
{"version":3,"file":"DummyModel.js","sourceRoot":"","sources":["../../source/Model/DummyModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,mCAA8B;IAE9B,oFAA+E;IAC/E,+DAA0D;IAC1D,qEAAgE;IAChE,oEAA+D;IAE/D,MAAa,UAAW,SAAQ,aAAK;QAIjC;;;;WAIG;QACH,YAAY,QAA+B;YACvC,KAAK,EAAE,CAAC;YACR,IAAI,QAAQ,YAAY,2BAAY,EAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;aACpD;iBAAM;gBACH,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;gBACtC,IAAI,CAAC,YAAY,GAAG,IAAI,2CAAoB,EAAE,CAAA;gBAC9C,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAC;oBAC1B,IAAI,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;oBAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAC3B,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAC;wBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;qBACtC;iBACJ;aACJ;QACL,CAAC;QAED;;;;;WAKG;QACH,OAAO,CAAC,QAAkB;YACtB,IAAI,CAAC,QAAQ,YAAY,qCAAiB,CAAC,EAAE;gBACzC,IAAI,mBAAmB,GAAwB,QAAS,CAAC,sBAAsB,EAAE,CAAC;gBAClF,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;aAC5D;iBAAM;gBACH,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;aACzC;QACL,CAAC;QAED,kBAAkB,CAAC,QAAkB;YACjC,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,QAAgB;QACxB,CAAC;KAEJ;IAlDD,gCAkDC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { DiscreteDistribution } from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
2
2
|
import { Instance } from "../Instance/Instance";
|
|
3
3
|
import { ValidatedModel } from "./ValidatedModel";
|
|
4
|
+
import { FileContents } from "nlptoolkit-util/dist/FileContents";
|
|
5
|
+
import { Vector } from "nlptoolkit-math/dist/Vector";
|
|
4
6
|
export declare abstract class GaussianModel extends ValidatedModel {
|
|
5
7
|
protected priorDistribution: DiscreteDistribution;
|
|
6
8
|
/**
|
|
@@ -20,5 +22,7 @@ export declare abstract class GaussianModel extends ValidatedModel {
|
|
|
20
22
|
* @return The class which has the maximum value of metric.
|
|
21
23
|
*/
|
|
22
24
|
predict(instance: Instance): string;
|
|
25
|
+
loadPriorDistribution(input: FileContents): number;
|
|
26
|
+
loadVectors(input: FileContents, size: number): Map<string, Vector>;
|
|
23
27
|
predictProbability(instance: Instance): Map<string, number>;
|
|
24
28
|
}
|
|
@@ -4,14 +4,16 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./ValidatedModel", "../Instance/CompositeInstance"], factory);
|
|
7
|
+
define(["require", "exports", "nlptoolkit-math/dist/DiscreteDistribution", "./ValidatedModel", "../Instance/CompositeInstance", "nlptoolkit-math/dist/Vector"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.GaussianModel = void 0;
|
|
13
|
+
const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
|
|
13
14
|
const ValidatedModel_1 = require("./ValidatedModel");
|
|
14
15
|
const CompositeInstance_1 = require("../Instance/CompositeInstance");
|
|
16
|
+
const Vector_1 = require("nlptoolkit-math/dist/Vector");
|
|
15
17
|
class GaussianModel extends ValidatedModel_1.ValidatedModel {
|
|
16
18
|
/**
|
|
17
19
|
* The predict method takes an Instance as an input. First it gets the size of prior distribution and loops this size times.
|
|
@@ -50,6 +52,31 @@
|
|
|
50
52
|
}
|
|
51
53
|
return predictedClass;
|
|
52
54
|
}
|
|
55
|
+
loadPriorDistribution(input) {
|
|
56
|
+
let size = parseInt(input.readLine());
|
|
57
|
+
this.priorDistribution = new DiscreteDistribution_1.DiscreteDistribution();
|
|
58
|
+
for (let i = 0; i < size; i++) {
|
|
59
|
+
let line = input.readLine();
|
|
60
|
+
let items = line.split(" ");
|
|
61
|
+
for (let j = 0; j < parseInt(items[1]); j++) {
|
|
62
|
+
this.priorDistribution.addItem(items[0]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return size;
|
|
66
|
+
}
|
|
67
|
+
loadVectors(input, size) {
|
|
68
|
+
let map = new Map();
|
|
69
|
+
for (let i = 0; i < size; i++) {
|
|
70
|
+
let line = input.readLine();
|
|
71
|
+
let items = line.split(" ");
|
|
72
|
+
let vector = new Vector_1.Vector(parseInt(items[1]), 0);
|
|
73
|
+
for (let j = 2; j < items.length; j++) {
|
|
74
|
+
vector.setValue(j - 2, parseFloat(items[j]));
|
|
75
|
+
}
|
|
76
|
+
map.set(items[0], vector);
|
|
77
|
+
}
|
|
78
|
+
return map;
|
|
79
|
+
}
|
|
53
80
|
predictProbability(instance) {
|
|
54
81
|
return undefined;
|
|
55
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GaussianModel.js","sourceRoot":"","sources":["../../source/Model/GaussianModel.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"GaussianModel.js","sourceRoot":"","sources":["../../source/Model/GaussianModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ export declare class KMeansModel extends GaussianModel {
|
|
|
9
9
|
/**
|
|
10
10
|
* The constructor that sets the classMeans, priorDistribution and distanceMetric according to given inputs.
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
12
|
+
* @param priorDistributionOrFileName {@link DiscreteDistribution} input.
|
|
13
13
|
* @param classMeans {@link InstanceList} of class means.
|
|
14
14
|
* @param distanceMetric {@link DistanceMetric} input.
|
|
15
15
|
*/
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(priorDistributionOrFileName: DiscreteDistribution | string, classMeans?: InstanceList, distanceMetric?: DistanceMetric);
|
|
17
17
|
/**
|
|
18
18
|
* The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
|
|
19
19
|
* the corresponding class label is same as the given String it returns the negated distance between given instance and the
|
|
@@ -24,4 +24,5 @@ export declare class KMeansModel extends GaussianModel {
|
|
|
24
24
|
* @return The negated distance between given instance and the current item of class means.
|
|
25
25
|
*/
|
|
26
26
|
calculateMetric(instance: Instance, Ci: string): number;
|
|
27
|
+
saveTxt(fileName: string): void;
|
|
27
28
|
}
|
|
@@ -4,26 +4,37 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./GaussianModel"], factory);
|
|
7
|
+
define(["require", "exports", "./GaussianModel", "nlptoolkit-math/dist/DiscreteDistribution", "nlptoolkit-util/dist/FileContents", "../DistanceMetric/EuclidianDistance"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.KMeansModel = void 0;
|
|
13
13
|
const GaussianModel_1 = require("./GaussianModel");
|
|
14
|
+
const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
|
|
15
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
16
|
+
const EuclidianDistance_1 = require("../DistanceMetric/EuclidianDistance");
|
|
14
17
|
class KMeansModel extends GaussianModel_1.GaussianModel {
|
|
15
18
|
/**
|
|
16
19
|
* The constructor that sets the classMeans, priorDistribution and distanceMetric according to given inputs.
|
|
17
20
|
*
|
|
18
|
-
* @param
|
|
21
|
+
* @param priorDistributionOrFileName {@link DiscreteDistribution} input.
|
|
19
22
|
* @param classMeans {@link InstanceList} of class means.
|
|
20
23
|
* @param distanceMetric {@link DistanceMetric} input.
|
|
21
24
|
*/
|
|
22
|
-
constructor(
|
|
25
|
+
constructor(priorDistributionOrFileName, classMeans, distanceMetric) {
|
|
23
26
|
super();
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
if (priorDistributionOrFileName instanceof DiscreteDistribution_1.DiscreteDistribution) {
|
|
28
|
+
this.classMeans = classMeans;
|
|
29
|
+
this.priorDistribution = priorDistributionOrFileName;
|
|
30
|
+
this.distanceMetric = distanceMetric;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
this.distanceMetric = new EuclidianDistance_1.EuclidianDistance();
|
|
34
|
+
let input = new FileContents_1.FileContents(priorDistributionOrFileName);
|
|
35
|
+
this.loadPriorDistribution(input);
|
|
36
|
+
this.classMeans = this.loadInstanceList(input);
|
|
37
|
+
}
|
|
27
38
|
}
|
|
28
39
|
/**
|
|
29
40
|
* The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
|
|
@@ -42,6 +53,8 @@
|
|
|
42
53
|
}
|
|
43
54
|
return Number.NEGATIVE_INFINITY;
|
|
44
55
|
}
|
|
56
|
+
saveTxt(fileName) {
|
|
57
|
+
}
|
|
45
58
|
}
|
|
46
59
|
exports.KMeansModel = KMeansModel;
|
|
47
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KMeansModel.js","sourceRoot":"","sources":["../../source/Model/KMeansModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,mDAA8C;
|
|
1
|
+
{"version":3,"file":"KMeansModel.js","sourceRoot":"","sources":["../../source/Model/KMeansModel.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,mDAA8C;IAI9C,oFAA+E;IAC/E,oEAA+D;IAC/D,2EAAsE;IAEtE,MAAa,WAAY,SAAQ,6BAAa;QAK1C;;;;;;WAMG;QACH,YAAY,2BAA0D,EAAE,UAAyB,EAAE,cAA+B;YAC9H,KAAK,EAAE,CAAA;YACP,IAAI,2BAA2B,YAAY,2CAAoB,EAAC;gBAC5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,2BAA2B,CAAA;gBACpD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;aACvC;iBAAM;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,qCAAiB,EAAE,CAAA;gBAC7C,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,2BAA2B,CAAC,CAAA;gBACzD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;aACjD;QACL,CAAC;QAED;;;;;;;;WAQG;QACH,eAAe,CAAC,QAAkB,EAAE,EAAU;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;oBAC9C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC1E;aACJ;YACD,OAAO,MAAM,CAAC,iBAAiB,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,QAAgB;QACxB,CAAC;KAEJ;IA/CD,kCA+CC"}
|
package/dist/Model/KnnModel.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ export declare class KnnModel extends Model {
|
|
|
9
9
|
/**
|
|
10
10
|
* Constructor that sets the data {@link InstanceList}, k value and the {@link DistanceMetric}.
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
12
|
+
* @param dataOrFileName {@link InstanceList} input.
|
|
13
13
|
* @param k K value.
|
|
14
14
|
* @param distanceMetric {@link DistanceMetric} input.
|
|
15
15
|
*/
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(dataOrFileName: InstanceList | string, k?: number, distanceMetric?: DistanceMetric);
|
|
17
17
|
/**
|
|
18
18
|
* The predict method takes an {@link Instance} as an input and finds the nearest neighbors of given instance. Then
|
|
19
19
|
* it returns the first possible class label as the predicted class.
|
|
@@ -33,4 +33,5 @@ export declare class KnnModel extends Model {
|
|
|
33
33
|
* @return The first k instances which are nearest to the given instance as an {@link InstanceList}.
|
|
34
34
|
*/
|
|
35
35
|
nearestNeighbors(instance: Instance): InstanceList;
|
|
36
|
+
saveTxt(fileName: string): void;
|
|
36
37
|
}
|