nlptoolkit-classification 1.0.8 → 1.0.9
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/Attribute/Attribute.js +6 -16
- package/dist/Attribute/Attribute.js.map +1 -1
- package/dist/Attribute/AttributeType.js +22 -32
- package/dist/Attribute/AttributeType.js.map +1 -1
- package/dist/Attribute/BinaryAttribute.js +14 -24
- package/dist/Attribute/BinaryAttribute.js.map +1 -1
- package/dist/Attribute/ContinuousAttribute.js +46 -55
- package/dist/Attribute/ContinuousAttribute.js.map +1 -1
- package/dist/Attribute/DiscreteAttribute.js +38 -48
- package/dist/Attribute/DiscreteAttribute.js.map +1 -1
- package/dist/Attribute/DiscreteIndexedAttribute.js +47 -55
- package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -1
- package/dist/DataSet/DataDefinition.js +115 -123
- package/dist/DataSet/DataDefinition.js.map +1 -1
- package/dist/DataSet/DataSet.js +268 -245
- package/dist/DataSet/DataSet.js.map +1 -1
- package/dist/DistanceMetric/DistanceMetric.js +2 -12
- package/dist/DistanceMetric/EuclidianDistance.js +27 -37
- package/dist/DistanceMetric/EuclidianDistance.js.map +1 -1
- package/dist/DistanceMetric/MahalanobisDistance.js +27 -36
- package/dist/DistanceMetric/MahalanobisDistance.js.map +1 -1
- package/dist/Experiment/BootstrapRun.js +31 -40
- package/dist/Experiment/BootstrapRun.js.map +1 -1
- package/dist/Experiment/Experiment.js +46 -53
- package/dist/Experiment/Experiment.js.map +1 -1
- package/dist/Experiment/KFoldRun.js +45 -54
- package/dist/Experiment/KFoldRun.js.map +1 -1
- package/dist/Experiment/KFoldRunSeparateTest.js +48 -58
- package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/MultipleRun.js +2 -12
- package/dist/Experiment/MxKFoldRun.js +31 -40
- package/dist/Experiment/MxKFoldRun.js.map +1 -1
- package/dist/Experiment/MxKFoldRunSeparateTest.js +35 -44
- package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/SingleRun.js +2 -12
- package/dist/Experiment/SingleRunWithK.js +39 -48
- package/dist/Experiment/SingleRunWithK.js.map +1 -1
- package/dist/Experiment/StratifiedKFoldRun.js +26 -36
- package/dist/Experiment/StratifiedKFoldRun.js.map +1 -1
- package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +30 -40
- package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/StratifiedMxKFoldRun.js +29 -39
- package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -1
- package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +34 -43
- package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/StratifiedSingleRunWithK.js +27 -36
- package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -1
- package/dist/FeatureSelection/BackwardSelection.js +26 -36
- package/dist/FeatureSelection/BackwardSelection.js.map +1 -1
- package/dist/FeatureSelection/FeatureSubSet.js +72 -82
- package/dist/FeatureSelection/FeatureSubSet.js.map +1 -1
- package/dist/FeatureSelection/FloatingSelection.js +25 -35
- package/dist/FeatureSelection/FloatingSelection.js.map +1 -1
- package/dist/FeatureSelection/ForwardSelection.js +25 -35
- package/dist/FeatureSelection/ForwardSelection.js.map +1 -1
- package/dist/FeatureSelection/SubSetSelection.js +69 -78
- package/dist/FeatureSelection/SubSetSelection.js.map +1 -1
- package/dist/Filter/DiscreteToContinuous.js +50 -60
- package/dist/Filter/DiscreteToContinuous.js.map +1 -1
- package/dist/Filter/DiscreteToIndexed.js +40 -50
- package/dist/Filter/DiscreteToIndexed.js.map +1 -1
- package/dist/Filter/FeatureFilter.js +23 -32
- package/dist/Filter/FeatureFilter.js.map +1 -1
- package/dist/Filter/LaryFilter.js +46 -55
- package/dist/Filter/LaryFilter.js.map +1 -1
- package/dist/Filter/LaryToBinary.js +48 -58
- package/dist/Filter/LaryToBinary.js.map +1 -1
- package/dist/Filter/Normalize.js +33 -41
- package/dist/Filter/Normalize.js.map +1 -1
- package/dist/Filter/Pca.js +86 -96
- package/dist/Filter/Pca.js.map +1 -1
- package/dist/Filter/TrainedFeatureFilter.js +14 -24
- package/dist/Filter/TrainedFeatureFilter.js.map +1 -1
- package/dist/Instance/CompositeInstance.js +46 -56
- package/dist/Instance/CompositeInstance.js.map +1 -1
- package/dist/Instance/Instance.js +145 -154
- package/dist/Instance/Instance.js.map +1 -1
- package/dist/InstanceList/InstanceList.js +466 -443
- package/dist/InstanceList/InstanceList.js.map +1 -1
- package/dist/InstanceList/InstanceListOfSameClass.js +23 -32
- package/dist/InstanceList/InstanceListOfSameClass.js.map +1 -1
- package/dist/InstanceList/Partition.js +167 -177
- package/dist/InstanceList/Partition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionCondition.js +71 -80
- package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionNode.js +302 -311
- package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionStump.js +22 -32
- package/dist/Model/DecisionTree/DecisionStump.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionTree.js +89 -98
- package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
- package/dist/Model/DummyModel.js +64 -73
- package/dist/Model/DummyModel.js.map +1 -1
- package/dist/Model/Ensemble/BaggingModel.js +34 -44
- package/dist/Model/Ensemble/BaggingModel.js.map +1 -1
- package/dist/Model/Ensemble/RandomForestModel.js +31 -41
- package/dist/Model/Ensemble/RandomForestModel.js.map +1 -1
- package/dist/Model/Ensemble/TreeEnsembleModel.js +55 -64
- package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -1
- package/dist/Model/Model.js +130 -140
- package/dist/Model/Model.js.map +1 -1
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js +162 -169
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -1
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +69 -78
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -1
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js +112 -120
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -1
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js +197 -201
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -1
- package/dist/Model/NonParametric/KnnInstance.js +21 -29
- package/dist/Model/NonParametric/KnnInstance.js.map +1 -1
- package/dist/Model/NonParametric/KnnModel.js +101 -108
- package/dist/Model/NonParametric/KnnModel.js.map +1 -1
- package/dist/Model/Parametric/GaussianModel.js +82 -91
- package/dist/Model/Parametric/GaussianModel.js.map +1 -1
- package/dist/Model/Parametric/KMeansModel.js +59 -67
- package/dist/Model/Parametric/KMeansModel.js.map +1 -1
- package/dist/Model/Parametric/LdaModel.js +83 -91
- package/dist/Model/Parametric/LdaModel.js.map +1 -1
- package/dist/Model/Parametric/NaiveBayesModel.js +119 -132
- package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -1
- package/dist/Model/Parametric/QdaModel.js +70 -79
- package/dist/Model/Parametric/QdaModel.js.map +1 -1
- package/dist/Model/RandomModel.js +85 -92
- package/dist/Model/RandomModel.js.map +1 -1
- package/dist/Model/ValidatedModel.js +21 -31
- package/dist/Model/ValidatedModel.js.map +1 -1
- package/dist/Parameter/ActivationFunction.js +9 -19
- package/dist/Parameter/ActivationFunction.js.map +1 -1
- package/dist/Parameter/BaggingParameter.js +24 -33
- package/dist/Parameter/BaggingParameter.js.map +1 -1
- package/dist/Parameter/C45Parameter.js +34 -42
- package/dist/Parameter/C45Parameter.js.map +1 -1
- package/dist/Parameter/DeepNetworkParameter.js +48 -56
- package/dist/Parameter/DeepNetworkParameter.js.map +1 -1
- package/dist/Parameter/KMeansParameter.js +29 -38
- package/dist/Parameter/KMeansParameter.js.map +1 -1
- package/dist/Parameter/KnnParameter.js +25 -34
- package/dist/Parameter/KnnParameter.js.map +1 -1
- package/dist/Parameter/LinearPerceptronParameter.js +56 -62
- package/dist/Parameter/LinearPerceptronParameter.js.map +1 -1
- package/dist/Parameter/MultiLayerPerceptronParameter.js +38 -46
- package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -1
- package/dist/Parameter/Parameter.js +21 -30
- package/dist/Parameter/Parameter.js.map +1 -1
- package/dist/Parameter/RandomForestParameter.js +25 -34
- package/dist/Parameter/RandomForestParameter.js.map +1 -1
- package/dist/Performance/ClassificationPerformance.js +24 -33
- package/dist/Performance/ClassificationPerformance.js.map +1 -1
- package/dist/Performance/ConfusionMatrix.js +149 -158
- package/dist/Performance/ConfusionMatrix.js.map +1 -1
- package/dist/Performance/DetailedClassificationPerformance.js +23 -32
- package/dist/Performance/DetailedClassificationPerformance.js.map +1 -1
- package/dist/Performance/ExperimentPerformance.js +184 -161
- package/dist/Performance/ExperimentPerformance.js.map +1 -1
- package/dist/Performance/Performance.js +21 -30
- package/dist/Performance/Performance.js.map +1 -1
- package/dist/StatisticalTest/Combined5x2F.js +41 -51
- package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
- package/dist/StatisticalTest/Combined5x2t.js +42 -52
- package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
- package/dist/StatisticalTest/Paired5x2t.js +40 -50
- package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
- package/dist/StatisticalTest/PairedTest.js +31 -41
- package/dist/StatisticalTest/PairedTest.js.map +1 -1
- package/dist/StatisticalTest/Pairedt.js +38 -48
- package/dist/StatisticalTest/Pairedt.js.map +1 -1
- package/dist/StatisticalTest/Sign.js +50 -60
- package/dist/StatisticalTest/Sign.js.map +1 -1
- package/dist/StatisticalTest/StatisticalTestResult.js +65 -73
- package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -1
- package/dist/StatisticalTest/StatisticalTestResultType.js +11 -21
- package/dist/StatisticalTest/StatisticalTestResultType.js.map +1 -1
- package/dist/index.js +95 -101
- package/dist/index.js.map +1 -1
- package/package.json +7 -6
- package/tsconfig.json +4 -3
- package/source/tsconfig.json +0 -13
|
@@ -1,127 +1,119 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiLayerPerceptronModel = void 0;
|
|
4
|
+
const LinearPerceptronModel_1 = require("./LinearPerceptronModel");
|
|
5
|
+
const Matrix_1 = require("nlptoolkit-math/dist/Matrix");
|
|
6
|
+
const ActivationFunction_1 = require("../../Parameter/ActivationFunction");
|
|
7
|
+
const ClassificationPerformance_1 = require("../../Performance/ClassificationPerformance");
|
|
8
|
+
const Vector_1 = require("nlptoolkit-math/dist/Vector");
|
|
9
|
+
const Random_1 = require("nlptoolkit-util/dist/Random");
|
|
10
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
11
|
+
const Partition_1 = require("../../InstanceList/Partition");
|
|
12
|
+
class MultiLayerPerceptronModel extends LinearPerceptronModel_1.LinearPerceptronModel {
|
|
13
|
+
V;
|
|
14
|
+
activationFunction;
|
|
15
|
+
/**
|
|
16
|
+
* The allocateWeights method allocates layers' weights of Matrix W and V.
|
|
17
|
+
*
|
|
18
|
+
* @param H Integer value for weights.
|
|
19
|
+
* @param random Random function to set weights.
|
|
20
|
+
*/
|
|
21
|
+
allocateWeights(H, random) {
|
|
22
|
+
this.W = this.allocateLayerWeights(H, this.d + 1, random);
|
|
23
|
+
this.V = this.allocateLayerWeights(this.K, H + 1, random);
|
|
5
24
|
}
|
|
6
|
-
|
|
7
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Loads a multi-layer perceptron model from an input model file.
|
|
27
|
+
* @param fileName Model file name.
|
|
28
|
+
*/
|
|
29
|
+
constructor2(fileName) {
|
|
30
|
+
let input = new FileContents_1.FileContents(fileName);
|
|
31
|
+
this.loadClassLabels(input);
|
|
32
|
+
this.W = this.loadMatrix(input);
|
|
33
|
+
this.V = this.loadMatrix(input);
|
|
34
|
+
this.activationFunction = this.loadActivationFunction(input);
|
|
8
35
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
let validationSet = partition.get(1);
|
|
65
|
-
this.activationFunction = parameters.getActivationFunction();
|
|
66
|
-
this.allocateWeights(parameters.getHiddenNodes(), new Random_1.Random(parameters.getSeed()));
|
|
67
|
-
let bestW = this.W.clone();
|
|
68
|
-
let bestV = this.V.clone();
|
|
69
|
-
let bestClassificationPerformance = new ClassificationPerformance_1.ClassificationPerformance(0.0);
|
|
70
|
-
let epoch = parameters.getEpoch();
|
|
71
|
-
let learningRate = parameters.getLearningRate();
|
|
72
|
-
for (let i = 0; i < epoch; i++) {
|
|
73
|
-
trainSet.shuffle(new Random_1.Random(parameters.getSeed()));
|
|
74
|
-
for (let j = 0; j < trainSet.size(); j++) {
|
|
75
|
-
this.createInputVector(trainSet.get(j));
|
|
76
|
-
let hidden = this.calculateHidden(this.x, this.W, this.activationFunction);
|
|
77
|
-
let hiddenBiased = hidden.biased();
|
|
78
|
-
let rMinusY = this.calculateRMinusY(trainSet.get(j), hiddenBiased, this.V);
|
|
79
|
-
let deltaV = new Matrix_1.Matrix(rMinusY, hiddenBiased);
|
|
80
|
-
let tmph = this.V.multiplyWithVectorFromLeft(rMinusY);
|
|
81
|
-
tmph.remove(0);
|
|
82
|
-
let activationDerivative;
|
|
83
|
-
switch (this.activationFunction) {
|
|
84
|
-
case ActivationFunction_1.ActivationFunction.SIGMOID:
|
|
85
|
-
default:
|
|
86
|
-
let oneMinusHidden = this.calculateOneMinusHidden(hidden);
|
|
87
|
-
activationDerivative = oneMinusHidden.elementProduct(hidden);
|
|
88
|
-
break;
|
|
89
|
-
case ActivationFunction_1.ActivationFunction.TANH:
|
|
90
|
-
let one = new Vector_1.Vector(hidden.size(), 1.0);
|
|
91
|
-
hidden.tanh();
|
|
92
|
-
activationDerivative = one.difference(hidden.elementProduct(hidden));
|
|
93
|
-
break;
|
|
94
|
-
case ActivationFunction_1.ActivationFunction.RELU:
|
|
95
|
-
hidden.reluDerivative();
|
|
96
|
-
activationDerivative = hidden;
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
let tmpHidden = tmph.elementProduct(activationDerivative);
|
|
100
|
-
let deltaW = new Matrix_1.Matrix(tmpHidden, this.x);
|
|
101
|
-
deltaV.multiplyWithConstant(learningRate);
|
|
102
|
-
this.V.add(deltaV);
|
|
103
|
-
deltaW.multiplyWithConstant(learningRate);
|
|
104
|
-
this.W.add(deltaW);
|
|
105
|
-
}
|
|
106
|
-
let currentClassificationPerformance = this.testClassifier(validationSet);
|
|
107
|
-
if (currentClassificationPerformance.getAccuracy() > bestClassificationPerformance.getAccuracy()) {
|
|
108
|
-
bestClassificationPerformance = currentClassificationPerformance;
|
|
109
|
-
bestW = this.W.clone();
|
|
110
|
-
bestV = this.V.clone();
|
|
36
|
+
/**
|
|
37
|
+
* The calculateOutput method calculates the forward single hidden layer by using Matrices W and V.
|
|
38
|
+
*/
|
|
39
|
+
calculateOutput() {
|
|
40
|
+
this.calculateForwardSingleHiddenLayer(this.W, this.V, this.activationFunction);
|
|
41
|
+
}
|
|
42
|
+
saveTxt(fileName) {
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Training algorithm for the multilayer perceptron algorithm. 20 percent of the data is separated as cross-validation
|
|
46
|
+
* data used for selecting the best weights. 80 percent of the data is used for training the multilayer perceptron with
|
|
47
|
+
* gradient descent.
|
|
48
|
+
*
|
|
49
|
+
* @param train Training data given to the algorithm
|
|
50
|
+
* @param params Parameters of the multilayer perceptron.
|
|
51
|
+
*/
|
|
52
|
+
train(train, params) {
|
|
53
|
+
this.initialize(train);
|
|
54
|
+
let parameters = params;
|
|
55
|
+
let partition = new Partition_1.Partition(train, parameters.getCrossValidationRatio(), true);
|
|
56
|
+
let trainSet = partition.get(1);
|
|
57
|
+
let validationSet = partition.get(1);
|
|
58
|
+
this.activationFunction = parameters.getActivationFunction();
|
|
59
|
+
this.allocateWeights(parameters.getHiddenNodes(), new Random_1.Random(parameters.getSeed()));
|
|
60
|
+
let bestW = this.W.clone();
|
|
61
|
+
let bestV = this.V.clone();
|
|
62
|
+
let bestClassificationPerformance = new ClassificationPerformance_1.ClassificationPerformance(0.0);
|
|
63
|
+
let epoch = parameters.getEpoch();
|
|
64
|
+
let learningRate = parameters.getLearningRate();
|
|
65
|
+
for (let i = 0; i < epoch; i++) {
|
|
66
|
+
trainSet.shuffle(new Random_1.Random(parameters.getSeed()));
|
|
67
|
+
for (let j = 0; j < trainSet.size(); j++) {
|
|
68
|
+
this.createInputVector(trainSet.get(j));
|
|
69
|
+
let hidden = this.calculateHidden(this.x, this.W, this.activationFunction);
|
|
70
|
+
let hiddenBiased = hidden.biased();
|
|
71
|
+
let rMinusY = this.calculateRMinusY(trainSet.get(j), hiddenBiased, this.V);
|
|
72
|
+
let deltaV = new Matrix_1.Matrix(rMinusY, hiddenBiased);
|
|
73
|
+
let tmph = this.V.multiplyWithVectorFromLeft(rMinusY);
|
|
74
|
+
tmph.remove(0);
|
|
75
|
+
let activationDerivative;
|
|
76
|
+
switch (this.activationFunction) {
|
|
77
|
+
case ActivationFunction_1.ActivationFunction.SIGMOID:
|
|
78
|
+
default:
|
|
79
|
+
let oneMinusHidden = this.calculateOneMinusHidden(hidden);
|
|
80
|
+
activationDerivative = oneMinusHidden.elementProduct(hidden);
|
|
81
|
+
break;
|
|
82
|
+
case ActivationFunction_1.ActivationFunction.TANH:
|
|
83
|
+
let one = new Vector_1.Vector(hidden.size(), 1.0);
|
|
84
|
+
hidden.tanh();
|
|
85
|
+
activationDerivative = one.difference(hidden.elementProduct(hidden));
|
|
86
|
+
break;
|
|
87
|
+
case ActivationFunction_1.ActivationFunction.RELU:
|
|
88
|
+
hidden.reluDerivative();
|
|
89
|
+
activationDerivative = hidden;
|
|
90
|
+
break;
|
|
111
91
|
}
|
|
112
|
-
|
|
92
|
+
let tmpHidden = tmph.elementProduct(activationDerivative);
|
|
93
|
+
let deltaW = new Matrix_1.Matrix(tmpHidden, this.x);
|
|
94
|
+
deltaV.multiplyWithConstant(learningRate);
|
|
95
|
+
this.V.add(deltaV);
|
|
96
|
+
deltaW.multiplyWithConstant(learningRate);
|
|
97
|
+
this.W.add(deltaW);
|
|
113
98
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
loadModel(fileName) {
|
|
122
|
-
this.constructor2(fileName);
|
|
99
|
+
let currentClassificationPerformance = this.testClassifier(validationSet);
|
|
100
|
+
if (currentClassificationPerformance.getAccuracy() > bestClassificationPerformance.getAccuracy()) {
|
|
101
|
+
bestClassificationPerformance = currentClassificationPerformance;
|
|
102
|
+
bestW = this.W.clone();
|
|
103
|
+
bestV = this.V.clone();
|
|
104
|
+
}
|
|
105
|
+
learningRate *= parameters.getEtaDecrease();
|
|
123
106
|
}
|
|
107
|
+
this.W = bestW;
|
|
108
|
+
this.V = bestV;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Loads the multi-layer perceptron model from an input file.
|
|
112
|
+
* @param fileName File name of the multi-layer perceptron model.
|
|
113
|
+
*/
|
|
114
|
+
loadModel(fileName) {
|
|
115
|
+
this.constructor2(fileName);
|
|
124
116
|
}
|
|
125
|
-
|
|
126
|
-
|
|
117
|
+
}
|
|
118
|
+
exports.MultiLayerPerceptronModel = MultiLayerPerceptronModel;
|
|
127
119
|
//# sourceMappingURL=MultiLayerPerceptronModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLayerPerceptronModel.js","sourceRoot":"","sources":["../../../source/Model/NeuralNetwork/MultiLayerPerceptronModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiLayerPerceptronModel.js","sourceRoot":"","sources":["../../../source/Model/NeuralNetwork/MultiLayerPerceptronModel.ts"],"names":[],"mappings":";;;AAAA,mEAA8D;AAC9D,wDAAmD;AACnD,2EAAsE;AAGtE,2FAAsF;AACtF,wDAAmD;AACnD,wDAAmD;AACnD,oEAA+D;AAE/D,4DAAuD;AAEvD,MAAa,yBAA0B,SAAQ,6CAAqB;IAExD,CAAC,CAAQ;IACP,kBAAkB,CAAoB;IAEhD;;;;;OAKG;IACK,eAAe,CAAC,CAAS,EAAE,MAAc;QAC7C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAgB;QACzB,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACO,eAAe;QACrB,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,CAAC,QAAgB;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAmB,EAAE,MAAiB;QACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,UAAU,GAAoC,MAAO,CAAA;QACzD,IAAI,SAAS,GAAG,IAAI,qBAAS,CAAC,KAAK,EAAE,UAAU,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC;QACjF,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,IAAI,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,6BAA6B,GAAG,IAAI,qDAAyB,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC3E,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3E,IAAI,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAC/C,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACf,IAAI,oBAAoB,CAAA;gBACxB,QAAQ,IAAI,CAAC,kBAAkB,EAAC,CAAC;oBAC7B,KAAK,uCAAkB,CAAC,OAAO,CAAC;oBAChC;wBACI,IAAI,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;wBAC1D,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAC7D,MAAM;oBACV,KAAK,uCAAkB,CAAC,IAAI;wBACxB,IAAI,GAAG,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;wBACzC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACd,oBAAoB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;wBACrE,MAAM;oBACV,KAAK,uCAAkB,CAAC,IAAI;wBACxB,MAAM,CAAC,cAAc,EAAE,CAAC;wBACxB,oBAAoB,GAAG,MAAM,CAAC;wBAC9B,MAAM;gBACd,CAAC;gBACD,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;gBAC1D,IAAI,MAAM,GAAG,IAAI,eAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnB,MAAM,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;gBAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,gCAAgC,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1E,IAAI,gCAAgC,CAAC,WAAW,EAAE,GAAG,6BAA6B,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/F,6BAA6B,GAAG,gCAAgC,CAAC;gBACjE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACvB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC3B,CAAC;YACD,YAAY,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACf,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB;QACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CAEJ;AAjHD,8DAiHC"}
|