nlptoolkit-classification 1.0.7 → 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/README.md +1 -0
- 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.d.ts +1 -1
- package/dist/Attribute/DiscreteAttribute.js +38 -48
- package/dist/Attribute/DiscreteAttribute.js.map +1 -1
- package/dist/Attribute/DiscreteIndexedAttribute.d.ts +2 -2
- package/dist/Attribute/DiscreteIndexedAttribute.js +47 -55
- package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -1
- package/dist/DataSet/DataDefinition.d.ts +11 -0
- package/dist/DataSet/DataDefinition.js +115 -112
- 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.d.ts +7 -7
- package/dist/Experiment/Experiment.js +46 -53
- package/dist/Experiment/Experiment.js.map +1 -1
- package/dist/Experiment/KFoldRun.d.ts +17 -2
- package/dist/Experiment/KFoldRun.js +45 -39
- package/dist/Experiment/KFoldRun.js.map +1 -1
- package/dist/Experiment/KFoldRunSeparateTest.d.ts +13 -2
- package/dist/Experiment/KFoldRunSeparateTest.js +48 -47
- 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.d.ts +18 -3
- package/dist/Experiment/SingleRunWithK.js +39 -33
- 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.d.ts +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.d.ts +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.d.ts +45 -0
- package/dist/InstanceList/Partition.js +176 -131
- package/dist/InstanceList/Partition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionCondition.d.ts +8 -0
- package/dist/Model/DecisionTree/DecisionCondition.js +71 -72
- package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionNode.d.ts +38 -1
- package/dist/Model/DecisionTree/DecisionNode.js +302 -275
- package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionStump.d.ts +17 -0
- package/dist/Model/DecisionTree/DecisionStump.js +25 -0
- package/dist/Model/DecisionTree/DecisionStump.js.map +1 -0
- package/dist/Model/DecisionTree/DecisionTree.d.ts +24 -9
- package/dist/Model/DecisionTree/DecisionTree.js +90 -76
- package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
- package/dist/Model/DummyModel.d.ts +28 -3
- package/dist/Model/DummyModel.js +64 -50
- package/dist/Model/DummyModel.js.map +1 -1
- package/dist/{Classifier/Bagging.d.ts → Model/Ensemble/BaggingModel.d.ts} +8 -4
- package/dist/Model/Ensemble/BaggingModel.js +37 -0
- package/dist/Model/Ensemble/BaggingModel.js.map +1 -0
- package/dist/{Classifier/RandomForest.d.ts → Model/Ensemble/RandomForestModel.d.ts} +8 -4
- package/dist/Model/Ensemble/RandomForestModel.js +34 -0
- package/dist/Model/Ensemble/RandomForestModel.js.map +1 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.d.ts +32 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.js +61 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -0
- package/dist/Model/Model.d.ts +50 -0
- package/dist/Model/Model.js +131 -72
- package/dist/Model/Model.js.map +1 -1
- package/dist/Model/NeuralNetwork/DeepNetworkModel.d.ts +47 -0
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js +180 -0
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.d.ts +31 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +75 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.d.ts +39 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js +119 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -0
- package/dist/Model/{NeuralNetworkModel.d.ts → NeuralNetwork/NeuralNetworkModel.d.ts} +19 -5
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js +211 -0
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -0
- package/dist/Model/{KnnInstance.d.ts → NonParametric/KnnInstance.d.ts} +1 -1
- package/dist/Model/NonParametric/KnnInstance.js +25 -0
- package/dist/Model/NonParametric/KnnInstance.js.map +1 -0
- package/dist/Model/{KnnModel.d.ts → NonParametric/KnnModel.d.ts} +30 -6
- package/dist/Model/NonParametric/KnnModel.js +111 -0
- package/dist/Model/NonParametric/KnnModel.js.map +1 -0
- package/dist/Model/{GaussianModel.d.ts → Parametric/GaussianModel.d.ts} +20 -2
- package/dist/Model/Parametric/GaussianModel.js +95 -0
- package/dist/Model/Parametric/GaussianModel.js.map +1 -0
- package/dist/Model/Parametric/KMeansModel.d.ts +36 -0
- package/dist/Model/Parametric/KMeansModel.js +65 -0
- package/dist/Model/Parametric/KMeansModel.js.map +1 -0
- package/dist/Model/Parametric/LdaModel.d.ts +44 -0
- package/dist/Model/Parametric/LdaModel.js +90 -0
- package/dist/Model/Parametric/LdaModel.js.map +1 -0
- package/dist/Model/{NaiveBayesModel.d.ts → Parametric/NaiveBayesModel.d.ts} +30 -10
- package/dist/Model/Parametric/NaiveBayesModel.js +131 -0
- package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -0
- package/dist/Model/Parametric/QdaModel.d.ts +30 -0
- package/dist/Model/Parametric/QdaModel.js +75 -0
- package/dist/Model/Parametric/QdaModel.js.map +1 -0
- package/dist/Model/RandomModel.d.ts +32 -2
- package/dist/Model/RandomModel.js +85 -60
- 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.d.ts +2 -2
- package/dist/Parameter/C45Parameter.js +34 -42
- package/dist/Parameter/C45Parameter.js.map +1 -1
- package/dist/Parameter/DeepNetworkParameter.d.ts +2 -2
- 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.d.ts +1 -1
- package/dist/Parameter/KnnParameter.js +25 -34
- package/dist/Parameter/KnnParameter.js.map +1 -1
- package/dist/Parameter/LinearPerceptronParameter.d.ts +4 -4
- package/dist/Parameter/LinearPerceptronParameter.js +56 -62
- package/dist/Parameter/LinearPerceptronParameter.js.map +1 -1
- package/dist/Parameter/MultiLayerPerceptronParameter.d.ts +2 -2
- package/dist/Parameter/MultiLayerPerceptronParameter.js +38 -46
- package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -1
- package/dist/Parameter/Parameter.d.ts +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.d.ts +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.d.ts +12 -0
- package/dist/StatisticalTest/Combined5x2F.js +41 -39
- package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
- package/dist/StatisticalTest/Combined5x2t.d.ts +13 -0
- package/dist/StatisticalTest/Combined5x2t.js +42 -39
- package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
- package/dist/StatisticalTest/Paired5x2t.d.ts +12 -0
- package/dist/StatisticalTest/Paired5x2t.js +40 -38
- package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
- package/dist/StatisticalTest/PairedTest.d.ts +12 -0
- package/dist/StatisticalTest/PairedTest.js +31 -29
- package/dist/StatisticalTest/PairedTest.js.map +1 -1
- package/dist/StatisticalTest/Pairedt.d.ts +12 -0
- package/dist/StatisticalTest/Pairedt.js +38 -36
- package/dist/StatisticalTest/Pairedt.js.map +1 -1
- package/dist/StatisticalTest/Sign.d.ts +17 -0
- package/dist/StatisticalTest/Sign.js +50 -43
- package/dist/StatisticalTest/Sign.js.map +1 -1
- package/dist/StatisticalTest/StatisticalTestResult.d.ts +30 -0
- package/dist/StatisticalTest/StatisticalTestResult.js +65 -43
- 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.d.ts +88 -0
- package/dist/index.js +105 -0
- package/dist/index.js.map +1 -0
- package/package.json +9 -8
- package/source/Attribute/DiscreteAttribute.ts +1 -1
- package/source/Attribute/DiscreteIndexedAttribute.ts +2 -2
- package/source/DataSet/DataDefinition.ts +11 -0
- package/source/Experiment/BootstrapRun.ts +2 -2
- package/source/Experiment/Experiment.ts +10 -10
- package/source/Experiment/KFoldRun.ts +20 -5
- package/source/Experiment/KFoldRunSeparateTest.ts +16 -5
- package/source/Experiment/MxKFoldRun.ts +1 -1
- package/source/Experiment/MxKFoldRunSeparateTest.ts +1 -1
- package/source/Experiment/SingleRunWithK.ts +20 -5
- package/source/Experiment/StratifiedKFoldRun.ts +1 -1
- package/source/Experiment/StratifiedKFoldRunSeparateTest.ts +1 -1
- package/source/Experiment/StratifiedMxKFoldRun.ts +1 -1
- package/source/Experiment/StratifiedMxKFoldRunSeparateTest.ts +3 -3
- package/source/Experiment/StratifiedSingleRunWithK.ts +1 -1
- package/source/Filter/LaryFilter.ts +1 -1
- package/source/Filter/TrainedFeatureFilter.ts +1 -1
- package/source/InstanceList/Partition.ts +125 -65
- package/source/Model/DecisionTree/DecisionCondition.ts +8 -0
- package/source/Model/DecisionTree/DecisionNode.ts +56 -20
- package/source/Model/DecisionTree/DecisionStump.ts +26 -0
- package/source/Model/DecisionTree/DecisionTree.ts +44 -15
- package/source/Model/DummyModel.ts +40 -10
- package/source/{Classifier/Bagging.ts → Model/Ensemble/BaggingModel.ts} +15 -12
- package/source/{Classifier/RandomForest.ts → Model/Ensemble/RandomForestModel.ts} +14 -12
- package/source/Model/{TreeEnsembleModel.ts → Ensemble/TreeEnsembleModel.ts} +26 -18
- package/source/Model/Model.ts +77 -0
- package/source/Model/{DeepNetworkModel.ts → NeuralNetwork/DeepNetworkModel.ts} +59 -56
- package/source/Model/NeuralNetwork/LinearPerceptronModel.ts +81 -0
- package/source/Model/{MultiLayerPerceptronModel.ts → NeuralNetwork/MultiLayerPerceptronModel.ts} +46 -39
- package/source/Model/{NeuralNetworkModel.ts → NeuralNetwork/NeuralNetworkModel.ts} +20 -7
- package/source/Model/{KnnInstance.ts → NonParametric/KnnInstance.ts} +1 -1
- package/source/Model/{KnnModel.ts → NonParametric/KnnModel.ts} +48 -19
- package/source/Model/{GaussianModel.ts → Parametric/GaussianModel.ts} +21 -3
- package/source/Model/Parametric/KMeansModel.ts +72 -0
- package/source/Model/Parametric/LdaModel.ts +98 -0
- package/source/Model/{NaiveBayesModel.ts → Parametric/NaiveBayesModel.ts} +68 -25
- package/source/Model/Parametric/QdaModel.ts +83 -0
- package/source/Model/RandomModel.ts +54 -16
- package/source/Parameter/C45Parameter.ts +2 -2
- package/source/Parameter/DeepNetworkParameter.ts +2 -2
- package/source/Parameter/KnnParameter.ts +1 -1
- package/source/Parameter/LinearPerceptronParameter.ts +4 -4
- package/source/Parameter/MultiLayerPerceptronParameter.ts +2 -2
- package/source/Parameter/Parameter.ts +1 -1
- package/source/Performance/ConfusionMatrix.ts +1 -1
- package/source/StatisticalTest/Combined5x2F.ts +12 -0
- package/source/StatisticalTest/Combined5x2t.ts +13 -0
- package/source/StatisticalTest/Paired5x2t.ts +12 -0
- package/source/StatisticalTest/PairedTest.ts +12 -0
- package/source/StatisticalTest/Pairedt.ts +12 -0
- package/source/StatisticalTest/Sign.ts +17 -0
- package/source/StatisticalTest/StatisticalTestResult.ts +30 -0
- package/source/index.ts +88 -0
- package/tests/Classifier/C45Test.ts +2 -2
- package/tests/Classifier/DeepNetworkTest.ts +3 -5
- package/tests/Classifier/DummyTest.ts +2 -2
- package/tests/Classifier/KMeansTest.ts +2 -2
- package/tests/Classifier/KnnTest.ts +2 -2
- package/tests/Classifier/LdaTest.ts +2 -2
- package/tests/Classifier/LinearPerceptronTest.ts +2 -2
- package/tests/Classifier/MultiLayerPerceptronTest.ts +2 -3
- package/tests/Classifier/NaiveBayesTest.ts +2 -2
- package/tests/Classifier/QdaTest.ts +2 -2
- package/tests/Classifier/RandomForestTest.ts +2 -2
- package/tsconfig.json +4 -4
- package/dist/Classifier/Bagging.js +0 -45
- package/dist/Classifier/Bagging.js.map +0 -1
- package/dist/Classifier/C45.d.ts +0 -14
- package/dist/Classifier/C45.js +0 -43
- package/dist/Classifier/C45.js.map +0 -1
- package/dist/Classifier/C45Stump.d.ts +0 -13
- package/dist/Classifier/C45Stump.js +0 -32
- package/dist/Classifier/C45Stump.js.map +0 -1
- package/dist/Classifier/Classifier.d.ts +0 -40
- package/dist/Classifier/Classifier.js +0 -72
- package/dist/Classifier/Classifier.js.map +0 -1
- package/dist/Classifier/DeepNetwork.d.ts +0 -14
- package/dist/Classifier/DeepNetwork.js +0 -34
- package/dist/Classifier/DeepNetwork.js.map +0 -1
- package/dist/Classifier/Dummy.d.ts +0 -14
- package/dist/Classifier/Dummy.js +0 -32
- package/dist/Classifier/Dummy.js.map +0 -1
- package/dist/Classifier/KMeans.d.ts +0 -13
- package/dist/Classifier/KMeans.js +0 -39
- package/dist/Classifier/KMeans.js.map +0 -1
- package/dist/Classifier/Knn.d.ts +0 -14
- package/dist/Classifier/Knn.js +0 -32
- package/dist/Classifier/Knn.js.map +0 -1
- package/dist/Classifier/Lda.d.ts +0 -13
- package/dist/Classifier/Lda.js +0 -55
- package/dist/Classifier/Lda.js.map +0 -1
- package/dist/Classifier/LinearPerceptron.d.ts +0 -15
- package/dist/Classifier/LinearPerceptron.js +0 -35
- package/dist/Classifier/LinearPerceptron.js.map +0 -1
- package/dist/Classifier/MultiLayerPerceptron.d.ts +0 -15
- package/dist/Classifier/MultiLayerPerceptron.js +0 -35
- package/dist/Classifier/MultiLayerPerceptron.js.map +0 -1
- package/dist/Classifier/NaiveBayes.d.ts +0 -26
- package/dist/Classifier/NaiveBayes.js +0 -70
- package/dist/Classifier/NaiveBayes.js.map +0 -1
- package/dist/Classifier/Qda.d.ts +0 -13
- package/dist/Classifier/Qda.js +0 -53
- package/dist/Classifier/Qda.js.map +0 -1
- package/dist/Classifier/RandomClassifier.d.ts +0 -13
- package/dist/Classifier/RandomClassifier.js +0 -35
- package/dist/Classifier/RandomClassifier.js.map +0 -1
- package/dist/Classifier/RandomForest.js +0 -42
- package/dist/Classifier/RandomForest.js.map +0 -1
- package/dist/Model/DeepNetworkModel.d.ts +0 -45
- package/dist/Model/DeepNetworkModel.js +0 -187
- package/dist/Model/DeepNetworkModel.js.map +0 -1
- package/dist/Model/GaussianModel.js +0 -86
- package/dist/Model/GaussianModel.js.map +0 -1
- package/dist/Model/KMeansModel.d.ts +0 -28
- package/dist/Model/KMeansModel.js +0 -61
- package/dist/Model/KMeansModel.js.map +0 -1
- package/dist/Model/KnnInstance.js +0 -33
- package/dist/Model/KnnInstance.js.map +0 -1
- package/dist/Model/KnnModel.js +0 -95
- package/dist/Model/KnnModel.js.map +0 -1
- package/dist/Model/LdaModel.d.ts +0 -28
- package/dist/Model/LdaModel.js +0 -67
- package/dist/Model/LdaModel.js.map +0 -1
- package/dist/Model/LinearPerceptronModel.d.ts +0 -24
- package/dist/Model/LinearPerceptronModel.js +0 -91
- package/dist/Model/LinearPerceptronModel.js.map +0 -1
- package/dist/Model/MultiLayerPerceptronModel.d.ts +0 -33
- package/dist/Model/MultiLayerPerceptronModel.js +0 -123
- package/dist/Model/MultiLayerPerceptronModel.js.map +0 -1
- package/dist/Model/NaiveBayesModel.js +0 -107
- package/dist/Model/NaiveBayesModel.js.map +0 -1
- package/dist/Model/NeuralNetworkModel.js +0 -202
- package/dist/Model/NeuralNetworkModel.js.map +0 -1
- package/dist/Model/QdaModel.d.ts +0 -27
- package/dist/Model/QdaModel.js +0 -63
- package/dist/Model/QdaModel.js.map +0 -1
- package/dist/Model/TreeEnsembleModel.d.ts +0 -22
- package/dist/Model/TreeEnsembleModel.js +0 -64
- package/dist/Model/TreeEnsembleModel.js.map +0 -1
- package/index.js +0 -100
- package/source/Classifier/C45.ts +0 -34
- package/source/Classifier/C45Stump.ts +0 -23
- package/source/Classifier/Classifier.ts +0 -72
- package/source/Classifier/DeepNetwork.ts +0 -26
- package/source/Classifier/Dummy.ts +0 -23
- package/source/Classifier/KMeans.ts +0 -30
- package/source/Classifier/Knn.ts +0 -25
- package/source/Classifier/Lda.ts +0 -47
- package/source/Classifier/LinearPerceptron.ts +0 -27
- package/source/Classifier/MultiLayerPerceptron.ts +0 -27
- package/source/Classifier/NaiveBayes.ts +0 -66
- package/source/Classifier/Qda.ts +0 -46
- package/source/Classifier/RandomClassifier.ts +0 -26
- package/source/Model/KMeansModel.ts +0 -56
- package/source/Model/LdaModel.ts +0 -62
- package/source/Model/LinearPerceptronModel.ts +0 -83
- package/source/Model/QdaModel.ts +0 -57
- package/source/tsconfig.json +0 -13
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import {Classifier} from "./Classifier";
|
|
2
|
-
import {InstanceList} from "../InstanceList/InstanceList";
|
|
3
|
-
import {Parameter} from "../Parameter/Parameter";
|
|
4
|
-
import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
5
|
-
import {Partition} from "../InstanceList/Partition";
|
|
6
|
-
import {Vector} from "nlptoolkit-math/dist/Vector";
|
|
7
|
-
import {InstanceListOfSameClass} from "../InstanceList/InstanceListOfSameClass";
|
|
8
|
-
import {NaiveBayesModel} from "../Model/NaiveBayesModel";
|
|
9
|
-
import {DiscreteAttribute} from "../Attribute/DiscreteAttribute";
|
|
10
|
-
|
|
11
|
-
export class NaiveBayes extends Classifier{
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Training algorithm for Naive Bayes algorithm with a continuous data set.
|
|
15
|
-
*
|
|
16
|
-
* @param priorDistribution Probability distribution of classes P(C_i)
|
|
17
|
-
* @param classLists Instances are divided into K lists, where each list contains only instances from a single class
|
|
18
|
-
*/
|
|
19
|
-
private trainContinuousVersion(priorDistribution: DiscreteDistribution, classLists: Partition){
|
|
20
|
-
let classMeans = new Map<string, Vector>();
|
|
21
|
-
let classDeviations = new Map<string, Vector>();
|
|
22
|
-
for (let i = 0; i < classLists.size(); i++){
|
|
23
|
-
let classLabel = (<InstanceListOfSameClass> classLists.get(i)).getClassLabel();
|
|
24
|
-
let averageVector = classLists.get(i).average().toVector();
|
|
25
|
-
classMeans.set(classLabel, averageVector);
|
|
26
|
-
let standardDeviationVector = classLists.get(i).standardDeviation().toVector();
|
|
27
|
-
classDeviations.set(classLabel, standardDeviationVector);
|
|
28
|
-
}
|
|
29
|
-
this.model = new NaiveBayesModel(priorDistribution, classMeans, classDeviations);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Training algorithm for Naive Bayes algorithm with a discrete data set.
|
|
34
|
-
* @param priorDistribution Probability distribution of classes P(C_i)
|
|
35
|
-
* @param classLists Instances are divided into K lists, where each list contains only instances from a single class
|
|
36
|
-
*/
|
|
37
|
-
private trainDiscreteVersion(priorDistribution: DiscreteDistribution, classLists: Partition){
|
|
38
|
-
let classAttributeDistributions = new Map<String, Array<DiscreteDistribution>>();
|
|
39
|
-
for (let i = 0; i < classLists.size(); i++){
|
|
40
|
-
classAttributeDistributions.set((<InstanceListOfSameClass> classLists.get(i)).getClassLabel(),
|
|
41
|
-
classLists.get(i).allAttributesDistribution());
|
|
42
|
-
}
|
|
43
|
-
this.model = new NaiveBayesModel(priorDistribution, classAttributeDistributions);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Training algorithm for Naive Bayes algorithm. It basically calls trainContinuousVersion for continuous data sets,
|
|
48
|
-
* trainDiscreteVersion for discrete data sets.
|
|
49
|
-
* @param trainSet Training data given to the algorithm
|
|
50
|
-
* @param parameters -
|
|
51
|
-
*/
|
|
52
|
-
train(trainSet: InstanceList, parameters: Parameter): void {
|
|
53
|
-
let priorDistribution = trainSet.classDistribution();
|
|
54
|
-
let classLists = new Partition(trainSet);
|
|
55
|
-
if (classLists.get(0).get(0).getAttribute(0) instanceof DiscreteAttribute){
|
|
56
|
-
this.trainDiscreteVersion(priorDistribution, classLists);
|
|
57
|
-
} else {
|
|
58
|
-
this.trainContinuousVersion(priorDistribution, classLists);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
loadModel(fileName: string): void{
|
|
63
|
-
this.model = new NaiveBayesModel(fileName)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
}
|
package/source/Classifier/Qda.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import {Classifier} from "./Classifier";
|
|
2
|
-
import {Parameter} from "../Parameter/Parameter";
|
|
3
|
-
import {InstanceList} from "../InstanceList/InstanceList";
|
|
4
|
-
import {Vector} from "nlptoolkit-math/dist/Vector";
|
|
5
|
-
import {Matrix} from "nlptoolkit-math/dist/Matrix";
|
|
6
|
-
import {Partition} from "../InstanceList/Partition";
|
|
7
|
-
import {InstanceListOfSameClass} from "../InstanceList/InstanceListOfSameClass";
|
|
8
|
-
import {QdaModel} from "../Model/QdaModel";
|
|
9
|
-
|
|
10
|
-
export class Qda extends Classifier{
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Training algorithm for the quadratic discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
|
|
14
|
-
*
|
|
15
|
-
* @param trainSet Training data given to the algorithm.
|
|
16
|
-
* @param parameters -
|
|
17
|
-
*/
|
|
18
|
-
train(trainSet: InstanceList, parameters: Parameter) {
|
|
19
|
-
let determinant = 0
|
|
20
|
-
let w0 = new Map<string, number>();
|
|
21
|
-
let w = new Map<string, Vector>();
|
|
22
|
-
let W = new Map<string, Matrix>();
|
|
23
|
-
let classLists = new Partition(trainSet);
|
|
24
|
-
let priorDistribution = trainSet.classDistribution();
|
|
25
|
-
for (let i = 0; i < classLists.size(); i++) {
|
|
26
|
-
let Ci = (<InstanceListOfSameClass> classLists.get(i)).getClassLabel();
|
|
27
|
-
let averageVector = new Vector(classLists.get(i).continuousAttributeAverage());
|
|
28
|
-
let classCovariance = classLists.get(i).covariance(averageVector);
|
|
29
|
-
determinant = classCovariance.determinant();
|
|
30
|
-
classCovariance.inverse();
|
|
31
|
-
let Wi = classCovariance.clone();
|
|
32
|
-
Wi.multiplyWithConstant(-0.5);
|
|
33
|
-
W.set(Ci, Wi);
|
|
34
|
-
let wi = classCovariance.multiplyWithVectorFromLeft(averageVector);
|
|
35
|
-
w.set(Ci, wi);
|
|
36
|
-
let w0i = -0.5 * (wi.dotProduct(averageVector) + Math.log(determinant)) + Math.log(priorDistribution.getProbability(Ci));
|
|
37
|
-
w0.set(Ci, w0i);
|
|
38
|
-
}
|
|
39
|
-
this.model = new QdaModel(priorDistribution, W, w, w0);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
loadModel(fileName: string): void{
|
|
43
|
-
this.model = new QdaModel(fileName)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {Classifier} from "./Classifier";
|
|
2
|
-
import {InstanceList} from "../InstanceList/InstanceList";
|
|
3
|
-
import {Parameter} from "../Parameter/Parameter";
|
|
4
|
-
import {RandomModel} from "../Model/RandomModel";
|
|
5
|
-
|
|
6
|
-
export class RandomClassifier extends Classifier{
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Training algorithm for random classifier.
|
|
10
|
-
*
|
|
11
|
-
* @param trainSet Training data given to the algorithm.
|
|
12
|
-
* @param parameters -
|
|
13
|
-
*/
|
|
14
|
-
train(trainSet: InstanceList, parameters: Parameter): void {
|
|
15
|
-
let result = new Array<string>()
|
|
16
|
-
for (let s of trainSet.classDistribution().keys()){
|
|
17
|
-
result.push(s)
|
|
18
|
-
}
|
|
19
|
-
this.model = new RandomModel(result, parameters.getSeed());
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
loadModel(fileName: string): void{
|
|
23
|
-
this.model = new RandomModel(fileName)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {GaussianModel} from "./GaussianModel";
|
|
2
|
-
import {InstanceList} from "../InstanceList/InstanceList";
|
|
3
|
-
import {DistanceMetric} from "../DistanceMetric/DistanceMetric";
|
|
4
|
-
import {Instance} from "../Instance/Instance";
|
|
5
|
-
import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
6
|
-
import {FileContents} from "nlptoolkit-util/dist/FileContents";
|
|
7
|
-
import {EuclidianDistance} from "../DistanceMetric/EuclidianDistance";
|
|
8
|
-
|
|
9
|
-
export class KMeansModel extends GaussianModel{
|
|
10
|
-
|
|
11
|
-
private classMeans: InstanceList
|
|
12
|
-
private distanceMetric: DistanceMetric
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* The constructor that sets the classMeans, priorDistribution and distanceMetric according to given inputs.
|
|
16
|
-
*
|
|
17
|
-
* @param priorDistributionOrFileName {@link DiscreteDistribution} input.
|
|
18
|
-
* @param classMeans {@link InstanceList} of class means.
|
|
19
|
-
* @param distanceMetric {@link DistanceMetric} input.
|
|
20
|
-
*/
|
|
21
|
-
constructor(priorDistributionOrFileName: DiscreteDistribution | string, classMeans?: InstanceList, distanceMetric?: DistanceMetric) {
|
|
22
|
-
super()
|
|
23
|
-
if (priorDistributionOrFileName instanceof DiscreteDistribution){
|
|
24
|
-
this.classMeans = classMeans
|
|
25
|
-
this.priorDistribution = priorDistributionOrFileName
|
|
26
|
-
this.distanceMetric = distanceMetric
|
|
27
|
-
} else {
|
|
28
|
-
this.distanceMetric = new EuclidianDistance()
|
|
29
|
-
let input = new FileContents(priorDistributionOrFileName)
|
|
30
|
-
this.loadPriorDistribution(input)
|
|
31
|
-
this.classMeans = this.loadInstanceList(input)
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
|
|
37
|
-
* the corresponding class label is same as the given String it returns the negated distance between given instance and the
|
|
38
|
-
* current item of class means. Otherwise it returns the smallest negative number.
|
|
39
|
-
*
|
|
40
|
-
* @param instance {@link Instance} input.
|
|
41
|
-
* @param Ci String input.
|
|
42
|
-
* @return The negated distance between given instance and the current item of class means.
|
|
43
|
-
*/
|
|
44
|
-
calculateMetric(instance: Instance, Ci: string): number {
|
|
45
|
-
for (let i = 0; i < this.classMeans.size(); i++) {
|
|
46
|
-
if (this.classMeans.get(i).getClassLabel() == Ci) {
|
|
47
|
-
return -this.distanceMetric.distance(instance, this.classMeans.get(i));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return Number.NEGATIVE_INFINITY;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
saveTxt(fileName: string){
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
}
|
package/source/Model/LdaModel.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import {GaussianModel} from "./GaussianModel";
|
|
2
|
-
import {Vector} from "nlptoolkit-math/dist/Vector";
|
|
3
|
-
import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
4
|
-
import {Instance} from "../Instance/Instance";
|
|
5
|
-
import {FileContents} from "nlptoolkit-util/dist/FileContents";
|
|
6
|
-
|
|
7
|
-
export class LdaModel extends GaussianModel{
|
|
8
|
-
|
|
9
|
-
protected w0: Map<string, number>
|
|
10
|
-
protected w: Map<string, Vector>
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* A constructor which sets the priorDistribution, w and w0 according to given inputs.
|
|
14
|
-
*
|
|
15
|
-
* @param priorDistributionOrFileName {@link DiscreteDistribution} input.
|
|
16
|
-
* @param w {@link HashMap} of String and Vectors.
|
|
17
|
-
* @param w0 {@link HashMap} of String and Double.
|
|
18
|
-
*/
|
|
19
|
-
constructor(priorDistributionOrFileName?: DiscreteDistribution | string, w?: Map<string, Vector>, w0?: Map<string, number>) {
|
|
20
|
-
super()
|
|
21
|
-
if (priorDistributionOrFileName instanceof DiscreteDistribution){
|
|
22
|
-
this.priorDistribution = priorDistributionOrFileName
|
|
23
|
-
this.w = w
|
|
24
|
-
this.w0 = w0
|
|
25
|
-
} else {
|
|
26
|
-
if (priorDistributionOrFileName != undefined){
|
|
27
|
-
let input = new FileContents(priorDistributionOrFileName)
|
|
28
|
-
let size = this.loadPriorDistribution(input)
|
|
29
|
-
this.loadWandW0(input, size)
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* The calculateMetric method takes an {@link Instance} and a String as inputs. It returns the dot product of given Instance
|
|
36
|
-
* and wi plus w0i.
|
|
37
|
-
*
|
|
38
|
-
* @param instance {@link Instance} input.
|
|
39
|
-
* @param Ci String input.
|
|
40
|
-
* @return The dot product of given Instance and wi plus w0i.
|
|
41
|
-
*/
|
|
42
|
-
calculateMetric(instance: Instance, Ci: string): number {
|
|
43
|
-
let xi = instance.toVector();
|
|
44
|
-
let wi = this.w.get(Ci);
|
|
45
|
-
let w0i = this.w0.get(Ci);
|
|
46
|
-
return wi.dotProduct(xi) + w0i;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
loadWandW0(input: FileContents, size: number){
|
|
50
|
-
this.w0 = new Map<string, number>()
|
|
51
|
-
for (let i = 0; i < size; i++){
|
|
52
|
-
let line = input.readLine()
|
|
53
|
-
let items = line.split(" ")
|
|
54
|
-
this.w0.set(items[0], parseFloat(items[1]))
|
|
55
|
-
}
|
|
56
|
-
this.w = this.loadVectors(input, size)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
saveTxt(fileName: string){
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import {NeuralNetworkModel} from "./NeuralNetworkModel";
|
|
2
|
-
import {Matrix} from "nlptoolkit-math/dist/Matrix";
|
|
3
|
-
import {InstanceList} from "../InstanceList/InstanceList";
|
|
4
|
-
import {LinearPerceptronParameter} from "../Parameter/LinearPerceptronParameter";
|
|
5
|
-
import {ClassificationPerformance} from "../Performance/ClassificationPerformance";
|
|
6
|
-
import {Random} from "nlptoolkit-util/dist/Random";
|
|
7
|
-
import {FileContents} from "nlptoolkit-util/dist/FileContents";
|
|
8
|
-
|
|
9
|
-
export class LinearPerceptronModel extends NeuralNetworkModel{
|
|
10
|
-
|
|
11
|
-
protected W: Matrix
|
|
12
|
-
|
|
13
|
-
constructor1(trainSet: InstanceList, validationSet?: InstanceList, parameters?: LinearPerceptronParameter){
|
|
14
|
-
if (validationSet != undefined){
|
|
15
|
-
this.W = this.allocateLayerWeights(this.K, this.d + 1, new Random(parameters.getSeed()));
|
|
16
|
-
let bestW = this.W.clone();
|
|
17
|
-
let bestClassificationPerformance = new ClassificationPerformance(0.0)
|
|
18
|
-
let epoch = parameters.getEpoch()
|
|
19
|
-
let learningRate = parameters.getLearningRate()
|
|
20
|
-
for (let i = 0; i < epoch; i++) {
|
|
21
|
-
trainSet.shuffle(new Random(parameters.getSeed()))
|
|
22
|
-
for (let j = 0; j < trainSet.size(); j++) {
|
|
23
|
-
this.createInputVector(trainSet.get(j))
|
|
24
|
-
let rMinusY = this.calculateRMinusY(trainSet.get(j), this.x, this.W)
|
|
25
|
-
let deltaW = new Matrix(rMinusY, this.x);
|
|
26
|
-
deltaW.multiplyWithConstant(learningRate);
|
|
27
|
-
this.W.add(deltaW)
|
|
28
|
-
}
|
|
29
|
-
let currentClassificationPerformance = this.testClassifier(validationSet)
|
|
30
|
-
if (currentClassificationPerformance.getAccuracy() > bestClassificationPerformance.getAccuracy()) {
|
|
31
|
-
bestClassificationPerformance = currentClassificationPerformance
|
|
32
|
-
bestW = this.W.clone()
|
|
33
|
-
}
|
|
34
|
-
learningRate *= parameters.getEtaDecrease()
|
|
35
|
-
}
|
|
36
|
-
this.W = bestW
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
constructor2(fileName: string){
|
|
41
|
-
let input = new FileContents(fileName)
|
|
42
|
-
this.loadClassLabels(input)
|
|
43
|
-
this.W = this.loadMatrix(input)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Constructor that takes {@link InstanceList}s as trainsSet and validationSet. Initially it allocates layer weights,
|
|
48
|
-
* then creates an input vector by using given trainSet and finds error. Via the validationSet it finds the classification
|
|
49
|
-
* performance and at the end it reassigns the allocated weight Matrix with the matrix that has the best accuracy.
|
|
50
|
-
*
|
|
51
|
-
* @param trainSetOrFileName InstanceList that is used to train.
|
|
52
|
-
* @param validationSet InstanceList that is used to validate.
|
|
53
|
-
* @param parameters Linear perceptron parameters; learningRate, etaDecrease, crossValidationRatio, epoch.
|
|
54
|
-
*/
|
|
55
|
-
constructor(trainSetOrFileName?: InstanceList | string, validationSet?: InstanceList, parameters?: LinearPerceptronParameter) {
|
|
56
|
-
if (trainSetOrFileName instanceof InstanceList){
|
|
57
|
-
if (validationSet != undefined){
|
|
58
|
-
super(trainSetOrFileName)
|
|
59
|
-
this.constructor1(trainSetOrFileName, validationSet, parameters)
|
|
60
|
-
} else {
|
|
61
|
-
super(trainSetOrFileName)
|
|
62
|
-
}
|
|
63
|
-
} else {
|
|
64
|
-
if (trainSetOrFileName != undefined){
|
|
65
|
-
super()
|
|
66
|
-
this.constructor2(trainSetOrFileName)
|
|
67
|
-
} else {
|
|
68
|
-
super()
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* The calculateOutput method calculates the {@link Matrix} y by multiplying Matrix W with {@link Vector} x.
|
|
75
|
-
*/
|
|
76
|
-
protected calculateOutput(): void {
|
|
77
|
-
this.y = this.W.multiplyWithVectorFromRight(this.x);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
saveTxt(fileName: string){
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
}
|
package/source/Model/QdaModel.ts
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import {LdaModel} from "./LdaModel";
|
|
2
|
-
import {Matrix} from "nlptoolkit-math/dist/Matrix";
|
|
3
|
-
import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
4
|
-
import {Vector} from "nlptoolkit-math/dist/Vector";
|
|
5
|
-
import {Instance} from "../Instance/Instance";
|
|
6
|
-
import {FileContents} from "nlptoolkit-util/dist/FileContents";
|
|
7
|
-
|
|
8
|
-
export class QdaModel extends LdaModel{
|
|
9
|
-
|
|
10
|
-
private W: Map<string, Matrix>
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The constructor which sets the priorDistribution, w w1 and HashMap of String Matrix.
|
|
14
|
-
*
|
|
15
|
-
* @param priorDistributionOrFileName {@link DiscreteDistribution} input.
|
|
16
|
-
* @param W {@link HashMap} of String and Matrix.
|
|
17
|
-
* @param w {@link HashMap} of String and Vectors.
|
|
18
|
-
* @param w0 {@link HashMap} of String and Double.
|
|
19
|
-
*/
|
|
20
|
-
constructor(priorDistributionOrFileName: DiscreteDistribution | string, W?: Map<string, Matrix>, w?: Map<string, Vector>, w0?: Map<string, number>) {
|
|
21
|
-
if (priorDistributionOrFileName instanceof DiscreteDistribution){
|
|
22
|
-
super(priorDistributionOrFileName, w, w0);
|
|
23
|
-
this.W = W
|
|
24
|
-
} else {
|
|
25
|
-
super()
|
|
26
|
-
let input = new FileContents(priorDistributionOrFileName)
|
|
27
|
-
let size = this.loadPriorDistribution(input)
|
|
28
|
-
this.loadWandW0(input, size)
|
|
29
|
-
this.W = new Map<string, Matrix>()
|
|
30
|
-
for (let i = 0; i < size; i++){
|
|
31
|
-
let c = input.readLine()
|
|
32
|
-
let matrix = this.loadMatrix(input)
|
|
33
|
-
this.W.set(c, matrix)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The calculateMetric method takes an {@link Instance} and a String as inputs. It multiplies Matrix Wi with Vector xi
|
|
40
|
-
* then calculates the dot product of it with xi. Then, again it finds the dot product of wi and xi and returns the summation with w0i.
|
|
41
|
-
*
|
|
42
|
-
* @param instance {@link Instance} input.
|
|
43
|
-
* @param Ci String input.
|
|
44
|
-
* @return The result of Wi.multiplyWithVectorFromLeft(xi).dotProduct(xi) + wi.dotProduct(xi) + w0i.
|
|
45
|
-
*/
|
|
46
|
-
calculateMetric(instance: Instance, Ci: string): number {
|
|
47
|
-
let xi = instance.toVector();
|
|
48
|
-
let Wi = this.W.get(Ci);
|
|
49
|
-
let wi = this.w.get(Ci);
|
|
50
|
-
let w0i = this.w0.get(Ci);
|
|
51
|
-
return Wi.multiplyWithVectorFromLeft(xi).dotProduct(xi) + wi.dotProduct(xi) + w0i;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
saveTxt(fileName: string){
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
package/source/tsconfig.json
DELETED